[Mesa-dev] [PATCH 1/3] gallium/radeon: remove separate BE path in r600_translate_colorswap

Oded Gabbay oded.gabbay at gmail.com
Fri Feb 26 11:38:22 UTC 2016


On Fri, Feb 26, 2016 at 12:51 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Thu, Feb 25, 2016 at 10:09 PM, Oded Gabbay <oded.gabbay at gmail.com> wrote:
>> After further testing, it appears there is no need for
>> separate BE path in r600_translate_colorswap()
>>
>> The only fix remaining is the change of the last if statement, in the 4
>> channels case. Originally, it contained an invalid swizzle configuration
>> that never got hit, in LE or BE. So the fix is relevant for both systems.
>>
>> This patch adds an additional 120 available visuals for LE and BE,
>> as seen in glxinfo
>
> Really? I don't see how this patch can add anything.
>
> Marek

Look harder :)
What I meant to say is that the patch I sent a couple of days ago
fixed a certain swizzle that didn't exist anymore:
else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,Y))

If you look at util/u_format_table.c (autogenerated file), you will
see there isn't such as combination, when the number of channels is 4
(there are such combinations with less than 4 channels).

So existing 4-channel formats didn't get caught here, while this if
looked for a non-existing swizzle configuration.

I changed it to:
else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,W))
to capture those 4-channel formats that weren't caught

And in the patch i just sent, I removed the #ifdef
PIPE_ARCH_LITTLE_ENDIAN, so now this new check is also relevant for
x86.

Once you get additional formats recognized and supported, the number
of visuals increases. It was 360 before this patch, and 480 after it,
in x86.

Oded


More information about the mesa-dev mailing list