summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Lima <elima@igalia.com>2024-04-25 14:32:27 +0200
committerEduardo Lima <elima@igalia.com>2024-04-25 14:32:27 +0200
commit5deba2324f53a967aa933f3f040f7b6bdef586c5 (patch)
tree4350ca0c73e3041ea641f93ad8bf54eb0315435c
parentdf6cfb4dd0460430a49a4e9f6b7b5654c0819d88 (diff)
radv: Set video encode capabilities's maxBitrate for H.264 and H.265elima/radv-video-encode-caps-maxbitrate
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
-rw-r--r--src/amd/vulkan/radv_video.c13
1 files changed, 12 insertions, 1 deletions
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;