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

Marek Olšák maraeo at gmail.com
Tue Feb 23 16:47:51 UTC 2016


On Tue, Feb 23, 2016 at 5:17 PM, Oded Gabbay <oded.gabbay at gmail.com> wrote:
> 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

Alright.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek


More information about the mesa-dev mailing list