diff options
author | Eduardo Lima <elima@igalia.com> | 2024-04-25 14:32:27 +0200 |
---|---|---|
committer | Eduardo Lima <elima@igalia.com> | 2024-04-25 14:32:27 +0200 |
commit | 5deba2324f53a967aa933f3f040f7b6bdef586c5 (patch) | |
tree | 4350ca0c73e3041ea641f93ad8bf54eb0315435c | |
parent | df6cfb4dd0460430a49a4e9f6b7b5654c0819d88 (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.c | 13 |
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; |