Ian Romanick <i...@freedesktop.org> writes:

> On 02/19/2013 04:27 PM, Carl Worth wrote:
>> This fixes a bug introduced in commit 258453716f001eab1288d99765213 and
>> triggered whenever "rb" is NULL.
>>
>> Fixes bug #59445:
>>
>>      [SNB/IVB/HSW Bisected]Oglc draw-buffers2(advanced.blending.none) 
>> segfault
>>      https://bugs.freedesktop.org/show_bug.cgi?id=59445
>> ---
>>
>> I don't know under what conditions "rb" might be NULL, but it's clear that
>> it's possible and expected as there is earlier code in this function that
>> checks it, (and sets rb_type specifically in that case). So if someone could
>> help me write a more descriptive commit message, that would be great.
>>
>> Also, I notice that similar code in brw_cc.c uses a different condition here:
>>
>>         if (ctx->DrawBuffer->Visual.alphaBits == 0) {
>
> I don't know what cases could cause rb to be NULL either.  There is code 
> earlier that checks this case (near the top of the function), so it 
> doesn't seem to be an error condition.  Could this be for the window? 
> Ken or Eric should know for sure.

rb == NULL comes from the nr_draw_buffers == 0 workaround above.

> Either way, ctx->DrawBuffer->Visual contains either the window 
> configuration or a mirror of the state for the current FBO.  It should 
> always be safe to use that.  Using ctx->DrawBuffer->Visual.alphaBits 
> will ensure that you get the correct answer even when rb is NULL.

ctx->DrawBuffer->Visual doesn't know about your alpha bits when you have
MRT some with alpha and some without.  I prefer the first patch, which
would get my:

Reviewed-by: Eric Anholt <e...@anholt.net>

Attachment: pgpwFm4bikWvs.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to