glx: Set ContextTag for all contexts

Currently, xorgGlxMakeCurrent() would set the context tag only for
indirect GLX contexts.

However, several other places expect to find a context for the tag or
they would raise a GLXBadContextTag error, such as WaitGL() or WaitX().

Set the context tag for direct contexts as well, to avoid raising an
error and possibly killing the client.

Thanks to Erik Kurzinger <ekurzinger@nvidia.com> for spotting the issue.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Olivier Fourdan 2021-06-03 17:51:01 +02:00 committed by Olivier Fourdan
parent 6b47321bc6
commit c468d34c72
1 changed files with 2 additions and 1 deletions

View File

@ -664,9 +664,10 @@ xorgGlxMakeCurrent(ClientPtr client, GLXContextTag tag, XID drawId, XID readId,
}
glxc->currentClient = client;
glxServer.setContextTagPrivate(client, newContextTag, glxc);
}
glxServer.setContextTagPrivate(client, newContextTag, glxc);
if (prevglxc) {
prevglxc->currentClient = NULL;
if (!prevglxc->idExists) {