[Mesa-dev] [PATCH 05/11] [RFC] mesa: allow binding framebuffer without depth&stencil

Miklós Máté mtmkls at gmail.com
Wed Dec 16 14:30:57 PST 2015


On 12/16/2015 05:27 PM, Marek Olšák wrote:
> What is this good for?
>
> Marek
KotOR uses a series of scratch framebuffers for drawing the framebuffer 
effects. These have no depth and no stencil, so check_compatible() 
rejects them, subsequent GL calls are no-op, and the screen becomes 
garbage. I also experimented successfully with disabling the visuals 
that have no depth or no stencil in 
gallium/state_trackers/dri/dri_screen.c, but I concluded that this one 
was a smaller hack.

MM

>
> On Wed, Dec 16, 2015 at 12:05 AM, Miklós Máté <mtmkls at gmail.com> wrote:
>> this works with radeonsi, but crashes with llvmpipe
>> ---
>>   src/mesa/main/context.c | 10 +++++-----
>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
>> index 888c461..dcaf524 100644
>> --- a/src/mesa/main/context.c
>> +++ b/src/mesa/main/context.c
>> @@ -1550,10 +1550,10 @@ check_compatible(const struct gl_context *ctx,
>>         return GL_FALSE;
>>      if (ctxvis->haveAccumBuffer && !bufvis->haveAccumBuffer)
>>         return GL_FALSE;
>> -   if (ctxvis->haveDepthBuffer && !bufvis->haveDepthBuffer)
>> -      return GL_FALSE;
>> +   /*if (ctxvis->haveDepthBuffer && !bufvis->haveDepthBuffer)
>> +         return GL_FALSE;
>>      if (ctxvis->haveStencilBuffer && !bufvis->haveStencilBuffer)
>> -      return GL_FALSE;
>> +      return GL_FALSE;*/
>>      if (ctxvis->redMask && ctxvis->redMask != bufvis->redMask)
>>         return GL_FALSE;
>>      if (ctxvis->greenMask && ctxvis->greenMask != bufvis->greenMask)
>> @@ -1565,8 +1565,8 @@ check_compatible(const struct gl_context *ctx,
>>      if (ctxvis->depthBits && ctxvis->depthBits != bufvis->depthBits)
>>         return GL_FALSE;
>>   #endif
>> -   if (ctxvis->stencilBits && ctxvis->stencilBits != bufvis->stencilBits)
>> -      return GL_FALSE;
>> +   /*if (ctxvis->stencilBits && ctxvis->stencilBits != bufvis->stencilBits)
>> +      return GL_FALSE;*/
>>
>>      return GL_TRUE;
>>   }
>> --
>> 2.6.4
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list