[Mesa-dev] [PATCH] nir/lower_tex: Fix the channel ordering during conversion of AYUV images
Tapani Pälli
tapani.palli at intel.com
Tue Jan 15 08:03:54 UTC 2019
On 1/15/19 9:45 AM, Tapani Pälli wrote:
>
>
> On 1/15/19 4:34 AM, Lionel Landwerlin wrote:
>> When writing this I used this page to figure the bytes' ordering :
>> https://docs.microsoft.com/en-us/windows/desktop/medfound/recommended-8-bit-yuv-formats-for-video-rendering#ayuv
>>
>> Of course endianess confuses everything :(
>>
>> sunxi seems to support AYUV & VUYA :
>> https://github.com/allwinner-zh/linux-3.4-sunxi/blob/master/include/video/sunxi_display2.h#L40
>>
>>
>> Finally this patch (and its gstreamer comments) confuses me even more
>> : https://patchwork.freedesktop.org/patch/255529/
>>
>> I really don't know what's right or wrong here...
>
> IMO order 1230 seems wrong to me. Vivek, was the order chosen just
> because vivid driver outputs that or is it based on anything else, like
> some specification or other information?
CC also Stan who is enabling the format for SNA
>
>> -
>> Lionel
>>
>> On 15/01/2019 00:49, Vivek Kasireddy wrote:
>>> From: "Kasireddy, Vivek" <vivek.kasireddy at intel.com>
>>>
>>> The channel ordering should be 1230 instead of 2103.
>>>
>>> While displaying the packed YUV buffers generated by the Vivid (Virtual
>>> Video) driver on Weston, it was observed that AYUV images were not
>>> displayed correctly. Changing the ordering to 1230 makes AYUV buffers
>>> display as expected.
>>>
>>> CC: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
>>> CC: Tapani Palli <tapani.palli at intel.com>
>>> Signed-off-by: Vivek Kasireddy <vivek.kasireddy at intel.com>
>>> ---
>>> src/compiler/nir/nir_lower_tex.c | 6 +++---
>>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/compiler/nir/nir_lower_tex.c
>>> b/src/compiler/nir/nir_lower_tex.c
>>> index a618b86b34c..7058c54f17c 100644
>>> --- a/src/compiler/nir/nir_lower_tex.c
>>> +++ b/src/compiler/nir/nir_lower_tex.c
>>> @@ -434,10 +434,10 @@ lower_ayuv_external(nir_builder *b,
>>> nir_tex_instr *tex)
>>> nir_ssa_def *ayuv = sample_plane(b, tex, 0);
>>> convert_yuv_to_rgb(b, tex,
>>> - nir_channel(b, ayuv, 2),
>>> nir_channel(b, ayuv, 1),
>>> - nir_channel(b, ayuv, 0),
>>> - nir_channel(b, ayuv, 3));
>>> + nir_channel(b, ayuv, 2),
>>> + nir_channel(b, ayuv, 3),
>>> + nir_channel(b, ayuv, 0));
>>> }
>>> /*
>>
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list