diff --git a/src/gallium/drivers/r600/radeon_uvd.c b/src/gallium/drivers/r600/radeon_uvd.c index 02b89885b12..c185e7905a0 100644 --- a/src/gallium/drivers/r600/radeon_uvd.c +++ b/src/gallium/drivers/r600/radeon_uvd.c @@ -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; diff --git a/src/gallium/drivers/radeonsi/radeon_uvd.c b/src/gallium/drivers/radeonsi/radeon_uvd.c index 9fd94febba2..8e02495612d 100644 --- a/src/gallium/drivers/radeonsi/radeon_uvd.c +++ b/src/gallium/drivers/radeonsi/radeon_uvd.c @@ -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; diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c index c8a7c42b502..3b5f89f9f0f 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c @@ -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; diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec_jpeg.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec_jpeg.c index 11c24f6a198..a14b6e6de38 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec_jpeg.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec_jpeg.c @@ -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; diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 5079bbf1638..73341668d24 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -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