diff --git a/.pick_status.json b/.pick_status.json index 8dc6b18fa92..1516e98f803 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5818,7 +5818,7 @@ "description": "glx: fix indirect initialization crash", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "b090246ad27457bc48ea8f5dbe8213f5899efa22" }, diff --git a/src/glx/glxext.c b/src/glx/glxext.c index b1b98a9fadd..9f141488b9c 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -816,10 +816,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 80e95f6754e..ffdfec48d8b 100644 --- a/src/glx/indirect_glx.c +++ b/src/glx/indirect_glx.c @@ -383,7 +383,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;