Blacklisting drivers for some KWin effects

This is mostly a post for our distributions. In 4.5 we will most likely activate the Blur effect and Lanczos filter for Taskbar Thumbnails and Present Windows by default. Unfortunately not each driver supports those correctly. We have the following possible problems:

  • Performance issues with Blur Effect
  • Upside-Down taskbar thumbnails with Lanczos filter (affects also Present Windows)
  • Too bright taskbar thumbnails with Lanczos filter (affects also Present Windows)
  • Performance issues with Lanczos filter in Present Windows

Most users won’t have problems with those two new or if there are problems they affect only one of the two. E.g. disabling blur for performance does not require to disable the Lanczos filter. Therefore I implemented a KConfig based blacklist during Akademy. It uses KWin’s default KConfig file (~/.kde[4]+/share/config/kwinrc) and uses KConfigGroup "[Blacklist]". The blur effect uses the sub-group "[Blur]", while the Lanczos filter uses the sub-group "[Lanczos]". This might be extended in future releases.

The blacklist is implemented in a way that specific driver versions for specific hardware are blacklisted. So if a new driver version is released this one won’t be blacklisted automatically in the hope that the new driver version fixes the issues (e.g. it is known that the upside-down issue is already resolved in Mesa master). On the other hand this means that if a problem is not fixed it will occur for the user as soon as the new version is installed. Which will of course cause problems and users will claim that $distribution is harming KDE because of $stupid thing.

The blacklist can be updated by a KConf update script and that’s the way we will ship a default blacklist in 4.5 (this is currently not yet implemented as we still collect information on drivers causing the problems). So if you as a distribution are informed about a problem with a specific driver please pass the information to me, so that I can update the blacklist for the final or minor release and (after the release) please ship a kconfig update script to change the blacklist. This is especially important if you update the drivers (e.g. a development release). Although I have no idea how to automatically update the blacklist if a user is getting the drivers from e.g. xorg-edgers PPA (btw this seems to cause quite some crashers).

The entries of the blacklist are normal KConfig entries with driver identifier as key (e.g. Intel or NVIDIA) and a list of strings for the values. Each list item is a concrete identifier for a combination of renderer and version separated by colon, dash, colon (:-:). Renderer and version can be read from glxinfo. Here an example blacklist:

[Blacklist][Blur]
NVIDIA=GeForce 9400M/PCI/SSE2:-:3.2.0 NVIDIA 195.36.24

[Blacklist][Lanczos]
NVIDIA=GeForce 9400M/PCI/SSE2:-:3.2.0 NVIDIA 195.36.24

Which will block my GPU on both blur effect and lanczos filter (which is of course not required). I will update the blogpost with link to the kconf update script as soon as it is implemented.

=-=-=-=-=
Powered by Blogilo

