From 1a8a8db8c50692e345bc05572e409c10e8d44027 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 16 Oct 2025 14:37:02 +0200 Subject: [PATCH] radeonsi/vcn: Fix AV1 bidir compound encode with order_hint disabled Cc: mesa-stable Reviewed-by: Benjamin Cheng Part-of: --- src/amd/common/ac_vcn_enc.h | 1 + src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 1 + src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/amd/common/ac_vcn_enc.h b/src/amd/common/ac_vcn_enc.h index ca87589ebdb..9b7e349cff4 100644 --- a/src/amd/common/ac_vcn_enc.h +++ b/src/amd/common/ac_vcn_enc.h @@ -498,6 +498,7 @@ typedef struct rvcn_enc_hevc_encode_params_s { typedef struct rvcn_enc_av1_encode_params_s { uint32_t ref_frames[RENCODE_AV1_REFS_PER_FRAME]; uint32_t lsm_reference_frame_index[2]; + uint32_t cur_order_hint; } rvcn_enc_av1_encode_params_t; typedef struct rvcn_enc_h264_deblocking_filter_s { diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index fbf25490040..a969f066006 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -1029,6 +1029,7 @@ static void radeon_vcn_enc_av1_get_param(struct radeon_encoder *enc, enc_pic->force_integer_mv = pic->force_integer_mv; enc_pic->disable_screen_content_tools = !pic->allow_screen_content_tools; enc_pic->is_obu_frame = pic->enable_frame_obu; + enc_pic->av1_enc_params.cur_order_hint = pic->order_hint; enc_pic->enc_params.reference_picture_index = pic->ref_list0[0] == PIPE_H2645_LIST_REF_INVALID_ENTRY ? 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 0eba98fe301..f72bc9bbe2a 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c @@ -13,7 +13,7 @@ #include "radeon_vcn_enc.h" #define RENCODE_FW_INTERFACE_MAJOR_VERSION 1 -#define RENCODE_FW_INTERFACE_MINOR_VERSION 3 +#define RENCODE_FW_INTERFACE_MINOR_VERSION 10 #define RENCODE_AV1_MIN_TILE_WIDTH 256 @@ -431,6 +431,7 @@ static void radeon_enc_encode_params_av1(struct radeon_encoder *enc) RADEON_ENC_CS(enc->enc_pic.av1_enc_params.ref_frames[i]); RADEON_ENC_CS(enc->enc_pic.av1_enc_params.lsm_reference_frame_index[0]); RADEON_ENC_CS(enc->enc_pic.av1_enc_params.lsm_reference_frame_index[1]); + RADEON_ENC_CS(enc->enc_pic.av1_enc_params.cur_order_hint); RADEON_ENC_END(); } @@ -942,6 +943,7 @@ static void radeon_enc_session_init(struct radeon_encoder *enc) RADEON_ENC_CS(enc->enc_pic.session_init.pre_encode_chroma_enabled); RADEON_ENC_CS(enc->enc_pic.session_init.slice_output_enabled); RADEON_ENC_CS(enc->enc_pic.session_init.display_remote); + RADEON_ENC_CS(0); RADEON_ENC_END(); }