From 2b14506bc34f3220a1867d989f9111d1be3a2780 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Wed, 3 Sep 2025 09:37:26 +0200 Subject: [PATCH] radv/video: Set rate control to default on reset If we never get rate control info, we would treat it as rate control disabled and use QP value from slice info which is always 0 for default rate control. Cc: mesa-stable Reviewed-by: Autumn Ashton Part-of: (cherry picked from commit a03e055cd344942024b18ef09879c1ece5b785c6) --- .pick_status.json | 2 +- src/amd/vulkan/radv_video_enc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 3763d6db3f8..f26e0ccafc4 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -7844,7 +7844,7 @@ "description": "radv/video: Set rate control to default on reset", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_video_enc.c b/src/amd/vulkan/radv_video_enc.c index 356ee98ee31..9dc3b6489da 100644 --- a/src/amd/vulkan/radv_video_enc.c +++ b/src/amd/vulkan/radv_video_enc.c @@ -2756,6 +2756,7 @@ static void set_rate_control_defaults(struct radv_video_session *vid) { uint32_t frame_rate_den = 1, frame_rate_num = 30; + vid->enc_rate_control_default = true; vid->enc_rate_control_method = RENCODE_RATE_CONTROL_METHOD_NONE; vid->enc_vbv_buffer_level = 64; vid->rc_layer_control.num_temporal_layers = 1; @@ -2836,10 +2837,9 @@ radv_video_enc_control_video_coding(struct radv_cmd_buffer *cmd_buffer, const Vk vid->enc_rate_control_default = false; - if (rate_control->rateControlMode == VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR) { - vid->enc_rate_control_default = true; + if (rate_control->rateControlMode == VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR) set_rate_control_defaults(vid); - } else if (rate_control->rateControlMode == VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR) + else if (rate_control->rateControlMode == VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR) rate_control_method = RENCODE_RATE_CONTROL_METHOD_CBR; else if (rate_control->rateControlMode == VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR) rate_control_method = RENCODE_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR;