[Mesa-dev] [PATCH 1/2] softpipe: don't attempt to blend integer formats.

Dave Airlie airlied at gmail.com
Sun Jan 29 09:51:05 PST 2012


On Sun, Jan 29, 2012 at 5:26 PM, Brian Paul <brian.e.paul at gmail.com> wrote:
> On Sun, Jan 29, 2012 at 9:35 AM, Dave Airlie <airlied at gmail.com> wrote:
>> From: Dave Airlie <airlied at redhat.com>
>>
>> This blocks blending in the simple path, need to look at the more
>> complicated paths.
>>
>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>> ---
>>  src/gallium/drivers/softpipe/sp_quad_blend.c |    3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/gallium/drivers/softpipe/sp_quad_blend.c b/src/gallium/drivers/softpipe/sp_quad_blend.c
>> index d546b14..d2a5269 100644
>> --- a/src/gallium/drivers/softpipe/sp_quad_blend.c
>> +++ b/src/gallium/drivers/softpipe/sp_quad_blend.c
>> @@ -1155,7 +1155,8 @@ choose_blend_quad(struct quad_stage *qs,
>>             softpipe->blend->rt[0].colormask == 0xf &&
>>             softpipe->framebuffer.nr_cbufs == 1)
>>    {
>> -      if (!blend->rt[0].blend_enable) {
>> +      if (!blend->rt[0].blend_enable ||
>> +         util_format_is_pure_integer(softpipe->framebuffer.cbufs[0]->format)) {
>>          qs->run = single_output_color;
>>       }
>>       else if (blend->rt[0].rgb_src_factor == blend->rt[0].alpha_src_factor &&
>> --
>
> How about checking for integer color buffers in the state tracker and
> turning off blending (and alpha test) there?
>
> If you have integer buffers and try to enable blending with a hardware
> driver, does hardware typically no-opt the blend or does the driver
> have to disable blending?

Just not sure about the case where you bind multiple color buffers,
some blendable, some integer (I think that is legal).

For r600 at least we have to set a blend bypass bit on the CB setup
for int types, similiar to what I'm doing here in softpipe really.

Dave.


More information about the mesa-dev mailing list