xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#488 closed defect (fixed)

virtualbox gl transparency crash with Fedora 19 x86 guest

Reported by: Antoine Martin Owned by: alas
Priority: critical Milestone: 0.11
Component: client Version:
Keywords: gl virtualbox Cc:

Description (last modified by Antoine Martin)

Crashes as soon as I launch tests/xpra/test_apps/transparent_colors.py or tests/xpra/test_apps/transparent_window.py

gdb backtrace:

#0  0x410c8630 in gdk_x_error () from /lib/libgdk-x11-2.0.so.0
#1  0x4ccaf766 in _XError () from /lib/libX11.so.6
#2  0x4ccac3c6 in handle_error () from /lib/libX11.so.6
#3  0x4ccac48e in handle_response () from /lib/libX11.so.6
#4  0x4ccad520 in _XReply () from /lib/libX11.so.6
#5  0x4cc91624 in XGetGeometry () from /lib/libX11.so.6
#6  0xb730e631 in swrastGetDrawableInfo () from /lib/libGL.so.1
#7  0xb441dbcc in drisw_update_drawable_info () from /usr/lib/dri/swrast_dri.so
#8  0xb441d043 in dri_st_framebuffer_validate ()
   from /usr/lib/dri/swrast_dri.so
#9  0xb4260918 in st_framebuffer_validate () from /usr/lib/dri/swrast_dri.so
#10 0xb426133b in st_api_make_current () from /usr/lib/dri/swrast_dri.so
#11 0xb441c60b in dri_make_current () from /usr/lib/dri/swrast_dri.so
#12 0xb41216c1 in driBindContext () from /usr/lib/dri/swrast_dri.so
#13 0xb730e405 in drisw_bind_context () from /lib/libGL.so.1
#14 0xb72ea3dd in glXMakeCurrentReadSGI () from /lib/libGL.so.1
#15 0xb72ea554 in glXMakeCurrent () from /lib/libGL.so.1
#16 0xb496a06c in gdk_gl_window_impl_x11_make_context_current ()
   from /lib/libgdkglext-x11-1.0.so.0
#17 0xb494799d in gdk_gl_drawable_gl_begin ()
   from /lib/libgdkglext-x11-1.0.so.0
#18 0xb49c2091 in _wrap_gdk_gl_drawable_gl_begin ()
   from /usr/lib/python2.7/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.so

This follows an expose event (client debug all log):

2014-01-09 14:10:09,742 GLClientWindow(..)
2014-01-09 14:10:09,742 <class 'xpra.client.gl.gl_client_window.GLClientWindow'>\
    (<XpraClient object at 0x98ecbbc (xpra+client+gtk2+client+XpraClient at 0x961b710)>, \
     <gtk.gdk.Window object at 0x9d69cfc (GdkWindow at 0x9d990d8)>, 2, 0, 0, 320, 320, \
     {'size-constraints': {'minimum-size': (0, 0), 'base-size': (0, 0)}, 'fullscreen': False, \
      'has-alpha': True, 'xid': '0xa00004', 'title': 'transparent_colors.py', 'icon-title': \
      'transparent_colors.py', 'client-machine': 'localhost.localdomain', 'pid': 1967, \
      'group-leader-xid': 10485761, 'window-type': ('NORMAL',), 'modal': False, 'maximized': False, \
      'class-instance': ('transparent_colors.py', 'Transparent_colors.py')}, False, {}, 0)
2014-01-09 14:10:09,742 update_metadata({'size-constraints': {'minimum-size': (0, 0), \
    'base-size': (0, 0)}, 'fullscreen': False, 'has-alpha': True, 'xid': '0xa00004', \
    'title': 'transparent_colors.py', 'icon-title': 'transparent_colors.py', \
    'client-machine': 'localhost.localdomain', 'pid': 1967, 'group-leader-xid': 10485761, \
    'window-type': ('NORMAL',), 'modal': False, 'maximized': False, \
    'class-instance': ('transparent_colors.py', 'Transparent_colors.py')})
2014-01-09 14:10:09,745 set_modal(False) swallowed
2014-01-09 14:10:09,745 set_window_type(['NORMAL']) hints=0
2014-01-09 14:10:09,746 set_alpha() using rgba colormap for 2, realized=False
2014-01-09 14:10:09,749 set_fullscreen(False)
2014-01-09 14:10:09,749 make_new_backing(<class 'xpra.client.gl.gl_window_backing.GLPixmapBacking'>, 320, 320) \
    effective backing class=<class 'xpra.client.gl.gl_window_backing.GLPixmapBacking'>, alpha=True
