[Mesa-dev] [PATCH 5/8] main: rework the compatibility check of visuals in glXMakeCurrent
Miklós Máté
mtmkls at gmail.com
Wed Apr 6 22:26:01 UTC 2016
On 04/06/2016 12:52 PM, Marek Olšák wrote:
> This looks good to me. I'll commit this on April 9th if there are
> other comments.
>
> Marek
Thanks for not forgetting this.
MM
>
> On Thu, Mar 24, 2016 at 1:12 AM, Miklós Máté <mtmkls at gmail.com> wrote:
>> Now it follows the compatibility criteria listed in section 2.1 of
>> the GLX 1.4 specification.
>> This is needed for post-process effects in SW:KotOR.
>>
>> Signed-off-by: Miklós Máté <mtmkls at gmail.com>
>> ---
>> src/mesa/main/context.c | 42 ++++++++++++------------------------------
>> 1 file changed, 12 insertions(+), 30 deletions(-)
>>
>> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
>> index dbba136..6af02d1 100644
>> --- a/src/mesa/main/context.c
>> +++ b/src/mesa/main/context.c
>> @@ -1525,10 +1525,6 @@ _mesa_copy_context( const struct gl_context *src, struct gl_context *dst,
>> * Check if the given context can render into the given framebuffer
>> * by checking visual attributes.
>> *
>> - * Most of these tests could go away because Mesa is now pretty flexible
>> - * in terms of mixing rendering contexts with framebuffers. As long
>> - * as RGB vs. CI mode agree, we're probably good.
>> - *
>> * \return GL_TRUE if compatible, GL_FALSE otherwise.
>> */
>> static GLboolean
>> @@ -1541,32 +1537,18 @@ check_compatible(const struct gl_context *ctx,
>> if (buffer == _mesa_get_incomplete_framebuffer())
>> return GL_TRUE;
>>
>> -#if 0
>> - /* disabling this fixes the fgl_glxgears pbuffer demo */
>> - if (ctxvis->doubleBufferMode && !bufvis->doubleBufferMode)
>> - return GL_FALSE;
>> -#endif
>> - if (ctxvis->stereoMode && !bufvis->stereoMode)
>> - return GL_FALSE;
>> - if (ctxvis->haveAccumBuffer && !bufvis->haveAccumBuffer)
>> - return GL_FALSE;
>> - if (ctxvis->haveDepthBuffer && !bufvis->haveDepthBuffer)
>> - return GL_FALSE;
>> - if (ctxvis->haveStencilBuffer && !bufvis->haveStencilBuffer)
>> - return GL_FALSE;
>> - if (ctxvis->redMask && ctxvis->redMask != bufvis->redMask)
>> - return GL_FALSE;
>> - if (ctxvis->greenMask && ctxvis->greenMask != bufvis->greenMask)
>> - return GL_FALSE;
>> - if (ctxvis->blueMask && ctxvis->blueMask != bufvis->blueMask)
>> - return GL_FALSE;
>> -#if 0
>> - /* disabled (see bug 11161) */
>> - if (ctxvis->depthBits && ctxvis->depthBits != bufvis->depthBits)
>> - return GL_FALSE;
>> -#endif
>> - if (ctxvis->stencilBits && ctxvis->stencilBits != bufvis->stencilBits)
>> - return GL_FALSE;
>> +#define check_component(foo) \
>> + if (ctxvis->foo && bufvis->foo && \
>> + ctxvis->foo != bufvis->foo) \
>> + return GL_FALSE
>> +
>> + check_component(redMask);
>> + check_component(greenMask);
>> + check_component(blueMask);
>> + check_component(depthBits);
>> + check_component(stencilBits);
>> +
>> +#undef check_component
>>
>> return GL_TRUE;
>> }
>> --
>> 2.8.0.rc3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list