34 thoughts on “Blacklisting drivers for some KWin effects”

    1. if we knew that we would not need a blacklist which can be easily updates by distributions…

  1. What if I don’t care about the features that cause trouble with the Blur Effect and I want to enjoy that effect anyway ?
    Does the blacklisting only affects the default settings or will it be impossible to set it on ?

    1. You can edit the blacklist. If you are not able to edit a config file than bad luck. It is of course a consideration and I assume that users don’t caring about the performance are able to edit the blacklist.

  2. Was this implemented in KDE SC 4.5 RC2? Should I be able to add to the blacklist now or should I be waiting for the release?

    1. yes, you can use the blacklist in rc2, but please send me your blacklist, so that I can include it for everyone

      1. I tried adding this, but it didn’t seem to work… prolly my fault:

        [Blacklist][Lanczos]
        Intel=Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1 x86/MMX/SSE2:-:2.1 Mesa 7.8.2

        Here’s my glxinfo in case it helps:

        $ glxinfo
        name of display: :0.0
        display: :0 screen: 0
        direct rendering: Yes
        server glx vendor string: SGI
        server glx version string: 1.4
        server glx extensions:
        GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
        GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
        GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
        GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
        GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
        client glx vendor string: Mesa Project and SGI
        client glx version string: 1.4
        client glx extensions:
        GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
        GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
        GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
        GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
        GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
        GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
        GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
        GLX_INTEL_swap_event
        GLX version: 1.4
        GLX extensions:
        GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
        GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
        GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
        GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
        GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
        GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
        GLX_INTEL_swap_event
        OpenGL vendor string: Tungsten Graphics, Inc
        OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1 x86/MMX/SSE2
        OpenGL version string: 2.1 Mesa 7.8.2
        OpenGL shading language version string: 1.20
        OpenGL extensions:
        GL_ARB_copy_buffer, GL_ARB_depth_texture, GL_ARB_depth_clamp,
        GL_ARB_draw_buffers, GL_ARB_draw_elements_base_vertex,
        GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program,
        GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,
        GL_ARB_framebuffer_object, GL_ARB_half_float_pixel,
        GL_ARB_half_float_vertex, GL_ARB_map_buffer_range, GL_ARB_multisample,
        GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
        GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex,
        GL_ARB_seamless_cube_map, GL_ARB_shader_objects,
        GL_ARB_shading_language_100, GL_ARB_shading_language_120, GL_ARB_shadow,
        GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
        GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
        GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
        GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
        GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle,
        GL_ARB_transpose_matrix, GL_ARB_vertex_array_bgra,
        GL_ARB_vertex_array_object, GL_ARB_vertex_buffer_object,
        GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
        GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
        GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
        GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
        GL_EXT_cull_vertex, GL_EXT_compiled_vertex_array, GL_EXT_copy_texture,
        GL_EXT_draw_buffers2, GL_EXT_draw_range_elements, GL_EXT_framebuffer_blit,
        GL_EXT_framebuffer_object, GL_EXT_fog_coord,
        GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays,
        GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
        GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
        GL_EXT_polygon_offset, GL_EXT_provoking_vertex, GL_EXT_rescale_normal,
        GL_EXT_secondary_color, GL_EXT_separate_specular_color,
        GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
        GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
        GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
        GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
        GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
        GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle,
        GL_EXT_texture_sRGB, GL_EXT_texture_swizzle, GL_EXT_vertex_array,
        GL_EXT_vertex_array_bgra, GL_3DFX_texture_compression_FXT1,
        GL_APPLE_client_storage, GL_APPLE_packed_pixels,
        GL_APPLE_vertex_array_object, GL_APPLE_object_purgeable,
        GL_ATI_blend_equation_separate, GL_ATI_envmap_bumpmap,
        GL_ATI_texture_env_combine3, GL_ATI_separate_stencil,
        GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
        GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
        GL_MESA_pack_invert, GL_MESA_texture_signed_rgba, GL_MESA_ycbcr_texture,
        GL_MESA_window_pos, GL_NV_blend_square, GL_NV_depth_clamp,
        GL_NV_light_max_exponent, GL_NV_packed_depth_stencil,
        GL_NV_texture_env_combine4, GL_NV_texture_rectangle,
        GL_NV_texgen_reflection, GL_NV_vertex_program, GL_NV_vertex_program1_1,
        GL_OES_read_format, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
        GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

        32 GLX Visuals
        visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
        id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
        ———————————————————————-
        0×21 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xa1 24 tc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xa2 24 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xa3 24 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xa4 24 tc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xa5 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xa6 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xa7 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xa8 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xa9 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xaa 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xab 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xac 24 tc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
        0xad 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xae 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
        0xaf 24 dc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xb0 24 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xb1 24 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0xb2 24 dc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xb3 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xb4 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xb5 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xb6 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xb7 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0xb8 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xb9 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xba 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0xbb 24 dc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
        0xbc 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xbd 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
        0×70 32 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None

        48 GLXFBConfigs:
        visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
        id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
        ———————————————————————-
        0×71 0 tc 0 16 0 r . . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0×72 0 tc 0 16 0 r y . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0×73 0 tc 0 16 0 r y . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0×74 0 tc 0 16 0 r . . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0×75 0 tc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0×76 0 tc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0×77 0 tc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0×78 0 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0×79 0 tc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0x7a 0 tc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0x7b 0 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0x7c 0 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0x7d 0 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0x7e 0 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0x7f 0 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0×80 0 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×81 0 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×82 0 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×83 0 tc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0×84 0 tc 0 16 0 r y . 5 6 5 0 0 16 0 16 16 16 0 0 0 Slow
        0×85 0 tc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0×86 0 tc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
        0×87 0 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×88 0 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
        0×89 0 dc 0 16 0 r . . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0x8a 0 dc 0 16 0 r y . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0x8b 0 dc 0 16 0 r y . 5 6 5 0 0 0 0 0 0 0 0 0 0 None
        0x8c 0 dc 0 16 0 r . . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0x8d 0 dc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0x8e 0 dc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0x8f 0 dc 0 24 0 r . . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0×90 0 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0×91 0 dc 0 24 0 r y . 8 8 8 0 0 0 0 0 0 0 0 0 0 None
        0×92 0 dc 0 24 0 r . . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0×93 0 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0×94 0 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0×95 0 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0×96 0 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0×97 0 dc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
        0×98 0 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0×99 0 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0x9a 0 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0x9b 0 dc 0 16 0 r y . 5 6 5 0 0 16 0 0 0 0 0 0 0 None
        0x9c 0 dc 0 16 0 r y . 5 6 5 0 0 16 0 16 16 16 0 0 0 Slow
        0x9d 0 dc 0 24 0 r y . 8 8 8 0 0 24 8 0 0 0 0 0 0 None
        0x9e 0 dc 0 24 0 r y . 8 8 8 0 0 24 8 16 16 16 0 0 0 Slow
        0x9f 0 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
        0xa0 0 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow

        1. Intel adds an additional whitespace to the end of the renderer string. That is not visible in glxinfo (I’m sure they only do that to annoy me). Just add it and before :-:.

  3. Thanks, Martin, for the info. The problem was the ® symbol I think. I ran kwin interactively and saw this:

    $ kwin –replace &
    [1] 5391
    kwin(5391) Kephal::DesktopWidgetScreens::DesktopWidgetScreens: foo
    kwin(5391) KWin::Extensions::init: Extensions: shape: 0x “11″ composite: 0x “4″ render: 0x “a” fixes: 0x “40″
    kwin(5391) KWin::CompositingPrefs::detect: glx version is 1 . 4
    kwin(5391) KWin::CompositingPrefs::detectDriverAndVersion: GL vendor is “Tungsten Graphics, Inc”
    kwin(5391) KWin::CompositingPrefs::detectDriverAndVersion: GL renderer is “Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1 x86/MMX/SSE2″
    kwin(5391) KWin::CompositingPrefs::detectDriverAndVersion: GL version is “2.1 Mesa 7.8.2″

    Adding the following line has resolved my performance issues:

    [Blacklist][Lanczos]
    Intel=Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1 x86/MMX/SSE2:-:2.1 Mesa 7.8.2

  4. Friends

    If you have an Intel Corporation Mobile GM965/GL960 (i.e. macbook 4.1), probably something like this should fix both desktop cube + expose effects (while running KDE trunk in Ubuntu 10.04):
    [Blacklist][Lanczos]
    Intel=Mesa DRI Intel(R) 965GM GEM 20091221 2009Q4 x86/MMX/SSE2:-:2.1 Mesa 7.7.1

    And disabling the Functionality Tests in the Advanced tab of “Configure Desktop Effects” window.

    Regards

    Adenilson

  5. for me this entry helped:
    [Blacklist][Lanczos]
    Intel=Mesa DRI Intel(R) 965GM GEM 20100328 2010Q1:-:2.1 Mesa 7.8.2

  6. to get the strings correct I did this
    grep KWin::CompositingPrefs::detectDriverAndVersion ~/.xsession-errors

    then from the output I could get my strings

    kwin(2368) KWin::CompositingPrefs::detectDriverAndVersion: Detected driver “intel” , version “20100328″
    kwin(2368) KWin::CompositingPrefs::detectDriverAndVersion: GL vendor is “Tungsten Graphics, Inc”
    kwin(2368) KWin::CompositingPrefs::detectDriverAndVersion: GL renderer is “Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1 x86/MMX/SSE2″
    kwin(2368) KWin::CompositingPrefs::detectDriverAndVersion: GL version is “2.1 Mesa 7.8.2″
    kwin(2368) KWin::CompositingPrefs::detectDriverAndVersion: Detected driver “intel” , version “20100328″

    GL renderer is and GL version is

  7. Thanks, Martin. This worked for me, too.

    String used: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20090712 2009Q2 RC3 x86/MMX/SSE2:-:2.1 Mesa 7.5.2

  8. These helped me.

    [Blacklist][Blur]
    NVIDIA=GeForce 9600 GT/PCI/SSE2:-:3.2.0 NVIDIA 195.36.24

    [Blacklist][Lanczos]
    NVIDIA=GeForce 9600 GT/PCI/SSE2:-:3.2.0 NVIDIA 195.36.24

      1. Well I have a 9600 GT on a system which experienced a lot of lag and blacklisting helped. Maybe your setup differs from mine in some way – a different core? 9600 doesn’t tell all that much about the actual board, because of the Nvidia’s strange product names. Like the GeForce 9600 GSO was essentially a renamed 8800 GS to clear the old stock.

        Anyway – I don’t pretend to know a lot about this stuff, but following your instructions and blacklisting lanczos and blur did fix my problem of laggy desktop.

  9. I had performance issues with my Radeon 3100. So I’ve blacklisted both blur effect and lanczos filter. Now blur effect is disabled, which is easy to see. Is there a way to check that Lanczos filter is not used anymore?

    1. If you know what to look for, it’s easy to notice. A way to test is present windows: if it’s slow Lanczos is still enabled.

      1. Martin, can you please give a short description what to look for. I am asking this, because kwin and X are eating up my cpu when desktop effects are enabled. When effects are disabled, kwin and X use < 1% cpu.

  10. After upgrade from 4.4.3 to 5.2 kwin blacklisted my driver:

    OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1
    OpenGL version string: 2.1 Mesa 7.8.2

    Knowing it worked perfectly before, I removed whole Intel= blacklist, kwin recognized opengl once again and everything seems to be fine. I dare say my gpu is blacklisted wrongfuly. Drop me a line if you want to know more or run some tests.

    1. No your driver is not blacklisted. The blacklist is only for some effects which did not exist in 4.4. You are facing a different issue, which we are still investigating (but it’s difficult to reproduce)

  11. In Kubuntu 10.10 final I did also face various issues with kwin effects. I was able to solve the issues by adding my driver to the Lanczos blacklist as described above (thanks a lot).

    Mesa DRI Intel(R) Ironlake Desktop GEM 20100330 DEVELOPMENT:-:2.1 Mesa 7.9-devel

    Now most effects seem to work as far as I can tell and the performance is also ok.

    Though there is one thing I’m still confused about. I have activated the window transparency and blur effects. For the taskbar thumbnails and the task switcher window the blur effect is working fine (background is blurred).
    But the blur effect is not working for regular windows. e.g. when moving a window and it’s becoming semi-transparent. Here the backround is still crystal clear.
    I mean I would ecpect that either the blur effect when activated is working either everywhere or not at all.

    As mentioned above, I have only aded the blacklist entry for Laczos, not for Blur. Disabling/enabling the kwin functionality check doesn’t seem to make any difference in that case.

    1. Yes it is intended to blur only windows which tell kwin to be blurred. Blurring everything does not make sense at all and could destroy the visual appearance.

  12. I’m using Arch Linux with KDE 4.5.2. and have been experiencing some of the graphics issues mentioned above since 4.5.1. Prior to that, it was fine.

    Specs:
    ———————–
    Uname -a:

    Linux Galicja 2.6.36-rc7-git2-ARCHMOD #1 PREEMPT Sun Oct 10 09:13:22 CEST 2010 x86_64 Genuine Intel(R) CPU 575 @ 2.00GHz GenuineIntel GNU/Linux

    glxinfo:

    OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100328 2010Q1
    OpenGL version string: 2.1 Mesa 7.8.3
    ———————–

    After going into kwinrc under [Blacklist][Lanczos] and adjusting the line “Intel=GM45 Express Chipset GEM 20100328:-:7.8.2″ to “Intel=GM45 Express Chipset GEM 20100328:-:7.8.3″, this resolved the taskbar thumbnail issue where the graphics in the thumbnails weren’t appearing, now they are.

    However, there is another problem. Often random sections of graphics will be missing on the screen, showing as gray areas, overlapping, or being hidden (in Firefox or OpenOffice for example) until I move a slidebar or click the KDE menu with my mouse, then the missing graphics appear in full. Attached is a link to a photo I took of the issue on OpenOffice: http://img827.imageshack.us/img827/1451/kdeissue.jpg

    Notice the gray blocks on the left, right, and upper-right. Once I moved the sliderbar or clicked on the KDE menu, the gray blocks disappeared. I tried disabliing ‘blur’ in addition to the lanczos blocklist item and that didn’t help.

    1. I am having exactly the same problem! Did you manage to solve this? Here are my renderer and openGL versions:

      OpenGL renderer string: Mesa DRI Intel(R) 945GM GEM 20100330 DEVELOPMENT x86/MMX/SSE2
      OpenGL version string: 1.4 Mesa 7.9-devel

  13. For the records, I was able to solve these issues and the “taskbar thumbnails” not showing the actual screen “captures” (the tooltip container itself did open, blurred the background and displayed the window name text) on my Intel G965 using this configuration:

    [Blacklist][Lanczos]
    Intel=Mesa DRI Intel(R) 965G GEM 20100330 DEVELOPMENT x86/MMX/SSE2:-:2.1 Mesa 7.9-devel

    I make this explicit just to provide search engines with more keywords. There’s no reason to copy&paste (your board might be slightly different), just follow the directions in this article.

    Is there any way to make this change a system default in order to avoid [having to remember] applying it to each [new] acct.?

  14. Hi,

    After reading several of your posts, I realized that maybe the problems I was experiencing on KUbuntu Maverick (10.10) with KWin was due to one of these effects. My first guess was the Lanczos filter, because turning off “Blur” did not help.

    What I am experiencing is that I turn on KWin, it works great, but after a minute or two, it crashes all of X. I opened my kwinrc and… no blacklist! None whatsoever!

    Have you any idea what is causing X-org to crash when KWin is disabled when using the open source radeon driver? If not, can you explain how I can add a blacklist rule to disable Lanczos filtering so I can see if that fixes the problem?

    Thank You!

    1. sorry, my blog is neither a bug tracker nor a support forum. That’s why I cannot and don’t want to provide any reasonable help it. All I can say is that X should never crash and you should report that to the X developers. The only reasonable thing to do is turn off compositing or install fglrx.

  15. Hey thanks for the blog post!

    I’ve been having issues with this filter and just cant understand why you would add something like this.

    So the basic example is playing a video and having some windows – then using present windows. The video should be smoothly playing and “thumbnails” unchanged ideally and it was like this for a while now – GREAT!

    but now (4.5.2?) after the windows are presented they are “changed”, like they are mipmaped and i think this is the lanczos filter supposedly.

    Ofcourse the video stalls and everything looks bad, but its really hard to disable this useless thing. I removed blur, but this thing needs an entry in kwinrc…

    I think it was a poor decision to enable it by default and anybody not seeing the ugly present windows that comes from it… should get a video from me showing this.

    So this forces me to update yet another thing when i update mesa/my drivers.

    Can you at least make the blacklist accept ‘*’?

    THANKS!

    1. Sorry, but my blog is not a bug tracker and no support forum and the worst possible place to omplain – I couldn’t care less.

      There is no need for wildcard as part maches are accepted. There will be the possibility to turn the filter off in 4.6 and in 4.6 the performance is strongly improved.

  16. quick fix for lanczos problems:

    first get your glx info – run a terminal and type in ‘glxinfo’. (see below)

    locate Opengl renderer string (GM45 Express Chipset GEM 20100330 DEVELOPMENT – everything after “intel”)
    and opengl version string (2.1 Mesa 7.9)

    Than just add these lines to ~/.kde4/share/config/kwinrc (type=renderer:-:version):

    [Blacklist][Lanczos]
    Intel=GM45 Express Chipset GEM 20100330 DEVELOPMENT:-:2.1 Mesa 7.9

    Enjoy.

    oh yeah do this again when upgrading drivers/mesa… eh.

    $ glxinfo
    name of display: :0
    display: :0 screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.4
    server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
    client glx vendor string: Mesa Project and SGI
    client glx version string: 1.4
    client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
    GLX_INTEL_swap_event
    GLX version: 1.4
    GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
    GLX_INTEL_swap_event
    OpenGL vendor string: Tungsten Graphics, Inc
    OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100330 DEVELOPMENT
    OpenGL version string: 2.1 Mesa 7.9
    OpenGL shading language version string: 1.20
    OpenGL extensions:

Comments are closed.