2014-01-09 14:10:09,749 video decoders: {'h264': 'dec_avcodec', 'vp8': 'dec_vpx'}
2014-01-09 14:10:09,753 make_new_backing(<class 'xpra.client.gl.gl_window_backing.GLPixmapBacking'>, 320, 320) calling init
2014-01-09 14:10:09,812 all the existing windows and system trays have been received: 2 items
2014-01-09 14:10:09,846 window_state_updated(GLClientWindow(GLPixmapBacking(1, (499, 316), None)), \
    <gtk.gdk.Event at 0x9e807a0: GDK_WINDOW_STATE>) new_window_state=<flags 0 of type GdkWindowState>, fullscreen=False, maximized=False
2014-01-09 14:10:09,847 window_state_updated(GLClientWindow(GLPixmapBacking(2, (320, 320), None)), \
    <gtk.gdk.Event at 0x9e807a0: GDK_WINDOW_STATE>) new_window_state=<flags 0 of type GdkWindowState>, fullscreen=False, maximized=False
2014-01-09 14:10:09,852 XRootPropWatcher.do_xpra_property_notify_event(<AdHocStruct object, contents: \
    {'delivered_to': <gtk.gdk.Window object at 0x98ec144 (GdkWindow at 0x95fa038)>, \
     'send_event': 0, 'window': <gtk.gdk.Window object at 0x98ec144 (GdkWindow at 0x95fa038)>, \
     'atom': '_NET_CLIENT_LIST', 'serial': 557L, 'type': 28, \
     'display': <gtk.gdk.DisplayX11 object at 0xb6c19b94 (GdkDisplayX11 at 0x95f1008)>}>)
2014-01-09 14:10:09,853 XRootPropWatcher.do_xpra_property_notify_event(<AdHocStruct object, contents: \
     {'delivered_to': <gtk.gdk.Window object at 0x98ec144 (GdkWindow at 0x95fa038)>, \
      'send_event': 0, 'window': <gtk.gdk.Window object at 0x98ec144 (GdkWindow at 0x95fa038)>, \
      'atom': '_NET_CLIENT_LIST_STACKING', 'serial': 557L, 'type': 28, \
      'display': <gtk.gdk.DisplayX11 object at 0xb6c19b94 (GdkDisplayX11 at 0x95f1008)>}>)
2014-01-09 14:10:09,897 GLPixmapBacking(2, (320, 320), None).gl_expose_event(<DrawingArea object at 0x9d69eb4 \
    (GtkDrawingArea at 0x9bd0360)>, <gtk.gdk.Event at 0x9e807a0: GDK_EXPOSE area=[0, 0, 200, 200]>)
2014-01-09 14:10:09,902 GLPixmapBacking(2, (320, 320), None).gl_init() GL Pixmap backing size: 320 x 320, \
    drawable=<gtk.gdk.GLWindowImplX11 object at 0x9d69e64 (GdkGLWindowImplX11 at 0x9dac6a0)>
2014-01-09 14:10:09,903 GL Extension GL_GREMEDY_string_marker unavailable
2014-01-09 14:10:09,903 GL Extension GL_GREMEDY_frame_terminator unavailable
2014-01-09 14:10:09,904 GLPixmapBacking(2, (320, 320), None).gl_marker(Initializing GL context for window size 320 x 320)
2014-01-09 14:10:09,905 GLPixmapBacking(2, (320, 320), None).gl_init_textures() textures: [1 2 3 4 5], offscreen fbo: 1
2014-01-09 14:10:10,017 GLPixmapBacking(2, (320, 320), None).gl_marker(Presenting FBO on screen for drawable \
    <gtk.gdk.GLWindowImplX11 object at 0x9d69e64 (GdkGLWindowImplX11 at 0x9dac6a0)>)
2014-01-09 14:10:10,017 GLPixmapBacking(2, (320, 320), None).gl_marker(Switching to RGB paint state)
2014-01-09 14:10:10,416 GLPixmapBacking(2, (320, 320), None).gl_frame_terminator()
2014-01-09 14:10:10,416 GLPixmapBacking(2, (320, 320), None).gl_marker(Switching back to YUV paint state)
2014-01-09 14:10:10,420 GLPixmapBacking(2, (320, 320), None).present_fbo() done
2014-01-09 14:10:10,420 GLPixmapBacking(1, (499, 316), None).gl_expose_event(\
    <DrawingArea object at 0x9d69c84 (GtkDrawingArea at 0x9bd02e0)>, \
    <gtk.gdk.Event at 0x9e807a0: GDK_EXPOSE area=[0, 0, 200, 200]>)
 
