diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c index 073c7923bdd..02a1f28d17e 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c @@ -494,6 +494,10 @@ static rvcn_dec_message_vp9_t get_vp9_msg(struct radeon_decoder *dec, << RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_TEMPORAL_UPDATE_SHIFT) & RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_TEMPORAL_UPDATE_MASK; + result.frame_header_flags |= (pic->picture_parameter.pic_fields.segmentation_update_data + << RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_DATA_SHIFT) & + RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_DATA_MASK; + result.frame_header_flags |= (pic->picture_parameter.mode_ref_delta_enabled << RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_ENABLED_SHIFT) & RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_ENABLED_MASK; @@ -502,12 +506,9 @@ static rvcn_dec_message_vp9_t get_vp9_msg(struct radeon_decoder *dec, << RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_UPDATE_SHIFT) & RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_UPDATE_MASK; - result.frame_header_flags |= - ((dec->show_frame && !pic->picture_parameter.pic_fields.error_resilient_mode && - dec->last_width == dec->base.width && dec->last_height == dec->base.height) - << RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_SHIFT) & - RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_MASK; - dec->show_frame = pic->picture_parameter.pic_fields.show_frame; + result.frame_header_flags |= (pic->picture_parameter.pic_fields.use_prev_frame_mvs + << RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_SHIFT) & + RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_MASK; result.frame_header_flags |= (1 << RDECODE_FRAME_HDR_INFO_VP9_USE_UNCOMPRESSED_HEADER_SHIFT) & RDECODE_FRAME_HDR_INFO_VP9_USE_UNCOMPRESSED_HEADER_MASK; @@ -604,9 +605,6 @@ static rvcn_dec_message_vp9_t get_vp9_msg(struct radeon_decoder *dec, memcpy(dec->ref_codec.ref_list, result.ref_frame_map, sizeof(result.ref_frame_map)); } - dec->last_width = dec->base.width; - dec->last_height = dec->base.height; - return result; } diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.h b/src/gallium/drivers/radeonsi/radeon_vcn_dec.h index 092dbb455fe..c1887f4c47c 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.h +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.h @@ -71,8 +71,6 @@ struct radeon_decoder { unsigned frame_number; unsigned db_alignment; unsigned dpb_size; - unsigned last_width; - unsigned last_height; unsigned max_width; unsigned max_height; unsigned addr_gfx_mode; @@ -104,7 +102,6 @@ struct radeon_decoder { unsigned h264_valid_ref_num[17]; unsigned h264_valid_poc_num[34]; unsigned av1_version; - bool show_frame; unsigned ref_idx; bool tmz_ctx; struct {