[PATCH 01/11] glx: Fix mishandling of shared contexts

Ian Romanick idr at freedesktop.org
Wed Dec 28 14:23:39 PST 2011


On 12/24/2011 03:35 PM, Eric Anholt wrote:
> On Fri, 23 Dec 2011 15:18:19 -0800, "Ian Romanick"<idr at freedesktop.org>  wrote:
>> From: Ian Romanick<ian.d.romanick at intel.com>
>>
>> Signed-off-by: Ian Romanick<ian.d.romanick at intel.com>
>> ---
>>   glx/glxcmds.c |   22 +++++++++++-----------
>>   1 files changed, 11 insertions(+), 11 deletions(-)
>>
>> diff --git a/glx/glxcmds.c b/glx/glxcmds.c
>> index d5b764f..c5de60d 100644
>
>> +	/* Page 26 (page 32 of the PDF) of the GLX 1.4 spec says:
>> +	 *
>> +	 *     "The server context state for all sharing contexts must exist
>> +	 *     in a single address space or a BadMatch error is generated."
>> +	 *
>> +	 * If the share context is indirect, force the new context to also be
>> +	 * indirect.  If the shard context is direct but the new context
>
> "shared".
>
> Other than that, I'm assuming that checking for address space matches
> between two direct contexts is handled by the client side (I think I
> recall code to that effect, and seems like the only possible place),

Indirectly.  Assuming an application is using libGL (and not rolling its 
own GLX protocol), the only way to get a context from another process is 
via glXImportContextEXT.  This function is supposed to fail for direct 
rendering contexts (with GLXBadContext), and our implementation does.

We have some other bugs in this general area on the client, but I should 
have patches for those in the new year.

> which would make this:
>
> Reviewed-by: Eric Anholt<eric at anholt.net>


More information about the xorg-devel mailing list