Bug 18517

Summary: [GM965] the screen is corrupted with opengl applications (blender or vlc)
Product: xorg Reporter: benderamp <benderamp>
Component: Driver/intelAssignee: haihao <haihao.xiang>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: eich, kent.liu, libv, mat, quanxian.wang, sndirsch
Version: 7.4 (2008.09)Keywords: NEEDINFO
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
corrupted screen with opengl app
none
Xorg.0.log log file none

Description benderamp 2008-11-13 07:23:40 UTC
Created attachment 20282 [details]
corrupted screen with opengl app

Hi,

I have hp pavilion dv6000 laptop with 965 GM graphics running OpenSUSE 11 64
bit.

Xorg version 7.4 from OpenSUSE XOrg/openSUSE_11.0/ repository.

While running opengl applications (blender or vlc with output type set to OpenGL) the screen is highly corrupted - see attached screenshot.


For reference, the original issue were http://bugs.freedesktop.org/show_bug.cgi?id=18489 with xorg 7.3 - the system did hang in such situations (but there were no corruption).
Comment 1 benderamp 2008-11-13 07:25:07 UTC
> glxinfo     
name of display: :0.0                 
display: :0  screen: 0                
direct rendering: Yes                 
server glx vendor string: SGI         
server glx version string: 1.2        
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_swap_control, GLX_SGIS_multisample,          
    GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group                           
client glx vendor string: 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 extensions:                                                               
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,    
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control,        
    GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_swap_control,     
    GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,              
    GLX_SGIX_visual_select_group                                              
OpenGL vendor string: Tungsten Graphics, Inc                                  
OpenGL renderer string: Mesa DRI Intel(R) 965GM 20080716                      
OpenGL version string: 1.4 Mesa 7.2                                           
OpenGL extensions:                                                            
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,       
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,                   
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_point_parameters,         
    GL_ARB_point_sprite, 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_transpose_matrix, 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_clip_volume_hint, GL_EXT_cull_vertex, GL_EXT_compiled_vertex_array, 
    GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_fog_coord,         
    GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,                     
    GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_polygon_offset,      
    GL_EXT_rescale_normal, GL_EXT_secondary_color,                             
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,  
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,                       
    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_vertex_array, GL_3DFX_texture_compression_FXT1,                     
    GL_APPLE_client_storage, GL_APPLE_packed_pixels,
    GL_ATI_blend_equation_separate, GL_ATI_separate_stencil,
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
    GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,
    GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent,
    GL_NV_point_sprite, 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_SGIX_depth_texture,
    GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   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
----------------------------------------------------------------------
0x21 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x22 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x56 32 tc  0 32  0 r  .  .  8  8  8  8  0  0  0  0  0  0  0  0 0 None
Comment 2 benderamp 2008-11-13 07:26:31 UTC
Created attachment 20283 [details]
Xorg.0.log log file
Comment 3 qwang13 2008-11-15 04:47:55 UTC
DRM modules is kernel drm instead of libdrm. libdrm2.4.1 is OK. Maybe you can try on the latest drm module in kernel.
Comment 4 benderamp 2008-11-15 13:07:25 UTC
> Maybe you can try on the latest drm module in kernel.

I don't mind to update it, but I could not find opensuse package in which it is located - is it somewhere in X11 repository (http://download.opensuse.org/repositories/X11:/XOrg/openSUSE_11.0/x86_64/) or is it in kernel main package (kernel-default) or is it somewhere else?

My current kernel version is 2.6.25.18-0.2-default - with latest updates available from package manager.
Comment 5 haihao 2008-11-17 17:24:16 UTC
You can download the latest kernel from http://www.kernel.org/
Comment 6 Eric Anholt 2008-12-02 14:01:30 UTC
Looks like the kernel delayed vblank swap bug that was fixed in the kernel back in July.  Disable vblank synchronization in driconf to confirm.
Comment 7 benderamp 2008-12-03 00:52:05 UTC
(In reply to comment #6)
> Looks like the kernel delayed vblank swap bug that was fixed in the kernel back
> in July.  Disable vblank synchronization in driconf to confirm.
> 

How can I do this? I have DRI section in xorg.conf file, but no vblank parameters in it or anywhere else


Section "DRI"
    Group      "video"
    Mode       0660
EndSection
Comment 8 qwang13 2008-12-03 08:37:15 UTC
Try this
set vblank_mode to 0 in your ~/.drirc, such as 

<driconf>
 <device screen="0" driver="i965">
         <application name="Default">
                 <option name="vblank_mode" value="0" />
         </application>
 </device>
</driconf>
Comment 9 benderamp 2008-12-03 11:27:48 UTC
(In reply to comment #8)
> Try this
> set vblank_mode to 0 in your ~/.drirc, such as 
> 
> <driconf>
>  <device screen="0" driver="i965">
>          <application name="Default">
>                  <option name="vblank_mode" value="0" />
>          </application>
>  </device>
> </driconf>
> 

This helped! Thanks
Comment 10 Eric Anholt 2008-12-08 11:26:01 UTC
Bug was fixed in the kernel this summer, and we deleted the fixed offending code for 2.6.28.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.