(Xpra:8972): Gdk-ERROR **: The program 'Xpra' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
  (Details: serial 884 error_code 8 request_code 72 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)

Change History (8)

comment:1 Changed 6 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

comment:2 Changed 6 years ago by Antoine Martin

Milestone: 0.120.11

Re-built virtualbox X11 modules and rebooted (thinking it might be an out of date acceleration kernel module), and now the crash occurs with a simple xterm:

xpra client version 0.11.0
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
OpenGL Warning: Unimplemented glxMakeCurrent call with GLXPixmap passed, unexpected things might happen.
 
(Xpra:2107): Gdk-ERROR **: The program 'Xpra' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 202 error_code 3 request_code 40 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap (core dumped)

This belongs in 0.11: we need a way of detecting virtualbox and/or broken 3D drivers and fallback to the pixmap backing. (as we already do on win32 when we detect the virtualbox DLL)

comment:3 Changed 6 years ago by Antoine Martin

r5156 changes the way we detect OpenGL on all platforms (see commit message for details), so we now avoid this crash. But I don't like it.

Maybe something like this would do the job?:

widget = some.widget()
gtk.gtkgl.widget_set_gl_capability(widget, config)
widget.realize()
drawable = gtk.gtkgl.widget_get_gl_drawable(widget)

Keeping this ticket open so I can try to find a better way.

comment:4 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to alas
Status: assignednew

Please see commit message for r5161

Please verify that the client still works ok:

  • Fedora 19 in virtualbox - the client should no longer crash (previously, it may not have crashed on all combinations of host OS / GPU, versions, etc.. ) and GL should be disabled since we blacklist the virtualbox driver
  • MS Windows clients: GL should be enabled (I am unable to test with virtualbox - we disable GL when we detect virtualbox)
  • OSX clients: GL should be enabled (I am unable to test as my VM does not have GL acceleration)
Last edited 6 years ago by Antoine Martin (previous) (diff)

comment:5 Changed 6 years ago by Smo

Tried with fedora 19 in virtualbox here is the output of gl_check.py as requested

2014-01-29 03:06:37,385 importing ('do_init',) from xpra.platform.xposix (required=True)
2014-01-29 03:06:37,386 do_init=<function do_init at 0x257a938>
2014-01-29 03:06:37,413 importing ('get_app_dir', 'get_icon_dir') from xpra.platform.xposix.paths (required=True)
2014-01-29 03:06:37,413 get_app_dir=<function get_app_dir at 0x2611500>
2014-01-29 03:06:37,413 get_icon_dir=<function get_icon_dir at 0x2611578>
2014-01-29 03:06:37,413 importing ('get_default_conf_dir', 'get_default_socket_dir') from xpra.platform.xposix.paths (required=False)
2014-01-29 03:06:37,414 get_default_conf_dir=<function get_default_conf_dir at 0x2611050> (unchanged)
2014-01-29 03:06:37,414 get_default_socket_dir=<function get_default_socket_dir at 0x26110c8> (unchanged)
2014-01-29 03:06:37,499 pygdkglext version=(1, 1, 0)
2014-01-29 03:06:37,509 pygdkglext OpenGL version=(1, 4)
2014-01-29 03:06:37,510 GL props={'pygdkglext_version': (1, 1, 0), 'has_alpha': True, 'gdkgl_version': (1, 4), 'rgba': True, 'display_mode': ['ALPHA', 'SINGLE'], 'glconfig': <gtk.gdkgl.Config object at 0x29bb7d0 (GdkGLConfigImplX11 at 0x2a4b120)>}
2014-01-29 03:06:37,594 No OpenGL_accelerate module loaded: No module named OpenGL_accelerate
2014-01-29 03:06:37,706 Unable to load registered array format handler vbo:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/OpenGL/arrays/formathandler.py", line 35, in loadPlugin
    plugin_class = entrypoint.load()
  File "/usr/lib/python2.7/site-packages/OpenGL/plugins.py", line 14, in load
    return importByName( self.import_path )
  File "/usr/lib/python2.7/site-packages/OpenGL/plugins.py", line 28, in importByName
    module = __import__( ".".join(moduleName), {}, {}, moduleName)
  File "/usr/lib/python2.7/site-packages/OpenGL/arrays/vbo.py", line 33, in <module>
    from OpenGL import GL
