Bug 274457

Summary: Black screen when using compositing effects
Product: [Plasma] kwin Reporter: Tommi Tervo <tommi.tervo>
Component: compositingAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: OpenSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.0
Attachments: Screenshow of disabled effects

Description Tommi Tervo 2011-05-29 21:18:06 UTC
Version:           unspecified (using Devel) 
OS:                Linux

I've been able to use 3D effects with KDE < 4.7 (using OSS drivers, tested with openSuse 11.3 and 11.4) but I'll get black screen with 4.7beta1.

[Radeon Mobility X1600]

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 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: X.Org R300 Project                                                                                                                                                                                                     
OpenGL renderer string: Gallium 0.4 on ATI RV530                                                                                                                                                                                             
OpenGL version string: 2.1 Mesa 7.10.2                                                                                                                                                                                                       
OpenGL extensions:                                                                                                                                                                                                                           
    GL_ARB_copy_buffer, GL_ARB_depth_texture, GL_ARB_draw_buffers,                                                                                                                                                                           
    GL_ARB_draw_elements_base_vertex, GL_ARB_explicit_attrib_location, 
    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_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_shader_objects, GL_ARB_shading_language_100, GL_ARB_shadow, 
    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_texture_rg, GL_ARB_texture_swizzle, 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_compiled_vertex_array, GL_EXT_copy_texture, 
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, 
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object, 
    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_shader_objects, 
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, 
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture, 
    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_mirror_clamp, 
    GL_EXT_texture_object, GL_EXT_texture, GL_EXT_texture_rectangle, 
    GL_EXT_texture_sRGB, GL_EXT_texture_swizzle, GL_EXT_vertex_array_bgra, 
    GL_EXT_vertex_array, GL_OES_EGL_image, GL_OES_read_format, 
    GL_APPLE_packed_pixels, GL_APPLE_vertex_array_object, 
    GL_ATI_blend_equation_separate, GL_ATI_separate_stencil, 
    GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once, 
    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_window_pos, GL_MESA_ycbcr_texture, 
    GL_NV_blend_square, GL_NV_conditional_render, GL_NV_light_max_exponent, 
    GL_NV_packed_depth_stencil, GL_NV_texgen_reflection, 
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, 
    GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, 
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess


Reproducible: Always
Comment 1 Martin Flöser 2011-05-29 21:22:28 UTC
try switching to the OpenGL 1.x/GLX backend as described in http://blog.martin-graesslin.com/blog/2011/05/the-compositing-modes-of-kde-plasma-workspaces-explained/

Most likely the hardware just does not support what it claims to support.
Comment 2 Tommi Tervo 2011-05-30 18:24:16 UTC
GL 1.x/GLX backend "works", but it'll disable basically all effects.
Comment 3 Martin Flöser 2011-05-30 18:31:45 UTC
> GL 1.x/GLX backend "works", but it'll disable basically all effects.
what do you mean it disables basically all effects. The only effect I know of which requires 
OpenGL 2 is the invert effect. Could you be more precise in what you mean?
Comment 4 Tommi Tervo 2011-05-30 18:37:06 UTC
Created attachment 60481 [details]
Screenshow of disabled effects

Here is a screen shot of disabled effects
Comment 5 Martin Flöser 2011-05-30 18:39:35 UTC
did you restart kwin after you applied the changes? The list might not be correct. Try starting 
kwin from a konsole and paste the relevant debug output.
Comment 6 Tommi Tervo 2011-05-30 18:48:12 UTC
Oh, sorry. I didn't know that I'll need to restart kwin. Seems that OGL1.x/GLX doesn't work on my laptop. Restart is not successful, I'll need to disable compositing.

teve@linux-jm3s:~> kwin --replace
kwin(6845) KWin::Extensions::init: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "40"
kwin(6845) KWin::CompositingPrefs::detect: glx version is  1 . 4
OpenGL vendor string:                   X.Org R300 Project
OpenGL renderer string:                 Gallium 0.4 on ATI RV530
OpenGL version string:                  2.1 Mesa 7.10.2
OpenGL shading language version string: 1.20
Driver:                                 R300G
GPU class:                              R500
OpenGL version:                         2.1
GLSL version:                           1.20
Mesa version:                           7.10.2
X server version:                       1.9.3
Linux kernel version:                   2.6.39
Direct rendering:                       yes
Requires strict binding:                yes
GLSL shaders:                           limited
Texture NPOT support:                   limited
kwin(6845) KDecorationPlugins::loadPlugin: kwin : path  "/usr/lib/kde4/kwin3_oxygen.so"  for  "kwin3_oxygen"
kwin(6845) KWin::Extensions::init: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "40"
kwin(6845) KWin::Extensions::init: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "40"
kwin(6845) KWin::Workspace::setupCompositing: Initializing OpenGL compositing
kwin(6845) KWin::SceneOpenGL::initBufferConfigs: Drawable visual (depth  24 ): 0x "13c"
kwin(6845) KWin::SceneOpenGL::initBufferConfigs: Drawable visual (depth  32 ): 0x "66"
kwin(6845) KWin::SceneOpenGL::initBuffer: Buffer visual (depth  24 ): 0x "140"
kwin(6845) KWin::ShaderManager::initShaders: OpenGL Shaders disabled by config option
kwin(6845) KWin::SceneOpenGL::SceneOpenGL: No Scene Shaders available
kwin(6845) KWin::SceneOpenGL::SceneOpenGL: DB: true , Direct: true
kwin(6845) KWin::currentRefreshRate: Refresh rate  60 Hz
kwin(6845)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-teve/ksycoca4"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_sheet"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_slidingpopups"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_blur"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_fade"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_desktopgrid"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_slide"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_presentwindows"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_dashboard"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_login"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_startupfeedback"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_outline"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_boxswitch"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_cube"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_taskbarthumbnail"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_resize"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_logout"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_screenshot"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_translucency"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_highlightwindow"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_zoom"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_dialogparent"
kwin(6845) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_minimizeanimation"
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7625790
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 39847367 ;WMCLASS: "plasma" : "plasma" ;Caption: "plasma-desktop" ' : 7625790
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7542384
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 27263183 ;WMCLASS: "systemsettings" : "systemsettings" ;Caption: "Desktop Effects â System Settings" ' : 7542384
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Workspace::createTile: Now tiling  "Desktop Effects â System Settings"
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7958311
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 83888603 ;WMCLASS: "konsole" : "konsole" ;Caption: "www :" ' : 7958311
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Workspace::createTile: Now tiling  "www :"
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7952035
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7993848
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 83886266 ;WMCLASS: "konsole" : "konsole" ;Caption: "teve : bash" ' : 7993848
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Workspace::createTile: Now tiling  "teve : bash"
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 7631847
kwin(6845) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 39847364 ;WMCLASS: "plasma" : "plasma" ;Caption: "plasma-desktop" ' : 7631847
kwin(6845) KWin::Workspace::allowClientActivation: Activation: No client active, allowing
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.
kwin(6845) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(6845) KWin::Workspace::updateClientArea: Done.

kwin(6845) KWin::LanczosShader::init: ARB Shader compiled, id:  2
Comment 7 Martin Flöser 2011-05-30 18:55:54 UTC
The OpenGL 1 backend is the same as the code which was used in 4.6. Are you sure that 
nothing else changed? Maybe a driver update?

Anyway I am pretty sure the reason for the problem is that the driver claims support for NPOT 
textures and it is common knowledge that the R300 series does not support NPOT textures. If 
possible please try the patch attached to bug #269576. I am very confident that this fixes the 
issue, but due to lack of hardware I cannot test.
Comment 8 Tommi Tervo 2011-05-30 19:06:44 UTC
I'm using Opensuse tumbleweed repo -> I'm not sure if there was a kernel update from 2.6.38 -> 2.6.39 at the same time I upgraded KDE.

I can try that patch, but that's going to take one week (I'm going to holiday) but if you have patched rpm for opensuse 11.4 I can test that today.

BR,

Tommi
Comment 9 Martin Flöser 2011-05-30 19:15:12 UTC
> I can try that patch, but that's going to take one week (I'm going to holiday)
that's fine as well - better than no test at all :-)
> but if you have patched rpm for opensuse 11.4 I can test that today.
No, have not yet created the package
Comment 10 Martin Flöser 2011-06-01 18:25:54 UTC
Git commit b646e7eb9a67971d7abb8056c06016de920419f7 by Martin Gräßlin.
Committed on 01/06/2011 at 18:21.
Pushed by graesslin into branch 'master'.

Disable Shader Scene for LimitedGLSL GPUs

This was causing problems with R300G. The GPU supports only limited
GLSL and seems not to be up to rendering the scene appropriate. So
let's better disable the OpenGL 2 branch for such GPUs. If the user
really wants to use it, there is the GLES backend which does not
check for limited GLSL.
BUG: 274457
CCBUG: 274607
FIXED-IN: 4.7.0

M  +1    -1    kwin/libkwineffects/kwinglutils.cpp     

http://commits.kde.org/kde-workspace/b646e7eb9a67971d7abb8056c06016de920419f7