On 11/14/2017 12:13 PM, Adam Jackson wrote: > 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); > + } > + }
This is where this code used to be, but commit d57c85c1 moved it. Does this not re-regress things? I guess wrapping it in 'if (sent)' seems like it ought to be enough to prevent the original problem. > > return !sent; > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev