diff --git a/src/amd/common/ac_vcn_enc.h b/src/amd/common/ac_vcn_enc.h index 633cc58b623..48c7a93840c 100644 --- a/src/amd/common/ac_vcn_enc.h +++ b/src/amd/common/ac_vcn_enc.h @@ -660,6 +660,7 @@ typedef struct rvcn_enc_cmd_s { uint32_t rc_session_init; uint32_t rc_layer_init; uint32_t rc_per_pic; + uint32_t rc_per_pic_ex; uint32_t quality_params; uint32_t slice_header; uint32_t enc_params; diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c index 8e2d36ff74f..fc93732d19a 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c @@ -1249,7 +1249,7 @@ static void radeon_enc_rc_per_pic(struct radeon_encoder *enc) static void radeon_enc_rc_per_pic_ex(struct radeon_encoder *enc) { - RADEON_ENC_BEGIN(enc->cmd.rc_per_pic); + RADEON_ENC_BEGIN(enc->cmd.rc_per_pic_ex); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_i); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_p); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_b); @@ -1553,10 +1553,8 @@ void radeon_enc_1_2_init(struct radeon_encoder *enc) enc->cmd.layer_select = RENCODE_IB_PARAM_LAYER_SELECT; enc->cmd.rc_session_init = RENCODE_IB_PARAM_RATE_CONTROL_SESSION_INIT; enc->cmd.rc_layer_init = RENCODE_IB_PARAM_RATE_CONTROL_LAYER_INIT; - if (enc->enc_pic.use_rc_per_pic_ex == true) - enc->cmd.rc_per_pic = RENCODE_IB_PARAM_RATE_CONTROL_PER_PIC_EX; - else - enc->cmd.rc_per_pic = RENCODE_IB_PARAM_RATE_CONTROL_PER_PICTURE; + enc->cmd.rc_per_pic = RENCODE_IB_PARAM_RATE_CONTROL_PER_PICTURE; + enc->cmd.rc_per_pic_ex = RENCODE_IB_PARAM_RATE_CONTROL_PER_PIC_EX; enc->cmd.quality_params = RENCODE_IB_PARAM_QUALITY_PARAMS; enc->cmd.nalu = RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU; enc->cmd.slice_header = RENCODE_IB_PARAM_SLICE_HEADER; diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc_3_0.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc_3_0.c index 2983b622049..77782572232 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_3_0.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_3_0.c @@ -95,7 +95,7 @@ static void radeon_enc_quality_params(struct radeon_encoder *enc) static void radeon_enc_rc_per_pic_ex(struct radeon_encoder *enc) { - RADEON_ENC_BEGIN(enc->cmd.rc_per_pic); + RADEON_ENC_BEGIN(enc->cmd.rc_per_pic_ex); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_i); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_p); RADEON_ENC_CS(enc->enc_pic.rc_per_pic.qp_b); diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c index e96ec61afa6..a7f23345fbe 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c @@ -1078,7 +1078,6 @@ void radeon_enc_5_0_init(struct radeon_encoder *enc) enc->cmd.enc_params_av1 = RENCODE_IB_PARAM_AV1_ENCODE_PARAMS; } - enc->cmd.rc_per_pic = RENCODE_IB_PARAM_RATE_CONTROL_PER_PICTURE; enc->cmd.metadata = RENCODE_IB_PARAM_METADATA_BUFFER; enc->cmd.ctx_override = RENCODE_IB_PARAM_ENCODE_CONTEXT_BUFFER_OVERRIDE;