ImportError: cannot import name GL

2014-01-29 03:06:37,706 Unable to load registered array format handler vbooffset:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/OpenGL/arrays/formathandler.py", line 35, in loadPlugin
    plugin_class = entrypoint.load()
  File "/usr/lib/python2.7/site-packages/OpenGL/plugins.py", line 14, in load
    return importByName( self.import_path )
  File "/usr/lib/python2.7/site-packages/OpenGL/plugins.py", line 28, in importByName
    module = __import__( ".".join(moduleName), {}, {}, moduleName)
  File "/usr/lib/python2.7/site-packages/OpenGL/arrays/vbo.py", line 33, in <module>
    from OpenGL import GL
ImportError: cannot import name GL

2014-01-29 03:06:37,768 OpenGL Version: 2.1 Mesa 9.2.5
2014-01-29 03:06:37,830 GL Extension GL_ARB_shader_objects available
2014-01-29 03:06:37,839 GL Extension GL_ARB_vertex_array_object available
2014-01-29 03:06:37,841 GL Extension GL_ARB_texture_buffer_object unavailable
2014-01-29 03:06:37,843 GL Extension GL_ARB_framebuffer_object available
2014-01-29 03:06:37,847 GL Extension GL_ARB_map_buffer_range available
2014-01-29 03:06:37,849 GL Extension GL_ARB_copy_buffer available
2014-01-29 03:06:37,850 GL Extension GL_ARB_uniform_buffer_object available
2014-01-29 03:06:37,853 GL Extension GL_ARB_draw_elements_base_vertex available
2014-01-29 03:06:37,854 GL Extension GL_ARB_provoking_vertex available
2014-01-29 03:06:37,854 GL Extension GL_ARB_sync available
2014-01-29 03:06:37,857 GL Extension GL_ARB_texture_multisample unavailable
2014-01-29 03:06:37,858 GL Extension GL_ARB_blend_func_extended available
2014-01-29 03:06:37,858 GL Extension GL_ARB_sampler_objects available
2014-01-29 03:06:37,862 GL Extension GL_ARB_timer_query available
2014-01-29 03:06:37,864 GL Extension GL_ARB_vertex_type_2_10_10_10_rev available
2014-01-29 03:06:37,869 GL Extension GL_ARB_draw_indirect unavailable
2014-01-29 03:06:37,870 GL Extension GL_ARB_gpu_shader_fp64 unavailable
2014-01-29 03:06:37,872 GL Extension GL_ARB_shader_subroutine unavailable
2014-01-29 03:06:37,873 GL Extension GL_ARB_tessellation_shader unavailable
2014-01-29 03:06:37,874 GL Extension GL_ARB_transform_feedback2 available
2014-01-29 03:06:37,876 GL Extension GL_ARB_transform_feedback3 available
2014-01-29 03:06:37,877 GL Extension GL_ARB_ES2_compatibility available
2014-01-29 03:06:37,878 GL Extension GL_ARB_get_program_binary available
2014-01-29 03:06:37,879 GL Extension GL_ARB_separate_shader_objects unavailable
2014-01-29 03:06:37,884 GL Extension GL_ARB_vertex_attrib_64bit unavailable
2014-01-29 03:06:37,885 GL Extension GL_ARB_viewport_array unavailable
2014-01-29 03:06:37,887 GL Extension GL_ARB_base_instance unavailable
2014-01-29 03:06:37,887 GL Extension GL_ARB_transform_feedback_instanced available
2014-01-29 03:06:37,888 GL Extension GL_ARB_internalformat_query available
2014-01-29 03:06:37,890 GL Extension GL_ARB_shader_atomic_counters unavailable
2014-01-29 03:06:37,891 GL Extension GL_ARB_shader_image_load_store unavailable
2014-01-29 03:06:37,892 GL Extension GL_ARB_texture_storage available
2014-01-29 03:06:37,894 GL Extension GL_ARB_clear_buffer_object unavailable
2014-01-29 03:06:37,895 GL Extension GL_ARB_compute_shader unavailable
2014-01-29 03:06:37,895 GL Extension GL_ARB_copy_image unavailable
2014-01-29 03:06:37,897 GL Extension GL_KHR_debug unavailable
2014-01-29 03:06:37,901 GL Extension GL_ARB_framebuffer_no_attachments unavailable
2014-01-29 03:06:37,902 GL Extension GL_ARB_internalformat_query2 unavailable
2014-01-29 03:06:37,903 GL Extension GL_ARB_invalidate_subdata available
2014-01-29 03:06:37,905 GL Extension GL_ARB_multi_draw_indirect unavailable
2014-01-29 03:06:37,906 GL Extension GL_ARB_program_interface_query unavailable
2014-01-29 03:06:37,907 GL Extension GL_ARB_shader_storage_buffer_object unavailable
2014-01-29 03:06:37,908 GL Extension GL_ARB_texture_buffer_range unavailable
2014-01-29 03:06:37,908 GL Extension GL_ARB_texture_storage_multisample unavailable
2014-01-29 03:06:37,909 GL Extension GL_ARB_texture_view unavailable
2014-01-29 03:06:37,910 GL Extension GL_ARB_vertex_attrib_binding unavailable
2014-01-29 03:06:37,913 found valid OpenGL version: 2.1
2014-01-29 03:06:37,913 OpenGL extensions found: GL_ARB_multisample, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_copy_texture, GL_EXT_polygon_offset, GL_EXT_subtexture, GL_EXT_texture_object, GL_EXT_vertex_array, GL_EXT_compiled_vertex_array, GL_EXT_texture, GL_EXT_texture3D, GL_IBM_rasterpos_clip, GL_ARB_point_parameters, GL_EXT_draw_range_elements, GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_separate_specular_color, GL_EXT_texture_edge_clamp, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_ARB_framebuffer_sRGB, GL_ARB_multitexture, GL_EXT_framebuffer_sRGB, GL_IBM_multimode_draw_arrays, GL_IBM_texture_mirrored_repeat, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_transpose_matrix, GL_EXT_blend_func_separate, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_secondary_color, GL_EXT_texture_env_add, GL_EXT_texture_lod_bias, GL_INGR_blend_func_separate, GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_texgen_reflection, GL_NV_texture_env_combine4, GL_SUN_multi_draw_arrays, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_EXT_framebuffer_object, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_MESA_window_pos, GL_NV_packed_depth_stencil, GL_NV_texture_rectangle, GL_ARB_depth_texture, GL_ARB_occlusion_query, GL_ARB_shadow, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat, GL_ARB_window_pos, GL_EXT_stencil_two_side, GL_EXT_texture_cube_map, GL_NV_fog_distance, GL_APPLE_packed_pixels, GL_APPLE_vertex_array_object, GL_ARB_draw_buffers, GL_ARB_fragment_program, GL_ARB_fragment_shader, GL_ARB_shader_objects, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ATI_draw_buffers, GL_ATI_texture_env_combine3, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_NV_primitive_restart, GL_ARB_fragment_program_shadow, GL_ARB_half_float_pixel, GL_ARB_occlusion_query2, GL_ARB_point_sprite, GL_ARB_shading_language_100, GL_ARB_sync, GL_ARB_texture_non_power_of_two, GL_ARB_vertex_buffer_object, GL_ATI_blend_equation_separate, GL_EXT_blend_equation_separate, GL_OES_read_format, GL_ARB_color_buffer_float, GL_ARB_pixel_buffer_object, GL_ARB_texture_compression_rgtc, GL_ARB_texture_rectangle, GL_ATI_texture_compression_3dc, GL_EXT_packed_float, GL_EXT_pixel_buffer_object, GL_EXT_texture_compression_rgtc, GL_EXT_texture_mirror_clamp, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_shared_exponent, GL_ARB_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_packed_depth_stencil, GL_ARB_vertex_array_object, GL_ATI_separate_stencil, GL_ATI_texture_mirror_once, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_gpu_program_parameters, GL_EXT_texture_array, GL_EXT_texture_compression_latc, GL_EXT_texture_integer, GL_EXT_texture_sRGB_decode, GL_EXT_timer_query, GL_OES_EGL_image, GL_MESA_texture_array, GL_ARB_copy_buffer, GL_ARB_depth_buffer_float, GL_ARB_draw_instanced, GL_ARB_half_float_vertex, GL_ARB_instanced_arrays, GL_ARB_map_buffer_range, GL_ARB_texture_rg, GL_ARB_texture_swizzle, GL_ARB_vertex_array_bgra, GL_EXT_texture_swizzle, GL_EXT_vertex_array_bgra, GL_NV_conditional_render, GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend, GL_ARB_ES2_compatibility, GL_ARB_blend_func_extended, GL_ARB_debug_output, GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, GL_ARB_provoking_vertex, GL_ARB_sampler_objects, GL_ARB_shader_texture_lod, GL_ARB_texture_rgb10_a2ui, GL_ARB_uniform_buffer_object, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_provoking_vertex, GL_EXT_texture_snorm, GL_MESA_texture_signed_rgba, GL_ARB_get_program_binary, GL_ARB_robustness, GL_ARB_shader_bit_encoding, GL_ARB_timer_query, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_ARB_conservative_depth, GL_ARB_internalformat_query, GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing, GL_ARB_texture_storage, GL_ARB_transform_feedback_instanced, GL_EXT_transform_feedback, GL_ARB_invalidate_subdata, 
2014-01-29 03:06:37,913 found the following array handlers: set([<OpenGL.arrays.strings.UnicodeHandler object at 0x2ce4a10>, <OpenGL.arrays.numeric.NumericHandler object at 0x2cf5450>, <OpenGL.arrays.nones.NoneHandler object at 0x2ce4410>, <OpenGL.arrays.numbers.NumberHandler object at 0x2cec210>, <OpenGL.arrays.strings.StringHandler object at 0x2ce4710>, <OpenGL.arrays.numpymodule.NumpyHandler object at 0x2cf5410>, <OpenGL.arrays.ctypespointers.CtypesPointerHandler object at 0x2cf51d0>, <OpenGL.arrays.ctypesparameters.CtypesParameterHandler object at 0x2cecf10>, <OpenGL.arrays.ctypesarrays.CtypesArrayHandler object at 0x2cec590>, <OpenGL.arrays.lists.ListHandler object at 0x2cec1d0>])
2014-01-29 03:06:37,913 vendor: VMware, Inc.
2014-01-29 03:06:37,913 renderer: Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits)
2014-01-29 03:06:37,913 shading language version: 1.30
2014-01-29 03:06:37,931 GLU extensions: GLU_EXT_nurbs_tessellator GLU_EXT_object_space_tess 
2014-01-29 03:06:37,932 GLU version: 1.3
2014-01-29 03:06:37,932 All the required OpenGL functions are available: glActiveTexture, glTexSubImage2D, glTexCoord2i, glViewport, glMatrixMode, glLoadIdentity, glOrtho, glEnableClientState, glGenTextures, glDisable, glBindTexture, glPixelStorei, glEnable, glBegin, glFlush, glTexParameteri, glTexImage2D, glMultiTexCoord2i, glVertex2i, glEnd 
2014-01-29 03:06:37,932 All the required OpenGL functions are available: GL_FRAMEBUFFER (0x8D40), GL_COLOR_ATTACHMENT0 (0x8CE0), glGenFramebuffers, glBindFramebuffer, glFramebufferTexture2D 
2014-01-29 03:06:37,932 Extension GL_ARB_texture_rectangle is present
2014-01-29 03:06:37,932 Extension GL_ARB_vertex_program is present
2014-01-29 03:06:37,933 GL Extension GL_ARB_fragment_program available
2014-01-29 03:06:37,933 glInitFragmentProgramARB works
2014-01-29 03:06:37,933 GL Extension GL_ARB_texture_rectangle available
2014-01-29 03:06:37,933 glInitTextureRectangleARB works
2014-01-29 03:06:37,935 GL Extension GL_ARB_vertex_program available
2014-01-29 03:06:37,943 All the required OpenGL functions are available: glGenProgramsARB, glDeleteProgramsARB, glBindProgramARB, glProgramStringARB 
2014-01-29 03:06:37,943 Texture size GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB=8192, GL_MAX_TEXTURE_SIZE=8192

