diff --git a/.pick_status.json b/.pick_status.json index 0e08af2b2cd..4e153da60fe 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3254,7 +3254,7 @@ "description": "radeonsi/vcn: Use temporal_layer_index to select temporal layer", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "8d44a115080645c210e055fa410fb18accf510aa", "notes": null diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index 9d0aa41e342..44076a56907 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -238,7 +238,6 @@ static void radeon_vcn_enc_h264_get_rc_param(struct radeon_encoder *enc, uint32_t frame_rate_den, frame_rate_num; enc->enc_pic.num_temporal_layers = pic->seq.num_temporal_layers ? pic->seq.num_temporal_layers : 1; - enc->enc_pic.temporal_id = 0; for (int i = 0; i < enc->enc_pic.num_temporal_layers; i++) { enc->enc_pic.rc_layer_init[i].target_bit_rate = pic->rate_ctrl[i].target_bitrate; enc->enc_pic.rc_layer_init[i].peak_bit_rate = pic->rate_ctrl[i].peak_bitrate; 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 cb1b2957c49..0e9bfb670c0 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c @@ -114,8 +114,6 @@ static void radeon_enc_layer_control(struct radeon_encoder *enc) static void radeon_enc_layer_select(struct radeon_encoder *enc) { - enc->enc_pic.layer_sel.temporal_layer_index = enc->enc_pic.temporal_id; - RADEON_ENC_BEGIN(enc->cmd.layer_select); RADEON_ENC_CS(enc->enc_pic.layer_sel.temporal_layer_index); RADEON_ENC_END(); @@ -183,7 +181,7 @@ static void radeon_enc_rc_session_init(struct radeon_encoder *enc) static void radeon_enc_rc_layer_init(struct radeon_encoder *enc) { - unsigned int i = enc->enc_pic.temporal_id; + unsigned int i = enc->enc_pic.layer_sel.temporal_layer_index; RADEON_ENC_BEGIN(enc->cmd.rc_layer_init); RADEON_ENC_CS(enc->enc_pic.rc_layer_init[i].target_bit_rate); RADEON_ENC_CS(enc->enc_pic.rc_layer_init[i].peak_bit_rate); @@ -1350,7 +1348,7 @@ static void begin(struct radeon_encoder *enc) i = 0; do { - enc->enc_pic.temporal_id = i; + enc->enc_pic.layer_sel.temporal_layer_index = i; enc->layer_select(enc); enc->rc_layer_init(enc); enc->layer_select(enc); @@ -1402,7 +1400,7 @@ static void encode(struct radeon_encoder *enc) if (enc->need_rate_control) { i = 0; do { - enc->enc_pic.temporal_id = i; + enc->enc_pic.layer_sel.temporal_layer_index = i; enc->layer_select(enc); enc->rc_layer_init(enc); } while (++i < enc->enc_pic.num_temporal_layers); diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c index aefbd3192e8..a6bfd70b97c 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c @@ -515,7 +515,7 @@ static void encode(struct radeon_encoder *enc) if (enc->need_rate_control) { i = 0; do { - enc->enc_pic.temporal_id = i; + enc->enc_pic.layer_sel.temporal_layer_index = i; enc->layer_select(enc); enc->rc_layer_init(enc); } while (++i < enc->enc_pic.num_temporal_layers);