radeonsi/vcn: enable yuv440 jpeg decode

jpeg version 2 and higher support yuv440 decode

v2: fix ci error to handle PIPE_VIDEO_CHROMA_FORMAT_440 in switch statement

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28866>
This commit is contained in:
Sathishkumar S
2024-04-17 18:46:06 +05:30
committed by Marge Bot
parent 906f207f9c
commit 7246f25677
5 changed files with 11 additions and 0 deletions
+3
View File
@@ -397,6 +397,9 @@ static struct ruvd_h264 get_h264_msg(struct ruvd_decoder *dec, struct pipe_h264_
case PIPE_VIDEO_CHROMA_FORMAT_444:
result.chroma_format = 3;
break;
case PIPE_VIDEO_CHROMA_FORMAT_440:
result.chroma_format = 4;
break;
}
result.pps_info_flags = 0;
@@ -535,6 +535,9 @@ static struct ruvd_h264 get_h264_msg(struct ruvd_decoder *dec, struct pipe_h264_
case PIPE_VIDEO_CHROMA_FORMAT_444:
result.chroma_format = 3;
break;
case PIPE_VIDEO_CHROMA_FORMAT_440:
result.chroma_format = 4;
break;
}
result.pps_info_flags = 0;
@@ -126,6 +126,9 @@ static rvcn_dec_message_avc_t get_h264_msg(struct radeon_decoder *dec,
case PIPE_VIDEO_CHROMA_FORMAT_444:
result.chroma_format = 3;
break;
case PIPE_VIDEO_CHROMA_FORMAT_440:
result.chroma_format = 4;
break;
}
result.pps_info_flags = 0;
@@ -32,6 +32,7 @@ static struct pb_buffer_lean *radeon_jpeg_get_decode_param(struct radeon_decoder
case PIPE_FORMAT_IYUV:
case PIPE_FORMAT_YV12:
case PIPE_FORMAT_Y8_U8_V8_444_UNORM:
case PIPE_FORMAT_Y8_U8_V8_440_UNORM:
case PIPE_FORMAT_R8_G8_B8_UNORM:
chromav = (struct si_texture *)((struct vl_video_buffer *)target)->resources[2];
dec->jpg.dt_chromav_top_offset = chromav->surface.u.gfx9.surf_offset;
+1
View File
@@ -1064,6 +1064,7 @@ static bool si_vid_is_format_supported(struct pipe_screen *screen, enum pipe_for
case PIPE_FORMAT_Y8_400_UNORM:
return true;
case PIPE_FORMAT_Y8_U8_V8_444_UNORM:
case PIPE_FORMAT_Y8_U8_V8_440_UNORM:
if (sscreen->info.vcn_ip_version >= VCN_2_0_0)
return true;
else