From 740daef3606c189cad135be0b0d84fd0c3a134b4 Mon Sep 17 00:00:00 2001 From: Yinjie Yao Date: Thu, 24 Jul 2025 17:09:21 -0400 Subject: [PATCH] radeonsi/vcn: Enable preencode on VCN5.0 two_pass_search_center_map_mode will need to be disabled on VCN5.0 due to hardware limitations. Signed-off-by: Yinjie Yao Reviewed-by: Boyuan Zhang Part-of: --- src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index 2fb433efc56..2cb708632ad 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -38,13 +38,6 @@ static void radeon_vcn_enc_quality_modes(struct radeon_encoder *enc, if (enc->enc_pic.rc_session_init.rate_control_method == RENCODE_RATE_CONTROL_METHOD_QUALITY_VBR) p->pre_encode_mode = RENCODE_PREENCODE_MODE_4X; - /* Disabling 2pass encoding for VCN 5.0 - * This is a temporary limitation only for VCN 5.0 due to HW, - * once verified in future VCN 5.X versions, it will be enabled again. - */ - if (sscreen->info.vcn_ip_version >= VCN_5_0_0) - p->pre_encode_mode = RENCODE_PREENCODE_MODE_NONE; - p->vbaq_mode = in->vbaq_mode ? RENCODE_VBAQ_AUTO : RENCODE_VBAQ_NONE; if (enc->enc_pic.rc_session_init.rate_control_method == RENCODE_RATE_CONTROL_METHOD_NONE) @@ -53,9 +46,15 @@ static void radeon_vcn_enc_quality_modes(struct radeon_encoder *enc, enc->enc_pic.quality_params.vbaq_mode = p->vbaq_mode; enc->enc_pic.quality_params.scene_change_sensitivity = 0; enc->enc_pic.quality_params.scene_change_min_idr_interval = 0; + + /* By default, two_pass_search_center_map_mode is enabled when + * pre_encode_mode is enabled, however this doesn't apply to + * VCN 5.0.0, where only pre_encode_mode is enabled. + */ enc->enc_pic.quality_params.two_pass_search_center_map_mode = - (enc->enc_pic.quality_modes.pre_encode_mode && - !enc->enc_pic.spec_misc.b_picture_enabled) ? 1 : 0; + (sscreen->info.vcn_ip_version < VCN_5_0_0 && + enc->enc_pic.quality_modes.pre_encode_mode && + !enc->enc_pic.spec_misc.b_picture_enabled) ? 1 : 0; enc->enc_pic.quality_params.vbaq_strength = 0; }