comment:6 Changed 6 years ago by Smo

OpenGL seems to be working with some applications but with transparency it is failing.

Both test applications crash the client. Works fine with opengl=off. So I guess it might be a good idea to blacklist opengl with VMware driver as well?

comment:7 Changed 6 years ago by alas

OSX and Win clients, with opengl enabled, running on hardware, both work fine with the transparent_colors.py.

comment:8 Changed 6 years ago by Antoine Martin

Resolution: fixed
Status: newclosed

Damn, I get this unhelpful GDB backtrace on Fedora 20:

Program received signal SIGTRAP, Trace/breakpoint trap.
0x000000380b6504e9 in g_logv () from /lib64/libglib-2.0.so.0
(gdb) bt
#0  0x000000380b6504e9 in g_logv () from /lib64/libglib-2.0.so.0
#1  0x000000380b65063f in g_log () from /lib64/libglib-2.0.so.0
#2  0x0000003cb506866b in gdk_x_error () from /lib64/libgdk-x11-2.0.so.0
#3  0x0000003ac88450bb in _XError () from /lib64/libX11.so.6
#4  0x0000003ac88420b7 in handle_error () from /lib64/libX11.so.6
#5  0x0000003ac8842175 in handle_response () from /lib64/libX11.so.6
#6  0x0000003ac8842b25 in _XEventsQueued () from /lib64/libX11.so.6
#7  0x0000003ac882459a in XFlush () from /lib64/libX11.so.6
#8  0x0000003cb50414a0 in gdk_window_process_all_updates ()
   from /lib64/libgdk-x11-2.0.so.0
