Only relevant for indirect contexts, so let's get that code out of the common path.
Signed-off-by: Adam Jackson <a...@redhat.com> --- src/glx/glxcurrent.c | 12 ------------ src/glx/indirect_glx.c | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c index fd04929b89..9f8bf7cee1 100644 --- a/src/glx/glxcurrent.c +++ b/src/glx/glxcurrent.c @@ -238,18 +238,6 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, __glXUnlock(); - /* The indirect vertex array state must to be initialised after we - * have setup the context, as it needs to query server attributes. - */ - if (gc && !gc->isDirect) { - __GLXattribute *state = gc->client_state_private; - if (state && state->array_state == NULL) { - glGetString(GL_EXTENSIONS); - glGetString(GL_VERSION); - __glXInitVertexArrayState(gc); - } - } - return GL_TRUE; } diff --git a/src/glx/indirect_glx.c b/src/glx/indirect_glx.c index cfae12f6c0..b552b5768a 100644 --- a/src/glx/indirect_glx.c +++ b/src/glx/indirect_glx.c @@ -148,9 +148,21 @@ indirect_bind_context(struct glx_context *gc, struct glx_context *old, sent = SendMakeCurrentRequest(dpy, gc->xid, tag, draw, read, &gc->currentContextTag); - if (!IndirectAPI) - IndirectAPI = __glXNewIndirectAPI(); - _glapi_set_dispatch(IndirectAPI); + if (sent) { + if (!IndirectAPI) + IndirectAPI = __glXNewIndirectAPI(); + _glapi_set_dispatch(IndirectAPI); + + /* The indirect vertex array state must to be initialised after we + * have setup the context, as it needs to query server attributes. + */ + __GLXattribute *state = gc->client_state_private; + if (state && state->array_state == NULL) { + glGetString(GL_EXTENSIONS); + glGetString(GL_VERSION); + __glXInitVertexArrayState(gc); + } + } return !sent; } -- 2.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev