From 3bd0cdbd6a2818ffd4be48bb0f6adcaf3d0374d6 Mon Sep 17 00:00:00 2001 From: Benjamin Cheng Date: Fri, 28 Nov 2025 13:46:44 -0500 Subject: [PATCH] radv/video: Fix force_integer_mv=1 on intra frame According to AV1 spec, force_integer_mv=1 on intra frames. However, VCN FW does not expect integer mv to be set unless screen content tools are enabled. This also aligns the code to the radeonsi logic. (cherry-picked from commit fa1fd2413f5a8a24959664e284372135b3deac83) Part-of: --- src/amd/vulkan/radv_video_enc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/amd/vulkan/radv_video_enc.c b/src/amd/vulkan/radv_video_enc.c index 0e8d2f415b2..a51166b3d93 100644 --- a/src/amd/vulkan/radv_video_enc.c +++ b/src/amd/vulkan/radv_video_enc.c @@ -681,12 +681,11 @@ radv_enc_spec_misc_av1(struct radv_cmd_buffer *cmd_buffer, const struct VkVideoE const StdVideoEncodeAV1PictureInfo *pic = av1_picture_info->pStdPictureInfo; const StdVideoAV1SequenceHeader *seq = ¶ms->av1_enc.seq_hdr.base; - uint32_t precision = 0; - - if (!pic->flags.allow_high_precision_mv) - precision = RENCODE_AV1_MV_PRECISION_DISALLOW_HIGH_PRECISION; - if (pic->flags.force_integer_mv) + uint32_t precision = RENCODE_AV1_MV_PRECISION_DISALLOW_HIGH_PRECISION; + if (pic->flags.allow_screen_content_tools && pic->flags.force_integer_mv) precision = RENCODE_AV1_MV_PRECISION_FORCE_INTEGER_MV; + else if (pic->flags.allow_high_precision_mv) + precision = RENCODE_AV1_MV_PRECISION_ALLOW_HIGH_PRECISION; vid->skip_mode_allowed = seq->flags.enable_order_hint &&