From 1eab7e69e2ba84244f551f6901f4307a687a9504 Mon Sep 17 00:00:00 2001 From: Illia Polishchuk Date: Tue, 28 Feb 2023 16:07:59 +0200 Subject: [PATCH] glx: fix indirect initialization crash Fixes: b090246a ("glx: Only compute client GL extensions for indirect contexts") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8393 Reviewed-by: Adam Jackson Signed-off-by: Illia Polishchuk Part-of: --- src/glx/glxext.c | 9 ++++++++- src/glx/indirect_glx.c | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 755a75a..4b3496b 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -813,10 +813,17 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv) if (psc == NULL) psc = applegl_create_screen(i, priv); #else + bool indirect = false; if (psc == NULL) - psc = indirect_create_screen(i, priv); + { + psc = indirect_create_screen(i, priv); + indirect = true; + } #endif priv->screens[i] = psc; + + if(indirect) /* Load extensions required only for indirect glx */ + glxSendClientInfo(priv, i); } SyncHandle(); return GL_TRUE; diff --git a/src/glx/indirect_glx.c b/src/glx/indirect_glx.c index dc3464f..abe561f 100644 --- a/src/glx/indirect_glx.c +++ b/src/glx/indirect_glx.c @@ -365,7 +365,6 @@ indirect_create_screen(int screen, struct glx_display * priv) return NULL; glx_screen_init(psc, screen, priv); - glxSendClientInfo(priv, screen); psc->vtable = &indirect_screen_vtable; return psc; -- 2.7.4