From 7ee94ef063d5747ad8c334e87ef68ffa85d82b71 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 4 Feb 2025 18:51:05 +0100 Subject: [PATCH] radeonsi/vcn: Set correct chroma format for H264 decode Fixes decoding monochrome (chroma_format_idc = 0). Cc: mesa-stable Reviewed-by: Ruijing Dong Part-of: (cherry picked from commit 110d406302122df84fbeb82dab015591dc1b985e) --- .pick_status.json | 2 +- src/gallium/drivers/radeonsi/radeon_vcn_dec.c | 21 +------------------ 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 599d9c0a58d..7e85f1aeb32 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -184,7 +184,7 @@ "description": "radeonsi/vcn: Set correct chroma format for H264 decode", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c index 86939ffb40a..a4300ff2501 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c @@ -107,32 +107,13 @@ static rvcn_dec_message_avc_t get_h264_msg(struct radeon_decoder *dec, result.sps_info_flags |= ((dec->dpb_type == DPB_DYNAMIC_TIER_2) ? 0 : 1) << RDECODE_SPS_INFO_H264_EXTENSION_SUPPORT_FLAG_SHIFT; + result.chroma_format = pic->pps->sps->chroma_format_idc; result.bit_depth_luma_minus8 = pic->pps->sps->bit_depth_luma_minus8; result.bit_depth_chroma_minus8 = pic->pps->sps->bit_depth_chroma_minus8; result.log2_max_frame_num_minus4 = pic->pps->sps->log2_max_frame_num_minus4; result.pic_order_cnt_type = pic->pps->sps->pic_order_cnt_type; result.log2_max_pic_order_cnt_lsb_minus4 = pic->pps->sps->log2_max_pic_order_cnt_lsb_minus4; - switch (dec->base.chroma_format) { - case PIPE_VIDEO_CHROMA_FORMAT_NONE: - break; - case PIPE_VIDEO_CHROMA_FORMAT_400: - result.chroma_format = 0; - break; - case PIPE_VIDEO_CHROMA_FORMAT_420: - result.chroma_format = 1; - break; - case PIPE_VIDEO_CHROMA_FORMAT_422: - result.chroma_format = 2; - break; - 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; result.pps_info_flags |= pic->pps->transform_8x8_mode_flag << 0; result.pps_info_flags |= pic->pps->redundant_pic_cnt_present_flag << 1;