Contact
-
Tony Zlatinski tzlatinski
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 Structures
-
Extending VkPhysicalDeviceImageFormatInfo2, VkPhysicalDeviceVideoFormatInfoKHR, VkImageCreateInfo, VkBufferCreateInfo:
-
Extending VkQueryPoolCreateInfo:
-
Extending VkQueueFamilyProperties2:
New Enum Constants
-
VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
-
VK_KHR_VIDEO_QUEUE_SPEC_VERSION
-
Extending VkObjectType:
-
VK_OBJECT_TYPE_VIDEO_SESSION_KHR
-
VK_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_KHR
-
VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR
-
VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR
-
VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR
-
VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR
-
VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR
-
-
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
-
VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
-
VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
-
VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
-
VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
-
VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
-
VK_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
VkVideoCapabilitiesFlagBitsKHR
toVkVideoCapabilityFlagBitsKHR
(along with the names of enumerants it defines) andVkVideoCapabilitiesFlagsKHR
toVkVideoCapabilityFlagsKHR
, following Vulkan naming conventions.
-
-
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
VkQueueFamilyQueryResultStatusProperties2KHR
toVkQueueFamilyQueryResultStatusPropertiesKHR
-
Rename
VkVideoQueueFamilyProperties2KHR
toVkQueueFamilyVideoPropertiesKHR
-
Rename
VkVideoProfileKHR
toVkVideoProfileInfoKHR
-
Rename
VkVideoProfilesKHR
toVkVideoProfileListInfoKHR
-
Rename
VkVideoGetMemoryPropertiesKHR
toVkVideoSessionMemoryRequirementsKHR
-
Rename
VkVideoBindMemoryKHR
toVkBindVideoSessionMemoryInfoKHR
-
Fix
pNext
constness ofVkPhysicalDeviceVideoFormatInfoKHR
andVkVideoSessionMemoryRequirementsKHR
-
Fix incorrectly named value enums in bit enum types
VkVideoCodecOperationFlagBitsKHR
andVkVideoChromaSubsamplingFlagBitsKHR
-
Remove unnecessary default values from
VkVideoSessionCreateFlagBitsKHR
andVkVideoCodingControlFlagBitsKHR
-
Eliminate nested pointer in
VkVideoSessionMemoryRequirementsKHR
-
Rename
VkVideoPictureResourceKHR
toVkVideoPictureResourceInfoKHR
-
Rename
VkVideoReferenceSlotKHR
toVkVideoReferenceSlotInfoKHR
-
-
Revision 6, 2022-09-18 (Daniel Rakos)
-
Rename the
maxReferencePicturesSlotsCount
andmaxReferencePicturesActiveCount
fields ofVkVideoCapabilitiesKHR
andVkVideoSessionCreateInfoKHR
tomaxDpbSlots
andmaxActiveReferencePictures
, respectively, to clarify their meaning -
Rename
capabilityFlags
toflags
inVkVideoCapabilitiesKHR
-
Rename
videoPictureExtentGranularity
topictureAccessGranularity
inVkVideoCapabilitiesKHR
-
Rename
minExtent
andmaxExtent
tominCodedExtent
andmaxCodedExtent
, respectively, inVkVideoCapabilitiesKHR
-
Rename
referencePicturesFormat
toreferencePictureFormat
inVkVideoSessionCreateInfoKHR
-
-
Revision 7, 2022-09-26 (Daniel Rakos)
-
Change type of
VkVideoReferenceSlotInfoKHR::slotIndex
fromint8_t
toint32_t
-
-
Revision 8, 2022-09-29 (Daniel Rakos)
-
Extension is no longer provisional
-
See Also
VkBindVideoSessionMemoryInfoKHR, VkPhysicalDeviceVideoFormatInfoKHR, VkQueryResultStatusKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, VkQueueFamilyVideoPropertiesKHR, VkVideoBeginCodingFlagsKHR, VkVideoBeginCodingInfoKHR, VkVideoCapabilitiesKHR, VkVideoCapabilityFlagBitsKHR, VkVideoCapabilityFlagsKHR, VkVideoChromaSubsamplingFlagBitsKHR, VkVideoChromaSubsamplingFlagsKHR, VkVideoCodecOperationFlagBitsKHR, VkVideoCodecOperationFlagsKHR, VkVideoCodingControlFlagBitsKHR, VkVideoCodingControlFlagsKHR, VkVideoCodingControlInfoKHR, VkVideoComponentBitDepthFlagBitsKHR, VkVideoComponentBitDepthFlagsKHR, VkVideoEndCodingFlagsKHR, VkVideoEndCodingInfoKHR, VkVideoFormatPropertiesKHR, VkVideoPictureResourceInfoKHR, VkVideoProfileInfoKHR, VkVideoProfileListInfoKHR, VkVideoReferenceSlotInfoKHR, VkVideoSessionCreateFlagBitsKHR, VkVideoSessionCreateFlagsKHR, VkVideoSessionCreateInfoKHR, VkVideoSessionKHR, VkVideoSessionMemoryRequirementsKHR, VkVideoSessionParametersCreateFlagsKHR, VkVideoSessionParametersCreateInfoKHR, VkVideoSessionParametersKHR, VkVideoSessionParametersUpdateInfoKHR, vkBindVideoSessionMemoryKHR, vkCmdBeginVideoCodingKHR, vkCmdControlVideoCodingKHR, vkCmdEndVideoCodingKHR, vkCreateVideoSessionKHR, vkCreateVideoSessionParametersKHR, vkDestroyVideoSessionKHR, vkDestroyVideoSessionParametersKHR, vkGetPhysicalDeviceVideoCapabilitiesKHR, vkGetPhysicalDeviceVideoFormatPropertiesKHR, vkGetVideoSessionMemoryRequirementsKHR, vkUpdateVideoSessionParametersKHR
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.