diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 189b5d913..1e2061d89 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -284,6 +284,15 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId, */ isDirect = GL_FALSE; } + + /* Core GLX doesn't explicitly require this, but GLX_ARB_create_context + * does (see glx/createcontext.c), and it's assumed by our + * implementation anyway, so let's be consistent about it. + */ + if (shareglxc->pGlxScreen != pGlxScreen) { + client->errorValue = shareglxc->pGlxScreen->pScreen->myNum; + return BadMatch; + } } /*