radeonsi/vcn: Add rc_per_pic_ex encode command

This makes it a bit cleaner as VCN5 goes back to using base rc_per_pic.

Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31113>
This commit is contained in:
David Rosca
2024-09-19 11:24:49 +02:00
committed by Marge Bot
parent 3df03f100b
commit d6cf36b4d2
4 changed files with 5 additions and 7 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;