[Mesa-dev] [PATCH 17/20] radeon/uvd: add YUYV format support for target buffer
leo.liu at amd.com
Thu Aug 17 14:28:09 UTC 2017
On 08/17/2017 06:35 AM, Christian König wrote:
> Am 17.08.2017 um 12:27 schrieb Leo Liu:
>> On 08/17/2017 05:15 AM, Christian König wrote:
>>> Am 16.08.2017 um 19:53 schrieb Leo Liu:
>>>> YUYV is a packed YUV format, and there is no chorma plane
>>>> v2: add stream type check for YUYV pitch setup
>>>> Signed-off-by: Leo Liu <leo.liu at amd.com>
>>>> src/gallium/drivers/radeon/radeon_uvd.c | 8 ++++++--
>>>> src/gallium/drivers/radeonsi/si_uvd.c | 2 +-
>>>> 2 files changed, 7 insertions(+), 3 deletions(-)
>>>> diff --git a/src/gallium/drivers/radeon/radeon_uvd.c
>>>> index b6106c6e1f..e809e24405 100644
>>>> --- a/src/gallium/drivers/radeon/radeon_uvd.c
>>>> +++ b/src/gallium/drivers/radeon/radeon_uvd.c
>>>> @@ -1547,6 +1547,8 @@ void ruvd_set_dt_surfaces(struct ruvd_msg
>>>> *msg, struct radeon_surf *luma,
>>>> case RUVD_SURFACE_TYPE_LEGACY:
>>>> msg->body.decode.dt_pitch = luma->u.legacy.level.nblk_x;
>>>> + if (msg->body.decode.stream_type == RUVD_CODEC_MJPEG &&
>>>> + msg->body.decode.dt_pitch *= 2;
>>> That still doesn't look correct to me. Please try the following
>>> msg->body.decode.dt_pitch = luma->u.legacy.level.nblk_x * luma->bpe;
>>> Does that work as well?
>> I think it works. I tried that in the very beginning, but I have to
>> double check when back to the office later.
Unfortunately, it doesn't work. NV12 luma->bpe is 1, YUYV bpe is 4.
In order to get it work. It has to be luma->u.legacy.level.nblk_x *
(luma->bpe / 2). i.e originally "msg->body.decode.dt_pitch *= 2".
I am going to check with firmware guys. In the meantime, any ideas?
>> There was a patch back to March "radeon/UVD: fix the decoding target
>> pitch calculation" removed "bpe" for normal NV12 format.
> Crap, yeah. That was for 10bit handling.
>> so I think for this YUYV, we still need condition, and code will be like
>> if (msg->body.decode.stream_type == RUVD_CODEC_MJPEG && !chroma)
>> msg->body.decode.dt_pitch = luma->u.legacy.level.nblk_x *
> Looks like the firmware guys interpret the dt_pitch field differently
> depending on the codec.
> Feel free to add my rb on this version, but if you have time please
> double check with the firmware team what they really expect.
>> Other than that, could you review the patch 1 v2 ? that's the only
>> one left not reviewed in the series after this "pitch" one.
More information about the mesa-dev