[Mesa-dev] [PATCH] gallium/radeon: Correctly translate colorswaps for big endian

Oded Gabbay oded.gabbay at gmail.com
Tue Feb 23 16:17:53 UTC 2016


On Tue, Feb 23, 2016 at 5:45 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Tue, Feb 23, 2016 at 4:41 PM, Oded Gabbay <oded.gabbay at gmail.com> wrote:
>> The current code in r600_translate_colorswap uses the swizzle information
>> to determine which colorswap to use.
>>
>> This works for BE & LE when the nr_channels is <4, but when nr_channels==4
>> (e.g. PIPE_FORMAT_A8R8G8B8_UNORM), this method can not be used for both BE
>> and LE, because the swizzle info is the same for both of them.
>>
>> As a result, r600g doesn't support 24bit color formats, only 16bit, which
>> forces the user to choose 16bit color in X server.
>>
>> This patch fixes this bug by separating the checks for LE and BE and
>> adapting the swizzle conditions in the BE part of the checks.
>>
>> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
>> CC: "11.1" <mesa-stable at lists.freedesktop.org>
>
> Also 11.2.
Thanks for the reminder :)

>
> What about formats with 16 and 32 bits per channel?
Haven't check those yet. I started with the most common mode, which is
24 bit color (there are several BZ on this issue, although not exactly
with the hardware I'm working on). I will get to those formats later
on.

>
> What is the tested hardware?
Evergreen GPU (Cedar GL) on POWER7 Big-endian machine

    Oded

>
> Marek


More information about the mesa-dev mailing list