#9  0x0000003cb5041549 in gdk_window_update_idle ()
   from /lib64/libgdk-x11-2.0.so.0
#10 0x0000003cb501ec57 in gdk_threads_dispatch ()
   from /lib64/libgdk-x11-2.0.so.0
#11 0x000000380b6492a6 in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#12 0x000000380b649628 in g_main_context_iterate.isra.24 ()
   from /lib64/libglib-2.0.so.0
#13 0x000000380b649a3a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#14 0x0000003cb4945c27 in gtk_main () from /lib64/libgtk-x11-2.0.so.0
#15 0x00007fffed8ab847 in _wrap_gtk_main ()
   from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so
#16 0x00000030f38e0ac0 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#17 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#18 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#19 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#20 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#21 0x00000030f38e229d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#22 0x00000030f38e094f in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#23 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#24 0x00000030f38e0a40 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#25 0x00000030f38e229d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#26 0x00000030f38e23a2 in PyEval_EvalCode () from /lib64/libpython2.7.so.1.0
#27 0x00000030f38fb7ef in ?? () from /lib64/libpython2.7.so.1.0
#28 0x00000030f38fc9ae in PyRun_FileExFlags () from /lib64/libpython2.7.so.1.0
#29 0x00000030f38fdc39 in PyRun_SimpleFileExFlags ()
   from /lib64/libpython2.7.so.1.0
