Bug 329334

Summary: Kwin crashes if wrong OpenGL version is selected
Product: [Plasma] kwin Reporter: Jörg Afflerbach <nospam>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: hrvoje.senjan
Priority: NOR Keywords: drkonqi
Version: 4.11.4   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jörg Afflerbach 2013-12-28 19:09:28 UTC
Application: kwin (4.11.4)
KDE Platform Version: 4.11.4
Qt Version: 4.8.5
Operating System: Linux 3.4.11-2.16-desktop x86_64
Distribution: "openSUSE 12.2 (i586)"

-- Information about the crash:
Crash when activating desktop effects after updating KDE to version 4.11 (X11 packages might have been updated, too, via system update. Not sure.). Effects were disabled when I first started KDE after the update. Before the update, effects were enabled and working.

I consider this a regression,, because desktop effects/compositing had been working almost flawlessly for a long time.

What I was doing when the application crashed:

I checked "Ich habe meine Daten gespeichert" ("I have saved my data"). Then I pushed "OpenGL-Erkennung aktivieren" ("Activate OpenGL detection").

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff248132780 (LWP 14557))]

Thread 3 (Thread 0x7ff227fff700 (LWP 14586)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ff246b11ef7 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7ff246e1f640 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007ff246b11f29 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007ff242147e0e in start_thread (arg=0x7ff227fff700) at pthread_create.c:305
#4  0x00007ff24790c2cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7ff22ce9f700 (LWP 15365)):
#0  0x00007ff247905f23 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ff2424b88d2 in QProcessManager::run (this=0x7ff2428384c0 <processManager()::processManager>) at io/qprocess_unix.cpp:247
#2  0x00007ff2423de0dc in QThreadPrivate::start (arg=0x7ff2428384c0 <processManager()::processManager>) at thread/qthread_unix.cpp:338
#3  0x00007ff242147e0e in start_thread (arg=0x7ff22ce9f700) at pthread_create.c:305
#4  0x00007ff24790c2cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7ff248132780 (LWP 14557)):
[KCrash Handler]
#6  xcb_glx_get_string_string_length (R=R@entry=0x0) at glx.c:9009
#7  0x00007ff242fc3294 in __glXGetString (dpy=dpy@entry=0x221af30, opcode=<optimized out>, contextTag=10092549, name=name@entry=7936) at glx_query.c:82
#8  0x00007ff242fc0e72 in __indirect_glGetString (name=<optimized out>) at single2.c:685
#9  0x00007ff24320194c in KWin::GLPlatform::detect (this=0x2502050, platformInterface=KWin::GlxPlatformInterface) at /usr/src/debug/kde-workspace-4.11.4/kwin/libkwineffects/kwinglplatform.cpp:524
#10 0x00007ff247cb4366 in KWin::GlxBackend::init (this=0x243c1b0) at /usr/src/debug/kde-workspace-4.11.4/kwin/glxbackend.cpp:99
#11 0x00007ff247cac37c in KWin::SceneOpenGL::createScene () at /usr/src/debug/kde-workspace-4.11.4/kwin/scene_opengl.cpp:199
#12 0x00007ff247c92e65 in KWin::Compositor::slotCompositingOptionsInitialized (this=this@entry=0x2486110) at /usr/src/debug/kde-workspace-4.11.4/kwin/composite.cpp:202
#13 0x00007ff247c93288 in setup (this=0x2486110) at /usr/src/debug/kde-workspace-4.11.4/kwin/composite.cpp:161
#14 KWin::Compositor::setup (this=0x2486110) at /usr/src/debug/kde-workspace-4.11.4/kwin/composite.cpp:133
#15 0x00007ff247c93bb0 in KWin::Compositor::slotConfigChanged (this=0x2486110) at /usr/src/debug/kde-workspace-4.11.4/kwin/composite.cpp:398
#16 0x00007ff2424ef37f in QMetaObject::activate (sender=0x22d6ea0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3556
#17 0x00007ff247c22fd1 in KWin::Workspace::slotReconfigure (this=0x22d6ea0) at /usr/src/debug/kde-workspace-4.11.4/kwin/workspace.cpp:798
#18 0x00007ff2424ef37f in QMetaObject::activate (sender=0x22d6fd0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3556
#19 0x00007ff2424ee68c in QObject::event (this=0x22d6fd0, e=<optimized out>) at kernel/qobject.cpp:1165
#20 0x00007ff24166691c in QApplicationPrivate::notify_helper (this=this@entry=0x21f34f0, receiver=receiver@entry=0x22d6fd0, e=e@entry=0x7fff89897c60) at kernel/qapplication.cpp:4562
#21 0x00007ff24166ad9a in QApplication::notify (this=0x7fff898982a0, receiver=0x22d6fd0, e=0x7fff89897c60) at kernel/qapplication.cpp:4423
#22 0x00007ff24656de16 in KApplication::notify (this=0x7fff898982a0, receiver=0x22d6fd0, event=0x7fff89897c60) at /usr/src/debug/kdelibs-4.11.4/kdeui/kernel/kapplication.cpp:311
#23 0x00007ff2424d9e7e in QCoreApplication::notifyInternal (this=0x7fff898982a0, receiver=0x22d6fd0, event=0x7fff89897c60) at kernel/qcoreapplication.cpp:949
#24 0x00007ff24250ad61 in sendEvent (event=0x7fff89897c60, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#25 QTimerInfoList::activateTimers (this=0x21f3f58) at kernel/qeventdispatcher_unix.cpp:636
#26 0x00007ff24250b3a0 in QEventDispatcherUNIX::activateTimers (this=this@entry=0x2187a70) at kernel/qeventdispatcher_unix.cpp:893
#27 0x00007ff24250b558 in QEventDispatcherUNIX::processEvents (this=0x2187a70, flags=...) at kernel/qeventdispatcher_unix.cpp:955
#28 0x00007ff241707bff in QEventDispatcherX11::processEvents (this=0x2187a70, flags=...) at kernel/qeventdispatcher_x11.cpp:152
#29 0x00007ff2424d8b2f in QEventLoop::processEvents (this=this@entry=0x7fff89897fb0, flags=...) at kernel/qeventloop.cpp:149
#30 0x00007ff2424d8db8 in QEventLoop::exec (this=0x7fff89897fb0, flags=...) at kernel/qeventloop.cpp:204
#31 0x00007ff2424ddaf8 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#32 0x00007ff247c4a4f9 in kdemain (argc=3, argv=0x7fff898983e8) at /usr/src/debug/kde-workspace-4.11.4/kwin/main.cpp:597
#33 0x00007ff247849455 in __libc_start_main (main=0x4006f0 <main(int, char**)>, argc=3, ubp_av=0x7fff898983e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff898983d8) at libc-start.c:226
#34 0x0000000000400721 in _start () at ../sysdeps/x86_64/elf/start.S:113

The reporter indicates this bug may be a duplicate of or related to bug 277850.

Possible duplicates by query: bug 277850.

Reported using DrKonqi
Comment 1 Thomas Lübking 2013-12-28 19:49:05 UTC
Broken driver installation, the only way to run into indirect rendering would be an explicit "LIBGL_ALWAYS_INDIRECT=1" export (bad idea on MESA, ignored on nvidia) or the software rasterizer.

What's the output of "glxinfo" (unless that crashes as well) and "lspci"
Comment 2 Jörg Afflerbach 2013-12-29 10:04:52 UTC
OK, I’ve solved the issue. 

# glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL version string: 2.1 Mesa 8.0.4
OpenGL shading language version string: 1.20

"OpenGL 3.1" was selected as composite type in the "Erweitert" ("Advanced") tab, whereas glxinfo tells me that I have 2.1. I’m not sure, if I changed this setting or if it was automatically done. As far as I remember, the OpenGL version numbers in the dropdown are new as of KDE 4.11?

When I select OpenGL 2.0 or 1.2 instead of 3.1 everything is fine.

However, kwin should not crash when the incorrect OpenGL version is selected. Moreover, kwin should be able to figure out the correct version itself.
Comment 3 Martin Flöser 2013-12-29 11:06:08 UTC
You are really using openSUSE 12.2? In that case your drivers are just way too 
old.

I think we need to notify the openSUSE developers that it's a bad idea to 
provide 4.11 for such an old base
Comment 4 Jörg Afflerbach 2013-12-29 11:24:35 UTC
I think I‘ll do a system update soon (maybe on new hardware). 

But I don’t think, that’s the point here. Even if it might be a problem with the driver, kwin should not crash. As I wrote before, I think, kwin should handle such situations gracefully. And maybe detect best – or at least a compatible – composite type/OpenGL version itself.

KWin has made good progress in the last couple of years. But in the past, KDE has lost some good reputation also due to harmless crashes like this one. 
So maybe it’s worth fixing this issue.
Comment 5 Martin Flöser 2013-12-29 11:37:01 UTC
> But I don’t think, that’s the point here. Even if it might be a problem with
> the driver, kwin should not crash. As I wrote before, I think, kwin should
> handle such situations gracefully. And maybe detect best – or at least a
> compatible – composite type/OpenGL version itself.
No, we cannot expect that distros provide KWin for outdated systems.  It's the 
task of the distribution to integrate the software. If they combine with a too 
old stack it's the distribution's fault.
Comment 6 Thomas Lübking 2013-12-29 13:00:49 UTC
does that mesa version have the context attrib arb?
can you please attach the output of glxinfo for that matter?

in general it's impossible to know whether a call to another lib will crash that call, if you know a way to do that in general, please share it.

this could be a weird variant of bug #327310
Comment 7 Jörg Afflerbach 2013-12-29 16:47:58 UTC
> in general it's impossible to know whether a call to another lib will crash
> that call, if you know a way to do that in general, please share it.

Ok, but it should be possible to determine the OpenGL version of the system and only make API calls compatible with that version. I don’t think users should have the option to choose an OpenGL version that is not even supported by their system.

Output of glxinfo and lspci as requested:

# 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_create_context, 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_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_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_create_context_es2_profile, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, 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_create_context, 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_multithread_makecurrent, 
    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
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
OpenGL version string: 2.1 Mesa 8.0.4
OpenGL shading language version string: 1.20
OpenGL extensions:
    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_3DFX_texture_compression_FXT1, 
    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_filter_anisotropic, 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_NV_vertex_program, 
    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_ATI_envmap_bumpmap, GL_EXT_stencil_two_side, 
    GL_EXT_texture_cube_map, GL_NV_depth_clamp, GL_NV_vertex_program1_1, 
    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_ATI_texture_float, GL_EXT_shadow_funcs, 
    GL_EXT_stencil_wrap, GL_MESA_pack_invert, GL_MESA_ycbcr_texture, 
    GL_ARB_depth_clamp, GL_ARB_fragment_program_shadow, 
    GL_ARB_half_float_pixel, 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_float, 
    GL_ARB_texture_rectangle, GL_EXT_packed_float, GL_EXT_pixel_buffer_object, 
    GL_EXT_texture_compression_rgtc, GL_EXT_texture_rectangle, 
    GL_EXT_texture_sRGB, GL_EXT_texture_shared_exponent, 
    GL_ARB_framebuffer_object, GL_EXT_framebuffer_blit, 
    GL_EXT_framebuffer_multisample, GL_EXT_packed_depth_stencil, 
    GL_APPLE_object_purgeable, GL_ARB_vertex_array_object, 
    GL_ATI_separate_stencil, GL_EXT_draw_buffers2, 
    GL_EXT_gpu_program_parameters, GL_EXT_texture_array, 
    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_half_float_vertex, 
    GL_ARB_map_buffer_range, GL_ARB_texture_rg, GL_ARB_texture_swizzle, 
    GL_ARB_vertex_array_bgra, GL_EXT_separate_shader_objects, 
    GL_EXT_texture_swizzle, GL_EXT_vertex_array_bgra, 
    GL_NV_conditional_render, GL_ARB_ES2_compatibility, 
    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_seamless_cube_map, 
    GL_ARB_shader_texture_lod, GL_EXT_provoking_vertex, GL_EXT_texture_snorm, 
    GL_MESA_texture_signed_rgba, GL_ARB_robustness

32 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x021 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x022 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x096 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x097 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x098 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x099 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x09a 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x09b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x09c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x09d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x09e 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x09f 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0a0 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0a1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x0a2 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0a3 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x0a4 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0a5 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0a6 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0a7 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0a8 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0a9 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0aa 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0ab 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0ac 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0ad 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0ae 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0af 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0b0 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x0b1 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0b2 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x065 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  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x066  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x067  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x068  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x069  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x06a  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x06b  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x06c 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x06d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x06e 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x06f 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x070 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x071 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x072 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x073 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x074 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x075 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x076 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x077 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x078  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x079  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x07a 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x07b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x07c 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x07d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
0x07e  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x07f  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x080  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
0x081  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x082  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x083  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x084 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x085 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x086 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x087 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x088 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x089 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x08a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x08b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x08c 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x08d 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x08e 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x08f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x090  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x091  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
0x092 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x093 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 Slow
0x094 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x095 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow


# lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:16.3 Serial controller: Intel Corporation 5 Series/3400 Series Chipset KT Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 05)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 05)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 05)
00:1c.2 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 3 (rev 05)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 05)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a5)
00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 05)
00:1f.2 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 05)
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35)
03:00.0 CardBus bridge: Ricoh Co Ltd CardBus bridge (rev 02)
03:00.1 SD Host controller: Ricoh Co Ltd MMC/SD Host Controller (rev 03)
03:00.4 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 PCIe IEEE 1394 Controller (rev 03)
3f:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
3f:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
3f:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
3f:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02)
3f:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
3f:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
Comment 8 Martin Flöser 2013-12-29 16:57:20 UTC
> Ok, but it should be possible to determine the OpenGL version of the system
> and only make API calls compatible with that version. I don’t think users
> should have the option to choose an OpenGL version that is not even
> supported by their system.
Welcome to the world of OpenGL - you need to use OpenGL in order to get the 
version. The fault here is clearly in openSUSE though and we cannot and should 
not try to workaround it. Any up to date version will not crash, so why fix. If 
you want to have that fixed, please contact your distribution.
Comment 9 Thomas Lübking 2013-12-29 17:37:21 UTC
Had GLX_ARB_create_context, GLX_ARB_create_context_profile in Client.
Direct rendering is enabled, so there's hardly a legal way to end up in __indirect_glGetString

This will indeed be a funky freaky version of bug #327310

About the ability to select some OpenGL version - any detection in the config dialog is as Martin pointed out unfortunately prone to crash the config dialog - so not an option at all.

The problematic call *is* compatible with the driver and supported OGL variant.
The GL server is supposed to know that a context with the requested attributes is not supported, so not create one and return a null pointer to allow the GL client to go on - that's what the extension exists for in the first place.

For this very specific case one could indeed omit the attempt to create a core profile context, because
a) the known GL version can predict what the server is supposed to do with the call
b) we now know that "supposed" is not equal to "will" in this case
but that's nowhere near a general solution, but just hacking around a broken driver.

And just for the record, I cannot recall a longer time where there was not the "driver bug of the season".

*** This bug has been marked as a duplicate of bug 327310 ***