[Mesa-dev] [PATCH 3/6] glx: Move vertex array protocol state into the indirect backend
Adam Jackson
ajax at redhat.com
Tue Nov 14 20:13:03 UTC 2017
Only relevant for indirect contexts, so let's get that code out of the
common path.
Signed-off-by: Adam Jackson <ajax at 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
More information about the mesa-dev
mailing list