Commit 95dcc81c authored by Adam Jackson's avatar Adam Jackson 💣 Committed by Adam Jackson

glx: Fix previous context validation in xorgGlxMakeCurrent

vnd has already verified that the context tag is valid before this gets
called, and we only set the context tag private data to non-null for
indirect clients. Mesa happens to be buggy and doesn't send MakeCurrent
requests nearly as much as it should for direct contexts, but if you fix
that, then unbinding a direct context would fail here with
GLXBadContextTag.

Sadly Mesa will still need to carry a workaround here for broken
servers, but we should still fix the server.
parent aed62f8f
......@@ -574,10 +574,8 @@ xorgGlxMakeCurrent(ClientPtr client, GLXContextTag tag, XID drawId, XID readId,
/* Look up old context. If we have one, it must be in a usable state. */
if (tag != 0) {
prevglxc = glxServer.getContextTagPrivate(client, tag);
if (!prevglxc)
return __glXError(GLXBadContextTag);
if (prevglxc->renderMode != GL_RENDER) {
if (prevglxc && prevglxc->renderMode != GL_RENDER) {
/* Oops. Not in render mode render. */
client->errorValue = prevglxc->id;
return __glXError(GLXBadContextState);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment