Mesa 23.0.0 crashes immediately with indirect rendering
Starting with Mesa 23.0.0, any program using GLX with LIBGL_ALWAYS_INDIRECT=1
set crashes on GLX initialzation.
The cause for this is commit b090246a, reverting it makes it work again.
The backtrace shows that the screen initialization itself requires the screens to be initialized.
#0 0x00007fffddfc33bb in glxSendClientInfo (glx_dpy=0x7fffe8177ed0, screen=0) at ../src/glx/clientinfo.c:126
#1 0x00007fffddfcc71a in indirect_create_screen (priv=0x7fffe8177ed0, screen=0) at ../src/glx/indirect_glx.c:386
#2 AllocAndFetchScreenConfigs (priv=0x7fffe8177ed0, dpy=0x7fffe8013700) at ../src/glx/glxext.c:820
#3 __glXInitialize (dpy=0x7fffe8013700) at ../src/glx/glxext.c:927
#4 0x00007fffddfc07c4 in GetGLXPrivScreenConfig (dpy=dpy@entry=0x7fffe8013700, scrn=scrn@entry=0, ppriv=ppriv@entry=0x7fffeffa06e8, ppsc=ppsc@entry=0x7fffeffa06f0) at ../src/glx/glxcmds.c:150
#5 0x00007fffddfc262f in glXQueryExtensionsString (dpy=0x7fffe8013700, screen=0) at ../src/glx/glxcmds.c:1279
#6 0x00007fffde034b2c in ?? () from /mounts/mp_0007/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
#7 0x00007fffed8ddb25 in QXcbWindow::create() () from /lib64/libQt5XcbQpa.so.5
...
glxSendClientInfo
requires glx_dpy->screens
to be set, but that's only the case after AllocAndFetchScreenConfigs
has finished.
CC @ajax @okias