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 3bbfe67c253..b48a95b2f52 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_1_2.c @@ -1229,6 +1229,9 @@ static void encode(struct radeon_encoder *enc) enc->total_task_size = 0; enc->task_info(enc, enc->need_feedback); + if (enc->need_spec_misc) + enc->spec_misc(enc); + if (enc->need_rate_control || enc->need_rc_per_pic) { i = 0; do { @@ -1249,10 +1252,15 @@ static void encode(struct radeon_encoder *enc) enc->encode_headers(enc); enc->ctx(enc); + enc->ctx_override(enc); enc->bitstream(enc); enc->feedback(enc); + enc->metadata(enc); + enc->encode_statistics(enc); enc->intra_refresh(enc); enc->qp_map(enc); + enc->input_format(enc); + enc->output_format(enc); enc->op_preset(enc); enc->op_enc(enc); @@ -1302,6 +1310,10 @@ void radeon_enc_1_2_init(struct radeon_encoder *enc) enc->encode_statistics = radeon_enc_encode_statistics; enc->qp_map = radeon_enc_qp_map; enc->encode_latency = radeon_enc_encode_latency; + enc->input_format = radeon_enc_dummy; + enc->output_format = radeon_enc_dummy; + enc->ctx_override = radeon_enc_dummy; + enc->metadata = radeon_enc_dummy; if (u_reduce_video_profile(enc->base.profile) == PIPE_VIDEO_FORMAT_MPEG4_AVC) { enc->slice_control = radeon_enc_slice_control; 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 9cfd3b1d094..b9f7dc802bf 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_2_0.c @@ -141,67 +141,17 @@ static void radeon_enc_spec_misc_hevc(struct radeon_encoder *enc) RADEON_ENC_END(); } -static void encode(struct radeon_encoder *enc) -{ - unsigned i; - - enc->before_encode(enc); - enc->session_info(enc); - enc->total_task_size = 0; - enc->task_info(enc, enc->need_feedback); - - if (enc->need_spec_misc) - enc->spec_misc(enc); - - if (enc->need_rate_control || enc->need_rc_per_pic) { - i = 0; - do { - enc->enc_pic.layer_sel.temporal_layer_index = i; - if (enc->need_rate_control) { - enc->layer_select(enc); - enc->rc_layer_init(enc); - } - if (enc->need_rc_per_pic) { - enc->layer_select(enc); - enc->rc_per_pic(enc); - } - } while (++i < enc->enc_pic.num_temporal_layers); - } - - enc->enc_pic.layer_sel.temporal_layer_index = enc->enc_pic.temporal_id; - enc->layer_select(enc); - - enc->encode_headers(enc); - enc->ctx(enc); - enc->ctx_override(enc); - enc->bitstream(enc); - enc->feedback(enc); - enc->metadata(enc); - enc->encode_statistics(enc); - enc->intra_refresh(enc); - enc->qp_map(enc); - enc->input_format(enc); - enc->output_format(enc); - - enc->op_preset(enc); - enc->op_enc(enc); - *enc->p_task_size = (enc->total_task_size); -} - void radeon_enc_2_0_init(struct radeon_encoder *enc) { struct si_screen *sscreen = (struct si_screen *)enc->screen; uint32_t minor_version; radeon_enc_1_2_init(enc); - enc->encode = encode; enc->input_format = radeon_enc_input_format; enc->output_format = radeon_enc_output_format; enc->ctx = radeon_enc_ctx; enc->op_preset = radeon_enc_op_preset; enc->quality_params = radeon_enc_quality_params; - enc->ctx_override = radeon_enc_dummy; - enc->metadata = radeon_enc_dummy; if (u_reduce_video_profile(enc->base.profile) == PIPE_VIDEO_FORMAT_HEVC) { enc->deblocking_filter = radeon_enc_loop_filter_hevc;