VK_KHR_video_queue
Other Extension Metadata
Last Modified Date
2022-09-29
IP Status
No known IP claims.
Contributors
- Ahmed Abdelkhalek, AMD
- George Hao, AMD
- Jake Beju, AMD
- Piers Daniell, NVIDIA
- Srinath Kumarapuram, NVIDIA
- Tobias Hector, AMD
- Tony Zlatinski, NVIDIA
- Daniel Rakos, RasterGrid
Description
This extension provides common APIs to enable exposing queue families with support for video codec operations by introducing the following new object types and related functionalities:
- Video session objects that represent and maintain the state needed to perform video codec operations.
- Video session parameters objects that act as a container for codec specific parameters.
In addition, it also introduces query commands that allow applications to determine video coding related capabilities, and command buffer commands that enable recording video coding operations against a video session.
This extension is to be used in conjunction with other extensions that enable specific video coding operations.
New Object Types
New Commands
- vkBindVideoSessionMemoryKHR
- vkCmdBeginVideoCodingKHR
- vkCmdControlVideoCodingKHR
- vkCmdEndVideoCodingKHR
- vkCreateVideoSessionKHR
- vkCreateVideoSessionParametersKHR
- vkDestroyVideoSessionKHR
- vkDestroyVideoSessionParametersKHR
- vkGetPhysicalDeviceVideoCapabilitiesKHR
- vkGetPhysicalDeviceVideoFormatPropertiesKHR
- vkGetVideoSessionMemoryRequirementsKHR
- vkUpdateVideoSessionParametersKHR
New Structures
- VkBindVideoSessionMemoryInfoKHR
- VkPhysicalDeviceVideoFormatInfoKHR
- VkVideoBeginCodingInfoKHR
- VkVideoCapabilitiesKHR
- VkVideoCodingControlInfoKHR
- VkVideoEndCodingInfoKHR
- VkVideoFormatPropertiesKHR
- VkVideoPictureResourceInfoKHR
- VkVideoReferenceSlotInfoKHR
- VkVideoSessionCreateInfoKHR
- VkVideoSessionMemoryRequirementsKHR
- VkVideoSessionParametersCreateInfoKHR
- VkVideoSessionParametersUpdateInfoKHR
- Extending VkPhysicalDeviceImageFormatInfo2, VkPhysicalDeviceVideoFormatInfoKHR, VkImageCreateInfo, VkBufferCreateInfo:
- Extending VkQueryPoolCreateInfo:
- Extending VkQueueFamilyProperties2:
New Enums
- VkQueryResultStatusKHR
- VkVideoCapabilityFlagBitsKHR
- VkVideoChromaSubsamplingFlagBitsKHR
- VkVideoCodecOperationFlagBitsKHR
- VkVideoCodingControlFlagBitsKHR
- VkVideoComponentBitDepthFlagBitsKHR
- VkVideoSessionCreateFlagBitsKHR
New Bitmasks
- VkVideoBeginCodingFlagsKHR
- VkVideoCapabilityFlagsKHR
- VkVideoChromaSubsamplingFlagsKHR
- VkVideoCodecOperationFlagsKHR
- VkVideoCodingControlFlagsKHR
- VkVideoComponentBitDepthFlagsKHR
- VkVideoEndCodingFlagsKHR
- VkVideoSessionCreateFlagsKHR
- VkVideoSessionParametersCreateFlagsKHR
New Enum Constants
VK_KHR_VIDEO_QUEUE_EXTENSION_NAMEVK_KHR_VIDEO_QUEUE_SPEC_VERSION- Extending VkObjectType:
VK_OBJECT_TYPE_VIDEO_SESSION_KHRVK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR
- Extending VkQueryResultFlagBits:
VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
- Extending VkQueryType:
VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR
- Extending VkResult:
VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHRVK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHRVK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHRVK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHRVK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHRVK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRVK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHRVK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRVK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRVK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRVK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRVK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRVK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
Version History
- Revision 0.1, 2019-11-21 (Tony Zlatinski)
- Initial draft
- Revision 0.2, 2019-11-27 (Tony Zlatinski)
- Make vulkan video core common between decode and encode
- Revision 1, March 29 2021 (Tony Zlatinski)
- Spec and API updates.
- Revision 2, August 1 2021 (Srinath Kumarapuram)
- Rename
VkVideoCapabilitiesFlagBitsKHRtoVkVideoCapabilityFlagBitsKHR(along with the names of enumerants it defines) andVkVideoCapabilitiesFlagsKHRtoVkVideoCapabilityFlagsKHR, following Vulkan naming conventions.
- Rename
- Revision 3, 2022-03-16 (Ahmed Abdelkhalek)
- Relocate Std header version reporting/requesting from codec-operation specific extensions to this extension.
- Make Std header versions codec-operation specific instead of only codec-specific.
- Revision 4, 2022-05-30 (Daniel Rakos)
- Refactor the video format query APIs and related language
- Extend VkResult with video-specific error codes
- Revision 5, 2022-08-11 (Daniel Rakos)
- Add
VkVideoSessionParametersCreateFlagsKHR - Remove
VkVideoCodingQualityPresetFlagsKHR - Rename
VkQueueFamilyQueryResultStatusProperties2KHRtoVkQueueFamilyQueryResultStatusPropertiesKHR - Rename
VkVideoQueueFamilyProperties2KHRtoVkQueueFamilyVideoPropertiesKHR - Rename
VkVideoProfileKHRtoVkVideoProfileInfoKHR - Rename
VkVideoProfilesKHRtoVkVideoProfileListInfoKHR - Rename
VkVideoGetMemoryPropertiesKHRtoVkVideoSessionMemoryRequirementsKHR - Rename
VkVideoBindMemoryKHRtoVkBindVideoSessionMemoryInfoKHR - Fix
pNextconstness ofVkPhysicalDeviceVideoFormatInfoKHRandVkVideoSessionMemoryRequirementsKHR - Fix incorrectly named value enums in bit enum types
VkVideoCodecOperationFlagBitsKHRandVkVideoChromaSubsamplingFlagBitsKHR - Remove unnecessary default values from
VkVideoSessionCreateFlagBitsKHRandVkVideoCodingControlFlagBitsKHR - Eliminate nested pointer in
VkVideoSessionMemoryRequirementsKHR - Rename
VkVideoPictureResourceKHRtoVkVideoPictureResourceInfoKHR - Rename
VkVideoReferenceSlotKHRtoVkVideoReferenceSlotInfoKHR
- Add
- Revision 6, 2022-09-18 (Daniel Rakos)
- Rename the
maxReferencePicturesSlotsCountandmaxReferencePicturesActiveCountfields ofVkVideoCapabilitiesKHRandVkVideoSessionCreateInfoKHRtomaxDpbSlotsandmaxActiveReferencePictures, respectively, to clarify their meaning - Rename
capabilityFlagstoflagsinVkVideoCapabilitiesKHR - Rename
videoPictureExtentGranularitytopictureAccessGranularityinVkVideoCapabilitiesKHR - Rename
minExtentandmaxExtenttominCodedExtentandmaxCodedExtent, respectively, inVkVideoCapabilitiesKHR - Rename
referencePicturesFormattoreferencePictureFormatinVkVideoSessionCreateInfoKHR
- Rename the
- Revision 7, 2022-09-26 (Daniel Rakos)
- Change type of
VkVideoReferenceSlotInfoKHR::slotIndexfromint8_ttoint32_t
- Change type of
- Revision 8, 2022-09-29 (Daniel Rakos)
- Extension is no longer provisional