From 5deba2324f53a967aa933f3f040f7b6bdef586c5 Mon Sep 17 00:00:00 2001 From: Eduardo Lima Date: Thu, 25 Apr 2024 14:32:27 +0200 Subject: radv: Set video encode capabilities's maxBitrate for H.264 and H.265 The spec specifies minimum required values for maximum supported bitrates on H.264 and H.265 encode profiles. See https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-h264-requirements and https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-h265-requirements Fixes: * dEQP-VK.video.encode.h264_rc_vbr --- src/amd/vulkan/radv_video.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_video.c b/src/amd/vulkan/radv_video.c index 70cb4c3ca10..46cd6dc9c75 100644 --- a/src/amd/vulkan/radv_video.c +++ b/src/amd/vulkan/radv_video.c @@ -559,7 +559,18 @@ radv_GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice, cons VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR | VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR; enc_caps->maxRateControlLayers = RADV_ENC_MAX_RATE_LAYER; - enc_caps->maxBitrate = 0; + switch (pVideoProfile->videoCodecOperation) { + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: + /* https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-h264-requirements */ + enc_caps->maxBitrate = 64000; + break; + case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: + /* https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#encode-h265-requirements */ + enc_caps->maxBitrate = 128000; + break; + default: + enc_caps->maxBitrate = 0; + } enc_caps->maxQualityLevels = 2; enc_caps->encodeInputPictureGranularity.width = 1; enc_caps->encodeInputPictureGranularity.height = 1; -- cgit v1.2.3