#30 0x00000030f390ec4f in Py_Main () from /lib64/libpython2.7.so.1.0
#31 0x0000003ac4021d65 in __libc_start_main () from /lib64/libc.so.6
#32 0x0000000000400721 in _start ()

And with r5311, we get more readable GL property logging:

OpenGL properties:
  pygdkglext_version       : (1, 1, 0)
  has_alpha                : True
  vendor                   : VMware, Inc.
  gdkgl_version            : (1, 4)
  shading language version : 1.30
  opengl                   : (2, 1)
  GLU extensions           : GLU_EXT_nurbs_tessellator GLU_EXT_object_space_tess 
  renderer                 : Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits)
  rgba                     : True
  display_mode             : ['ALPHA', 'SINGLE']
  pyopengl                 : 3.0.2
  glconfig                 : <gtk.gdkgl.Config object at 0x1343cd0 (GdkGLConfigImplX11 at 0x1405b60)>
  GLU version              : 1.3

r5313 + r5314 blacklist the vmware driver.
r5315 improves gl probing error messages so we can see it blacklisted more clearly:

OpenGL errors:
  vendor 'VMware, Inc.' is blacklisted!

OpenGL properties:
  ...

Tested on Fedora 19 and Fedora 20, closing. Will backport to v0.11.x

Notes:

  • Are we blacklisting too many drivers by blacklisting by vendor?
  • Some of my Fedora virtual machines use Humper as driver, others VMware... (probably because of installation time driver detection?)
  • On a Fedora 19 x86 virtual machine which uses Humper, the gl check crashes after probing on exit (probably garbage collection related)
  • if someone finds instances of the vmware driver working properly (maybe under vmware?), then we may want to look at differentiating these instances from the virtualbox driver (not sure how..)
  • we will get more testing on the GL / rgb / alpha codepaths in #500
Last edited 6 years ago by Antoine Martin (previous) (diff)
Note: See TracTickets for help on using tickets.