Class KHRVideoQueue
- 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.
- Name String
VK_KHR_video_queue- Extension Type
- Device extension
- Registered Extension Number
- 24
- Revision
- 8
- Extension and Version Dependencies
- Version 1.1 and
VK_KHR_synchronization2or Version 1.3 - Contact
- Tony Zlatinski tzlatinski
- Extension Proposal
- 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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkResult.static final intExtendsVkResult.static final intExtendsVkResult.static final intExtendsVkResult.static final intExtendsVkResult.static final intExtendsVkResult.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkObjectType.static final intExtendsVkObjectType.static final intVkQueryResultStatusKHR - Specific status codes for operationsstatic final intVkQueryResultStatusKHR - Specific status codes for operationsstatic final intVkQueryResultStatusKHR - Specific status codes for operationsstatic final intExtendsVkQueryResultFlagBits.static final intExtendsVkQueryType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intVkVideoCapabilityFlagBitsKHR - Video decode and encode capability bitsstatic final intVkVideoCapabilityFlagBitsKHR - Video decode and encode capability bitsstatic final intVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsstatic final intVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsstatic final intVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsstatic final intVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsstatic final intVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsstatic final intVkVideoCodecOperationFlagBitsKHR - Video codec operation bitsstatic final intVkVideoCodingControlFlagBitsKHR - Video coding control flagsstatic final intVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthstatic final intVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthstatic final intVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthstatic final intVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthstatic final intVkVideoSessionCreateFlagBitsKHR - Video session creation flags -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkBindVideoSessionMemoryKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, int bindSessionMemoryInfoCount, long pBindSessionMemoryInfos) Unsafe version of:BindVideoSessionMemoryKHRstatic voidnvkCmdBeginVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pBeginInfo) Unsafe version of:CmdBeginVideoCodingKHRstatic voidnvkCmdControlVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pCodingControlInfo) Unsafe version of:CmdControlVideoCodingKHRstatic voidnvkCmdEndVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pEndCodingInfo) Unsafe version of:CmdEndVideoCodingKHRstatic intnvkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pVideoSession) Unsafe version of:CreateVideoSessionKHRstatic intnvkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pVideoSessionParameters) Unsafe version of:CreateVideoSessionParametersKHRstatic voidnvkDestroyVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, long pAllocator) Unsafe version of:DestroyVideoSessionKHRstatic voidnvkDestroyVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, long pAllocator) Unsafe version of:DestroyVideoSessionParametersKHRstatic intnvkGetPhysicalDeviceVideoCapabilitiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pVideoProfile, long pCapabilities) Unsafe version of:GetPhysicalDeviceVideoCapabilitiesKHRstatic intnvkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pVideoFormatInfo, long pVideoFormatPropertyCount, long pVideoFormatProperties) Unsafe version of:GetPhysicalDeviceVideoFormatPropertiesKHRstatic intnvkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, long pMemoryRequirementsCount, long pMemoryRequirements) Unsafe version of:GetVideoSessionMemoryRequirementsKHRstatic intnvkUpdateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, long pUpdateInfo) Unsafe version of:UpdateVideoSessionParametersKHRstatic intvkBindVideoSessionMemoryKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, VkBindVideoSessionMemoryInfoKHR.Buffer pBindSessionMemoryInfos) Bind Video Memory.static voidvkCmdBeginVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoBeginCodingInfoKHR pBeginInfo) Begin video coding scope.static voidvkCmdControlVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoCodingControlInfoKHR pCodingControlInfo) Control video coding parameters.static voidvkCmdEndVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoEndCodingInfoKHR pEndCodingInfo) End video coding scope.static intvkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pVideoSession) Array version of:CreateVideoSessionKHRstatic intvkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pVideoSession) Creates a video session object.static intvkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionParametersCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pVideoSessionParameters) Array version of:CreateVideoSessionParametersKHRstatic intvkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionParametersCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pVideoSessionParameters) Creates video session parameters object.static voidvkDestroyVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, @Nullable VkAllocationCallbacks pAllocator) Destroy video session object.static voidvkDestroyVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, @Nullable VkAllocationCallbacks pAllocator) Destroy video session parameters object.static intvkGetPhysicalDeviceVideoCapabilitiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkVideoProfileInfoKHR pVideoProfile, VkVideoCapabilitiesKHR pCapabilities) Query video coding capabilities.static intvkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoFormatInfoKHR pVideoFormatInfo, int[] pVideoFormatPropertyCount, @Nullable VkVideoFormatPropertiesKHR.Buffer pVideoFormatProperties) Array version of:GetPhysicalDeviceVideoFormatPropertiesKHRstatic intvkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoFormatInfoKHR pVideoFormatInfo, IntBuffer pVideoFormatPropertyCount, @Nullable VkVideoFormatPropertiesKHR.Buffer pVideoFormatProperties) Query supported video decode and encode image formats and capabilities.static intvkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, int[] pMemoryRequirementsCount, @Nullable VkVideoSessionMemoryRequirementsKHR.Buffer pMemoryRequirements) Array version of:GetVideoSessionMemoryRequirementsKHRstatic intvkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, IntBuffer pMemoryRequirementsCount, @Nullable VkVideoSessionMemoryRequirementsKHR.Buffer pMemoryRequirements) Get the memory requirements for a video session.static intvkUpdateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, VkVideoSessionParametersUpdateInfoKHR pUpdateInfo) Update video session parameters object.
-
Field Details
-
VK_KHR_VIDEO_QUEUE_SPEC_VERSION
public static final int VK_KHR_VIDEO_QUEUE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR
public static final int VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHRSTRUCTURE_TYPE_VIDEO_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHRSTRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHRSTRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHRSTRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHRSTRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHRSTRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
- See Also:
-
VK_OBJECT_TYPE_VIDEO_SESSION_KHR
public static final int VK_OBJECT_TYPE_VIDEO_SESSION_KHRExtendsVkObjectType.Enum values:
- See Also:
-
VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR
public static final int VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHRExtendsVkObjectType.Enum values:
- See Also:
-
VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR
public static final int VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHRExtendsVkQueryType.- See Also:
-
VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
public static final int VK_QUERY_RESULT_WITH_STATUS_BIT_KHRExtendsVkQueryResultFlagBits.- See Also:
-
VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR
public static final int VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR
public static final int VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR
public static final int VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR
public static final int VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR
public static final int VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR
public static final int VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHRExtendsVkResult.Enum values:
- See Also:
-
VK_VIDEO_CODEC_OPERATION_NONE_KHR
public static final int VK_VIDEO_CODEC_OPERATION_NONE_KHRVkVideoCodecOperationFlagBitsKHR - Video codec operation bitsDescription
VIDEO_CODEC_OPERATION_NONE_KHRspecifies that no video codec operations are supported.VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHRspecifies support for H.264 decode operations.VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHRspecifies support for H.265 decode operations.VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHRspecifies support for AV1 decode operations.VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRspecifies support for H.264 encode operations.VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRspecifies support for H.265 encode operations.VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRspecifies support for AV1 encode operations.
See Also
- See Also:
-
VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR
public static final int VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHRVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsDescription
VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRspecifies that the format is monochrome.VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRspecified that the format is 4:2:0 chroma subsampled, i.e. the two chroma components are sampled horizontally and vertically at half the sample rate of the luma component.VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR- the format is 4:2:2 chroma subsampled, i.e. the two chroma components are sampled horizontally at half the sample rate of luma component.VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR- the format is 4:4:4 chroma sampled, i.e. all three components of the Y′CBCR format are sampled at the same rate, thus there is no chroma subsampling.
Enum values:
- See Also:
-
VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
public static final int VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsDescription
VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRspecifies that the format is monochrome.VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRspecified that the format is 4:2:0 chroma subsampled, i.e. the two chroma components are sampled horizontally and vertically at half the sample rate of the luma component.VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR- the format is 4:2:2 chroma subsampled, i.e. the two chroma components are sampled horizontally at half the sample rate of luma component.VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR- the format is 4:4:4 chroma sampled, i.e. all three components of the Y′CBCR format are sampled at the same rate, thus there is no chroma subsampling.
Enum values:
- See Also:
-
VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR
public static final int VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsDescription
VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRspecifies that the format is monochrome.VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRspecified that the format is 4:2:0 chroma subsampled, i.e. the two chroma components are sampled horizontally and vertically at half the sample rate of the luma component.VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR- the format is 4:2:2 chroma subsampled, i.e. the two chroma components are sampled horizontally at half the sample rate of luma component.VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR- the format is 4:4:4 chroma sampled, i.e. all three components of the Y′CBCR format are sampled at the same rate, thus there is no chroma subsampling.
Enum values:
- See Also:
-
VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR
public static final int VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHRVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsDescription
VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRspecifies that the format is monochrome.VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRspecified that the format is 4:2:0 chroma subsampled, i.e. the two chroma components are sampled horizontally and vertically at half the sample rate of the luma component.VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR- the format is 4:2:2 chroma subsampled, i.e. the two chroma components are sampled horizontally at half the sample rate of luma component.VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR- the format is 4:4:4 chroma sampled, i.e. all three components of the Y′CBCR format are sampled at the same rate, thus there is no chroma subsampling.
Enum values:
- See Also:
-
VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
public static final int VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHRVkVideoChromaSubsamplingFlagBitsKHR - Video format chroma subsampling bitsDescription
VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHRspecifies that the format is monochrome.VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHRspecified that the format is 4:2:0 chroma subsampled, i.e. the two chroma components are sampled horizontally and vertically at half the sample rate of the luma component.VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR- the format is 4:2:2 chroma subsampled, i.e. the two chroma components are sampled horizontally at half the sample rate of luma component.VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR- the format is 4:4:4 chroma sampled, i.e. all three components of the Y′CBCR format are sampled at the same rate, thus there is no chroma subsampling.
Enum values:
- See Also:
-
VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR
public static final int VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHRVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthDescription
VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHRspecifies a component bit depth of 8 bits.VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHRspecifies a component bit depth of 10 bits.VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHRspecifies a component bit depth of 12 bits.
Enum values:
- See Also:
-
VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR
public static final int VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHRVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthDescription
VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHRspecifies a component bit depth of 8 bits.VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHRspecifies a component bit depth of 10 bits.VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHRspecifies a component bit depth of 12 bits.
Enum values:
- See Also:
-
VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR
public static final int VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHRVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthDescription
VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHRspecifies a component bit depth of 8 bits.VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHRspecifies a component bit depth of 10 bits.VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHRspecifies a component bit depth of 12 bits.
Enum values:
- See Also:
-
VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
public static final int VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHRVkVideoComponentBitDepthFlagBitsKHR - Video format component bit depthDescription
VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHRspecifies a component bit depth of 8 bits.VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHRspecifies a component bit depth of 10 bits.VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHRspecifies a component bit depth of 12 bits.
Enum values:
- See Also:
-
VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR
public static final int VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHRVkVideoCapabilityFlagBitsKHR - Video decode and encode capability bitsDescription
VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHRspecifies that video sessions support producing and consuming protected content.VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHRindicates that the video picture resources associated with the DPB slots of a video session can be backed by separateVkImageobjects. If this capability flag is not present, then all DPB slots of a video session must be associated with video picture resources backed by the sameVkImageobject (e.g. using different layers of the same image).
- See Also:
-
VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
public static final int VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHRVkVideoCapabilityFlagBitsKHR - Video decode and encode capability bitsDescription
VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHRspecifies that video sessions support producing and consuming protected content.VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHRindicates that the video picture resources associated with the DPB slots of a video session can be backed by separateVkImageobjects. If this capability flag is not present, then all DPB slots of a video session must be associated with video picture resources backed by the sameVkImageobject (e.g. using different layers of the same image).
- See Also:
-
VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
public static final int VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHRVkVideoSessionCreateFlagBitsKHR - Video session creation flagsDescription
VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHRspecifies that the video session uses protected video content.VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHRspecifies that the implementation is allowed to override video session parameters and other codec-specific encoding parameters to optimize video encode operations based on the use case information specified in the video profile and the used video encode quality level.Note
Not specifying
VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHRdoes not guarantee that the implementation will not do any codec-specific parameter overrides, as certain overrides are necessary for the correct operation of the video encoder implementation due to limitations to the available encoding tools on that implementation. This flag, however, enables the implementation to apply further optimizing overrides.VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHRspecifies that queries within video coding scopes using the created video session are executed inline with video coding operations.VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRspecifies that the video session can be used to encode pictures with quantization delta maps.VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHRspecifies that the video session can be used to encode pictures with emphasis maps.
- See Also:
-
VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR
public static final int VK_VIDEO_CODING_CONTROL_RESET_BIT_KHRVkVideoCodingControlFlagBitsKHR - Video coding control flagsDescription
VIDEO_CODING_CONTROL_RESET_BIT_KHRspecifies a request for the bound video session to be reset before other coding control parameters are applied.VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHRspecifies that the coding control parameters include video encode rate control parameters (seeVkVideoEncodeRateControlInfoKHR).VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHRspecifies that the coding control parameters include video encode quality level parameters (seeVkVideoEncodeQualityLevelInfoKHR).
- See Also:
-
VK_QUERY_RESULT_STATUS_ERROR_KHR
public static final int VK_QUERY_RESULT_STATUS_ERROR_KHRVkQueryResultStatusKHR - Specific status codes for operationsDescription
QUERY_RESULT_STATUS_NOT_READY_KHRspecifies that the query result is not yet available.QUERY_RESULT_STATUS_ERROR_KHRspecifies that operations did not complete successfully.QUERY_RESULT_STATUS_COMPLETE_KHRspecifies that operations completed successfully and the query result is available.QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRspecifies that a video encode operation did not complete successfully due to the destination video bitstream buffer range not being sufficiently large to fit the encoded bitstream data.
- See Also:
-
VK_QUERY_RESULT_STATUS_NOT_READY_KHR
public static final int VK_QUERY_RESULT_STATUS_NOT_READY_KHRVkQueryResultStatusKHR - Specific status codes for operationsDescription
QUERY_RESULT_STATUS_NOT_READY_KHRspecifies that the query result is not yet available.QUERY_RESULT_STATUS_ERROR_KHRspecifies that operations did not complete successfully.QUERY_RESULT_STATUS_COMPLETE_KHRspecifies that operations completed successfully and the query result is available.QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRspecifies that a video encode operation did not complete successfully due to the destination video bitstream buffer range not being sufficiently large to fit the encoded bitstream data.
- See Also:
-
VK_QUERY_RESULT_STATUS_COMPLETE_KHR
public static final int VK_QUERY_RESULT_STATUS_COMPLETE_KHRVkQueryResultStatusKHR - Specific status codes for operationsDescription
QUERY_RESULT_STATUS_NOT_READY_KHRspecifies that the query result is not yet available.QUERY_RESULT_STATUS_ERROR_KHRspecifies that operations did not complete successfully.QUERY_RESULT_STATUS_COMPLETE_KHRspecifies that operations completed successfully and the query result is available.QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRspecifies that a video encode operation did not complete successfully due to the destination video bitstream buffer range not being sufficiently large to fit the encoded bitstream data.
- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceVideoCapabilitiesKHR
public static int nvkGetPhysicalDeviceVideoCapabilitiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pVideoProfile, long pCapabilities) Unsafe version of:GetPhysicalDeviceVideoCapabilitiesKHR -
vkGetPhysicalDeviceVideoCapabilitiesKHR
public static int vkGetPhysicalDeviceVideoCapabilitiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkVideoProfileInfoKHR pVideoProfile, VkVideoCapabilitiesKHR pCapabilities) Query video coding capabilities.C Specification
To query video coding capabilities for a specific video profile, call:
VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);Description
If the video profile described by
pVideoProfileis supported by the implementation, then this command returnsSUCCESSandpCapabilitiesis filled with the capabilities supported with the specified video profile. Otherwise, one of the video-profile-specific error codes are returned.Valid Usage
- If
pVideoProfile→videoCodecOperationspecifies a decode operation, then thepNextchain ofpCapabilitiesmust include aVkVideoDecodeCapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoDecodeH264CapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoDecodeH265CapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoDecodeAV1CapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationspecifies an encode operation, then thepNextchain ofpCapabilitiesmust include aVkVideoEncodeCapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoEncodeH264CapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoEncodeH265CapabilitiesKHRstructure - If
pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thepNextchain ofpCapabilitiesmust include aVkVideoEncodeAV1CapabilitiesKHRstructure
Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepVideoProfilemust be a valid pointer to a validVkVideoProfileInfoKHRstructurepCapabilitiesmust be a valid pointer to aVkVideoCapabilitiesKHRstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
physicalDevice- the physical device from which to query the video decode or encode capabilities.pVideoProfile- a pointer to aVkVideoProfileInfoKHRstructure.pCapabilities- a pointer to aVkVideoCapabilitiesKHRstructure in which the capabilities are returned.
- If
-
nvkGetPhysicalDeviceVideoFormatPropertiesKHR
public static int nvkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pVideoFormatInfo, long pVideoFormatPropertyCount, long pVideoFormatProperties) Unsafe version of:GetPhysicalDeviceVideoFormatPropertiesKHR- Parameters:
pVideoFormatPropertyCount- a pointer to an integer related to the number of video format properties available or queried, as described below.
-
vkGetPhysicalDeviceVideoFormatPropertiesKHR
public static int vkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoFormatInfoKHR pVideoFormatInfo, IntBuffer pVideoFormatPropertyCount, @Nullable VkVideoFormatPropertiesKHR.Buffer pVideoFormatProperties) Query supported video decode and encode image formats and capabilities.C Specification
To enumerate the supported video formats and corresponding capabilities for a specific video profile, call:
VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);Description
If
pVideoFormatPropertiesisNULL, then the number of video format properties supported for the givenphysicalDeviceis returned inpVideoFormatPropertyCount. Otherwise,pVideoFormatPropertyCountmust point to a variable set by the application to the number of elements in thepVideoFormatPropertiesarray, and on return the variable is overwritten with the number of values actually written topVideoFormatProperties. If the value ofpVideoFormatPropertyCountis less than the number of video format properties supported, at mostpVideoFormatPropertyCountvalues will be written topVideoFormatProperties, andINCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available values were returned.Video format properties are always queried with respect to a specific set of video profiles. These are specified by chaining the
VkVideoProfileListInfoKHRstructure topVideoFormatInfo.For most use cases, the images are used by a single video session and a single video profile is provided. For a use case such as video transcoding, where a decode session output image can be used as encode input in one or more encode sessions, multiple video profiles corresponding to the video sessions that will share the image must be provided.
If any of the video profiles specified via
VkVideoProfileListInfoKHR::pProfilesare not supported, then this command returns one of the video-profile-specific error codes. Furthermore, ifVkPhysicalDeviceVideoFormatInfoKHR::imageUsageincludes any image usage flags not supported by the specified video profiles, then this command returnsERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR.This command also returns
ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHRifVkPhysicalDeviceVideoFormatInfoKHR::imageUsagedoes not include the appropriate flags as dictated by the decode capability flags returned inVkVideoDecodeCapabilitiesKHR::flagsfor any of the profiles specified in theVkVideoProfileListInfoKHRstructure provided in thepNextchain ofpVideoFormatInfo.If the decode capability flags include
VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHRbut notVIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR, then in order to query video format properties for decode DPB and output usage,VkPhysicalDeviceVideoFormatInfoKHR::imageUsagemust include bothIMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHRandIMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR. Otherwise, the call will fail withERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR.If the decode capability flags include
VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHRbut notVIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR, then in order to query video format properties for decode DPB usage,VkPhysicalDeviceVideoFormatInfoKHR::imageUsagemust includeIMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, but notIMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR. Otherwise, the call will fail withERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR. Similarly, to query video format properties for decode output usage,VkPhysicalDeviceVideoFormatInfoKHR::imageUsagemust includeIMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, but notIMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR. Otherwise, the call will fail withERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR.The
imageUsagemember of theVkPhysicalDeviceVideoFormatInfoKHRstructure specifies the expected video usage flags that the returned video formats must support. Correspondingly, theimageUsageFlagsmember of eachVkVideoFormatPropertiesKHRstructure returned will contain at least the same set of image usage flags.If the implementation supports using images of a particular format in operations other than video decode/encode then the
imageUsageFlagsmember of the correspondingVkVideoFormatPropertiesKHRstructure returned will include additional image usage flags indicating that.Note
For most use cases, only decode or encode related usage flags are going to be specified. For a use case such as transcode, if the image were to be shared between decode and encode session(s), then both decode and encode related usage flags can be set.
Multiple
VkVideoFormatPropertiesKHRentries may be returned with the sameformatmember with differentcomponentMapping,imageType, orimageTilingvalues, as described later.If
VkPhysicalDeviceVideoFormatInfoKHR::imageUsageFlagsincludesIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR, multipleVkVideoFormatPropertiesKHRentries may be returned with the sameformat,componentMapping,imageType, andimageTilingmember values, but differentquantizationMapTexelSizereturned in theVkVideoFormatQuantizationMapPropertiesKHRstructure, if one is included in theVkVideoFormatPropertiesKHR::pNextchain, when the queried quantization map type supports multiple distinct quantization map texel sizes.In addition, a different set of
VkVideoFormatPropertiesKHRentries may be returned depending on theimageUsagemember of theVkPhysicalDeviceVideoFormatInfoKHRstructure, even for the same set of video profiles, for example, based on whether encode input, encode DPB, decode output, and/or decode DPB usage is requested.The application can select the parameters returned in the
VkVideoFormatPropertiesKHRentries and use compatible parameters when creating the input, output, and DPB images. The implementation will report all image creation and usage flags that are valid for images used with the requested video profiles but applications should create images only with those that are necessary for the particular use case.Before creating an image, the application can obtain the complete set of supported image format features by calling
GetPhysicalDeviceImageFormatProperties2using parameters derived from the members of one of the reportedVkVideoFormatPropertiesKHRentries and adding the sameVkVideoProfileListInfoKHRstructure to thepNextchain ofVkPhysicalDeviceImageFormatInfo2.The following applies to all
VkVideoFormatPropertiesKHRentries returned byvkGetPhysicalDeviceVideoFormatPropertiesKHR:GetPhysicalDeviceFormatProperties2must succeed when called withVkVideoFormatPropertiesKHR::format- If
VkVideoFormatPropertiesKHR::imageTilingisIMAGE_TILING_OPTIMAL, then theoptimalTilingFeaturesreturned byGetPhysicalDeviceFormatProperties2must include all format features required by the image usage flags reported inVkVideoFormatPropertiesKHR::imageUsageFlagsfor the format, as indicated in the Format Feature Dependent Usage Flags section. - If
VkVideoFormatPropertiesKHR::imageTilingisIMAGE_TILING_LINEAR, then thelinearTilingFeaturesreturned byGetPhysicalDeviceFormatProperties2must include all format features required by the image usage flags reported inVkVideoFormatPropertiesKHR::imageUsageFlagsfor the format, as indicated in the Format Feature Dependent Usage Flags section. GetPhysicalDeviceImageFormatProperties2must succeed when called with aVkPhysicalDeviceImageFormatInfo2structure containing the following information:- The
pNextchain including the sameVkVideoProfileListInfoKHRstructure used to callvkGetPhysicalDeviceVideoFormatPropertiesKHR. formatset to the value ofVkVideoFormatPropertiesKHR::format.typeset to the value ofVkVideoFormatPropertiesKHR::imageType.tilingset to the value ofVkVideoFormatPropertiesKHR::imageTiling.usageset to the value ofVkVideoFormatPropertiesKHR::imageUsageFlags.flagsset to the value ofVkVideoFormatPropertiesKHR::imageCreateFlags.
- The
The
componentMappingmember ofVkVideoFormatPropertiesKHRdefines the ordering of the Y′CBCR color channels from the perspective of the video codec operations specified inVkVideoProfileListInfoKHR. For example, if the implementation produces video decode output with the formatFORMAT_G8_B8R8_2PLANE_420_UNORMwhere the blue and red chrominance channels are swapped then thecomponentMappingmember of the correspondingVkVideoFormatPropertiesKHRstructure will have the following member values:components.r = VK_COMPONENT_SWIZZLE_B; // Cb component components.g = VK_COMPONENT_SWIZZLE_IDENTITY; // Y component components.b = VK_COMPONENT_SWIZZLE_R; // Cr component components.a = VK_COMPONENT_SWIZZLE_IDENTITY; // unused, defaults to 1.0Valid Usage
- The
pNextchain ofpVideoFormatInfomust include aVkVideoProfileListInfoKHRstructure withprofileCountgreater than 0
Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepVideoFormatInfomust be a valid pointer to a validVkPhysicalDeviceVideoFormatInfoKHRstructurepVideoFormatPropertyCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pVideoFormatPropertyCountis not 0, andpVideoFormatPropertiesis notNULL,pVideoFormatPropertiesmust be a valid pointer to an array ofpVideoFormatPropertyCountVkVideoFormatPropertiesKHRstructures
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkPhysicalDeviceVideoFormatInfoKHR,VkVideoFormatPropertiesKHR- Parameters:
physicalDevice- the physical device from which to query the video format properties.pVideoFormatInfo- a pointer to aVkPhysicalDeviceVideoFormatInfoKHRstructure specifying the usage and video profiles for which supported image formats and capabilities are returned.pVideoFormatPropertyCount- a pointer to an integer related to the number of video format properties available or queried, as described below.pVideoFormatProperties- a pointer to an array ofVkVideoFormatPropertiesKHRstructures in which supported image formats and capabilities are returned.
-
nvkCreateVideoSessionKHR
public static int nvkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pVideoSession) Unsafe version of:CreateVideoSessionKHR -
vkCreateVideoSessionKHR
public static int vkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pVideoSession) Creates a video session object.C Specification
To create a video session object, call:
VkResult vkCreateVideoSessionKHR( VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);Description
The resulting video session object is said to be created with the video codec operation specified in
pCreateInfo→pVideoProfile→videoCodecOperation.The name and version of the codec-specific Video Std header to be used with the video session is specified by the
VkExtensionPropertiesstructure pointed to bypCreateInfo→pStdHeaderVersion. If a non-existent or unsupported Video Std header version is specified inpCreateInfo→pStdHeaderVersion→specVersion, then this command returnsERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR.Video session objects are created in uninitialized state. In order to transition the video session into initial state, the application must issue a
CmdControlVideoCodingKHRcommand withVkVideoCodingControlInfoKHR::flagsincludingVIDEO_CODING_CONTROL_RESET_BIT_KHR.Video session objects also maintain the state of the DPB. The number of DPB slots usable with the created video session is specified in
pCreateInfo→maxDpbSlots, and each slot is initially in the inactive state.Each DPB slot maintained by the created video session can refer to a reference picture representing a video frame.
In addition, if the
videoCodecOperationmember of theVkVideoProfileInfoKHRstructure pointed to bypCreateInfo→pVideoProfileisVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHRand thepictureLayoutmember of theVkVideoDecodeH264ProfileInfoKHRstructure provided in theVkVideoProfileInfoKHR::pNextchain is notVIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR, then the created video session supports interlaced frames and each DPB slot maintained by the created video session can instead refer to separate top field and bottom field reference pictures that together can represent a full video frame. In this case, it is up to the application, driven by the video content, whether it associates any individual DPB slot with separate top and/or bottom field pictures or a single picture representing a full frame.The created video session can be used to perform video coding operations using video frames up to the maximum size specified in
pCreateInfo→maxCodedExtent. The minimum frame size allowed is implicitly derived fromVkVideoCapabilitiesKHR::minCodedExtent, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile specified bypCreateInfo→pVideoProfile. Accordingly, the created video session is said to be created with aminCodedExtentequal to that.In case of video session objects created with a video encode operation, implementations may return the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror if any of the specified Video Std parameters do not adhere to the syntactic or semantic requirements of the used video compression standard, or if values derived from parameters according to the rules defined by the used video compression standard do not adhere to the capabilities of the video compression standard or the implementation.Note
Applications should not rely on the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror being returned by any command as a means to verify Video Std parameters, as implementations are not required to report the error in any specific set of cases.Valid Usage (Implicit)
devicemust be a validVkDevicehandlepCreateInfomust be a valid pointer to a validVkVideoSessionCreateInfoKHRstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pVideoSessionmust be a valid pointer to aVkVideoSessionKHRhandle
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that creates the video session.pCreateInfo- a pointer to aVkVideoSessionCreateInfoKHRstructure containing parameters to be used to create the video session.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pVideoSession- a pointer to aVkVideoSessionKHRhandle in which the resulting video session object is returned.
-
nvkDestroyVideoSessionKHR
public static void nvkDestroyVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, long pAllocator) Unsafe version of:DestroyVideoSessionKHR -
vkDestroyVideoSessionKHR
public static void vkDestroyVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, @Nullable VkAllocationCallbacks pAllocator) Destroy video session object.C Specification
To destroy a video session, call:
void vkDestroyVideoSessionKHR( VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);Valid Usage
- All submitted commands that refer to
videoSessionmust have completed execution - If
VkAllocationCallbackswere provided whenvideoSessionwas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenvideoSessionwas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
videoSessionis notNULL_HANDLE,videoSessionmust be a validVkVideoSessionKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
videoSessionis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
videoSessionmust be externally synchronized
See Also
- Parameters:
device- the logical device that destroys the video session.videoSession- the video session to destroy.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
- All submitted commands that refer to
-
nvkGetVideoSessionMemoryRequirementsKHR
public static int nvkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, long pMemoryRequirementsCount, long pMemoryRequirements) Unsafe version of:GetVideoSessionMemoryRequirementsKHR- Parameters:
pMemoryRequirementsCount- a pointer to an integer related to the number of memory binding requirements available or queried, as described below.
-
vkGetVideoSessionMemoryRequirementsKHR
public static int vkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, IntBuffer pMemoryRequirementsCount, @Nullable VkVideoSessionMemoryRequirementsKHR.Buffer pMemoryRequirements) Get the memory requirements for a video session.C Specification
To determine the memory requirements for a video session object, call:
VkResult vkGetVideoSessionMemoryRequirementsKHR( VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);Description
If
pMemoryRequirementsisNULL, then the number of memory bindings required for the video session is returned inpMemoryRequirementsCount. Otherwise,pMemoryRequirementsCountmust point to a variable set by the application to the number of elements in thepMemoryRequirementsarray, and on return the variable is overwritten with the number of memory binding requirements actually written topMemoryRequirements. IfpMemoryRequirementsCountis less than the number of memory bindings required for the video session, then at mostpMemoryRequirementsCountelements will be written topMemoryRequirements, andINCOMPLETEwill be returned, instead ofSUCCESS, to indicate that not all required memory binding requirements were returned.Valid Usage (Implicit)
devicemust be a validVkDevicehandlevideoSessionmust be a validVkVideoSessionKHRhandlepMemoryRequirementsCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pMemoryRequirementsCountis not 0, andpMemoryRequirementsis notNULL,pMemoryRequirementsmust be a valid pointer to an array ofpMemoryRequirementsCountVkVideoSessionMemoryRequirementsKHRstructures videoSessionmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
See Also
- Parameters:
device- the logical device that owns the video session.videoSession- the video session to query.pMemoryRequirementsCount- a pointer to an integer related to the number of memory binding requirements available or queried, as described below.pMemoryRequirements-NULLor a pointer to an array ofVkVideoSessionMemoryRequirementsKHRstructures in which the memory binding requirements of the video session are returned.
-
nvkBindVideoSessionMemoryKHR
public static int nvkBindVideoSessionMemoryKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, int bindSessionMemoryInfoCount, long pBindSessionMemoryInfos) Unsafe version of:BindVideoSessionMemoryKHR- Parameters:
bindSessionMemoryInfoCount- the number of elements inpBindSessionMemoryInfos.
-
vkBindVideoSessionMemoryKHR
public static int vkBindVideoSessionMemoryKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, VkBindVideoSessionMemoryInfoKHR.Buffer pBindSessionMemoryInfos) Bind Video Memory.C Specification
To attach memory to a video session object, call:
VkResult vkBindVideoSessionMemoryKHR( VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);Description
The valid usage statements below refer to the
VkMemoryRequirementsstructure corresponding to a specific element ofpBindSessionMemoryInfos, which is defined as follows:- If the
memoryBindIndexmember of the element ofpBindSessionMemoryInfosin question matches thememoryBindIndexmember of one of the elements returned inpMemoryRequirementswhenGetVideoSessionMemoryRequirementsKHRis called with the samevideoSessionand withpMemoryRequirementsCountequal tobindSessionMemoryInfoCount, then thememoryRequirementsmember of that element ofpMemoryRequirementsis theVkMemoryRequirementsstructure corresponding to the element ofpBindSessionMemoryInfosin question. - Otherwise the element of
pBindSessionMemoryInfosin question is said to not have a correspondingVkMemoryRequirementsstructure.
Valid Usage
- The memory binding of
videoSessionidentified by thememoryBindIndexmember of any element ofpBindSessionMemoryInfosmust not already be backed by a memory object - The
memoryBindIndexmember of each element ofpBindSessionMemoryInfosmust be unique withinpBindSessionMemoryInfos - Each element of
pBindSessionMemoryInfosmust have a correspondingVkMemoryRequirementsstructure - If an element of
pBindSessionMemoryInfoshas a correspondingVkMemoryRequirementsstructure, then thememorymember of that element ofpBindSessionMemoryInfosmust have been allocated using one of the memory types allowed in thememoryTypeBitsmember of the correspondingVkMemoryRequirementsstructure - If an element of
pBindSessionMemoryInfoshas a correspondingVkMemoryRequirementsstructure, then thememoryOffsetmember of that element ofpBindSessionMemoryInfosmust be an integer multiple of thealignmentmember of the correspondingVkMemoryRequirementsstructure - If an element of
pBindSessionMemoryInfoshas a correspondingVkMemoryRequirementsstructure, then thememorySizemember of that element ofpBindSessionMemoryInfosmust equal thesizemember of the correspondingVkMemoryRequirementsstructure
Valid Usage (Implicit)
devicemust be a validVkDevicehandlevideoSessionmust be a validVkVideoSessionKHRhandlepBindSessionMemoryInfosmust be a valid pointer to an array ofbindSessionMemoryInfoCountvalidVkBindVideoSessionMemoryInfoKHRstructuresbindSessionMemoryInfoCountmust be greater than 0videoSessionmust have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
videoSessionmust be externally synchronized
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that owns the video session.videoSession- the video session to be bound with device memory.pBindSessionMemoryInfos- a pointer to an array ofbindSessionMemoryInfoCountVkBindVideoSessionMemoryInfoKHRstructures specifying memory regions to be bound to specific memory bindings of the video session.
- If the
-
nvkCreateVideoSessionParametersKHR
public static int nvkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pVideoSessionParameters) Unsafe version of:CreateVideoSessionParametersKHR -
vkCreateVideoSessionParametersKHR
public static int vkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionParametersCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pVideoSessionParameters) Creates video session parameters object.C Specification
To create a video session parameters object, call:
VkResult vkCreateVideoSessionParametersKHR( VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);Description
The resulting video session parameters object is said to be created with the video codec operation
pCreateInfo→videoSessionwas created with.Video session parameters objects created with an encode operation are always created with respect to a video encode quality level. By default, the created video session parameters objects are created with quality level zero, unless otherwise specified by including a
VkVideoEncodeQualityLevelInfoKHRstructure in thepCreateInfo→pNextchain, in which case the video session parameters object is created with the quality level specified inVkVideoEncodeQualityLevelInfoKHR::qualityLevel.If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then it will be used as a template for constructing the new video session parameters object. This happens by first adding any parameters according to the additional creation parameters provided in thepCreateInfo→pNextchain, followed by adding any parameters from the template object that have a key that does not match the key of any of the already added parameters.For video session parameters objects created with an encode operation, the template object specified in
pCreateInfo→videoSessionParametersTemplatemust have been created with the same video encode quality level as the newly created object.Note
This means that codec-specific parameters stored in video session parameters objects can only be reused across different video encode quality levels by re-specifying them, as previously created video session parameters against other quality levels cannot be used as template because the original codec-specific parameters (before the implementation may have applied parameter overrides) may no longer be available in them for the purposes of constructing the derived object.
Video session parameters objects are only compatible with quantization maps if they are created with
pCreateInfo→flagsincludingVIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR.Video session parameters objects created with
VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHRagainst a video session object that was created withVIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHRorVIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHRare created with a specific compatible quantization map texel size specified in thequantizationMapTexelSizemember of theVkVideoEncodeQuantizationMapSessionParametersCreateInfoKHRstructure included in thepNextchain ofpCreateInfo.Note
This means that the quantization map texel size that such a video session parameters object is compatible with is fixed for the lifetime of the object. Applications have to create separate video session parameters objects to use different quantization map texel sizes with a single video session object. This is necessary because the used quantization map texel size may affect the parameter overrides the implementation has to perform and thus the final values of the used codec-specific parameters.
For video session parameters objects created with
VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR, the template object specified inpCreateInfo→videoSessionParametersTemplatemust also have been created withVIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHRand the same compatible quantization map texel size specified inVkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR::quantizationMapTexelSize.Note
This means that codec-specific parameters stored in video session parameters objects can only be reused with different quantization map texel sizes by re-specifying them, as previously created video session parameters against other quantization map texel sizes cannot be used as template because the original codec-specific parameters (before the implementation may have applied parameter overrides) may no longer be available in them for the purposes of constructing the derived object.
For video session parameters objects created without
VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR, the template object specified inpCreateInfo→videoSessionParametersTemplatemust also have been created withoutVIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR.If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the created video session parameters object will initially contain the following sets of parameter entries:StdVideoH264SequenceParameterSetstructures representing H.264 SPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoDecodeH264SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH264SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH264SequenceParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the sameseq_parameter_set_id.
- If the
StdVideoH264PictureParameterSetstructures representing H.264 PPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoDecodeH264SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH264PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH264PictureParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the sameseq_parameter_set_idandpic_parameter_set_id.
- If the
If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the created video session parameters object will initially contain the following sets of parameter entries:StdVideoH265VideoParameterSetstructures representing H.265 VPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoDecodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265VideoParameterSetentries specified inpParametersAddInfo→pStdVPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265VideoParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samevps_video_parameter_set_id.
- If the
StdVideoH265SequenceParameterSetstructures representing H.265 SPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoDecodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265SequenceParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samesps_video_parameter_set_idandsps_seq_parameter_set_id.
- If the
StdVideoH265PictureParameterSetstructures representing H.265 PPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoDecodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265PictureParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samesps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_id.
- If the
If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the created video session parameters object will contain a single AV1 sequence header represented by aStdVideoAV1SequenceHeaderstructure specified through thepStdSequenceHeadermember of theVkVideoDecodeAV1SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain. As such video session parameters objects can only contain a single AV1 sequence header, it is not possible to use a previously created object as a template or subsequently update the created video session parameters object.If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the created video session parameters object will initially contain the following sets of parameter entries:StdVideoH264SequenceParameterSetstructures representing H.264 SPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoEncodeH264SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH264SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH264SequenceParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the sameseq_parameter_set_id.
- If the
StdVideoH264PictureParameterSetstructures representing H.264 PPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoEncodeH264SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH264PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH264PictureParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the sameseq_parameter_set_idandpic_parameter_set_id.
- If the
If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the created video session parameters object will initially contain the following sets of parameter entries:StdVideoH265VideoParameterSetstructures representing H.265 VPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoEncodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265VideoParameterSetentries specified inpParametersAddInfo→pStdVPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265VideoParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samevps_video_parameter_set_id.
- If the
StdVideoH265SequenceParameterSetstructures representing H.265 SPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoEncodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265SequenceParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samesps_video_parameter_set_idandsps_seq_parameter_set_id.
- If the
StdVideoH265PictureParameterSetstructures representing H.265 PPS entries, as follows:- If the
pParametersAddInfomember of theVkVideoEncodeH265SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain is notNULL, then the set ofStdVideoH265PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added first; - If
pCreateInfo→videoSessionParametersTemplateis notNULL_HANDLE, then eachStdVideoH265PictureParameterSetentry stored in it is copied to the created video session parameters object if the created object does not already contain such an entry with the samesps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_id.
- If the
If
pCreateInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then the created video session parameters object will contain a single AV1 sequence header specified through the members of theVkVideoEncodeAV1SessionParametersCreateInfoKHRstructure provided in thepCreateInfo→pNextchain. As such video session parameters objects can only contain a single AV1 sequence header, it is not possible to use a previously created object as a template or subsequently update the created video session parameters object.In case of video session parameters objects created with a video encode operation, implementations may return the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror if any of the specified Video Std parameters do not adhere to the syntactic or semantic requirements of the used video compression standard, or if values derived from parameters according to the rules defined by the used video compression standard do not adhere to the capabilities of the video compression standard or the implementation.Note
Applications should not rely on the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror being returned by any command as a means to verify Video Std parameters, as implementations are not required to report the error in any specific set of cases.Valid Usage (Implicit)
devicemust be a validVkDevicehandlepCreateInfomust be a valid pointer to a validVkVideoSessionParametersCreateInfoKHRstructure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pVideoSessionParametersmust be a valid pointer to aVkVideoSessionParametersKHRhandle
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkAllocationCallbacks,VkVideoSessionParametersCreateInfoKHR- Parameters:
device- the logical device that creates the video session parameters object.pCreateInfo- a pointer toVkVideoSessionParametersCreateInfoKHRstructure containing parameters to be used to create the video session parameters object.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pVideoSessionParameters- a pointer to aVkVideoSessionParametersKHRhandle in which the resulting video session parameters object is returned.
-
nvkUpdateVideoSessionParametersKHR
public static int nvkUpdateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, long pUpdateInfo) Unsafe version of:UpdateVideoSessionParametersKHR -
vkUpdateVideoSessionParametersKHR
public static int vkUpdateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, VkVideoSessionParametersUpdateInfoKHR pUpdateInfo) Update video session parameters object.C Specification
To update video session parameters object with new parameters, call:
VkResult vkUpdateVideoSessionParametersKHR( VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);Description
After a successful call to this command, the update sequence counter of
videoSessionParametersis changed to the value specified inpUpdateInfo→updateSequenceCount.Note
As each update issued to a video session parameters object needs to specify the next available update sequence count value, concurrent updates of the same video session parameters object are inherently disallowed. However, recording video coding operations to command buffers referring to parameters previously added to the video session parameters object is allowed, even if there is a concurrent update in progress adding some new entries to the object.
If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHRand thepUpdateInfo→pNextchain includes aVkVideoDecodeH264SessionParametersAddInfoKHRstructure, then this command adds the following parameter entries tovideoSessionParameters:- The H.264 SPS entries specified in
VkVideoDecodeH264SessionParametersAddInfoKHR::pStdSPSs. - The H.264 PPS entries specified in
VkVideoDecodeH264SessionParametersAddInfoKHR::pStdPPSs.
If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHRand thepUpdateInfo→pNextchain includes aVkVideoDecodeH265SessionParametersAddInfoKHRstructure, then this command adds the following parameter entries tovideoSessionParameters:- The H.265 VPS entries specified in
VkVideoDecodeH265SessionParametersAddInfoKHR::pStdVPSs. - The H.265 SPS entries specified in
VkVideoDecodeH265SessionParametersAddInfoKHR::pStdSPSs. - The H.265 PPS entries specified in
VkVideoDecodeH265SessionParametersAddInfoKHR::pStdPPSs.
If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRand thepUpdateInfo→pNextchain includes aVkVideoEncodeH264SessionParametersAddInfoKHRstructure, then this command adds the following parameter entries tovideoSessionParameters:- The H.264 SPS entries specified in
VkVideoEncodeH264SessionParametersAddInfoKHR::pStdSPSs. - The H.264 PPS entries specified in
VkVideoEncodeH264SessionParametersAddInfoKHR::pStdPPSs.
If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepUpdateInfo→pNextchain includes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, then this command adds the following parameter entries tovideoSessionParameters:- The H.265 VPS entries specified in
VkVideoEncodeH265SessionParametersAddInfoKHR::pStdVPSs. - The H.265 SPS entries specified in
VkVideoEncodeH265SessionParametersAddInfoKHR::pStdSPSs. - The H.265 PPS entries specified in
VkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs.
In case of video session parameters objects created with a video encode operation, implementations may return the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror if any of the specified Video Std parameters do not adhere to the syntactic or semantic requirements of the used video compression standard, or if values derived from parameters according to the rules defined by the used video compression standard do not adhere to the capabilities of the video compression standard or the implementation.Note
Applications should not rely on the
ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRerror being returned by any command as a means to verify Video Std parameters, as implementations are not required to report the error in any specific set of cases.Valid Usage
pUpdateInfo→updateSequenceCountmust equal the current update sequence counter ofvideoSessionParametersplus one- If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoDecodeH264SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH264SequenceParameterSetentry withseq_parameter_set_idmatching any of the elements ofVkVideoDecodeH264SessionParametersAddInfoKHR::pStdSPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number ofStdVideoH264SequenceParameterSetentries already stored in it plus the value of thestdSPSCountmember of theVkVideoDecodeH264SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdSPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoDecodeH264SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH264PictureParameterSetentry with bothseq_parameter_set_idandpic_parameter_set_idmatching any of the elements ofVkVideoDecodeH264SessionParametersAddInfoKHR::pStdPPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number ofStdVideoH264PictureParameterSetentries already stored in it plus the value of thestdPPSCountmember of theVkVideoDecodeH264SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoDecodeH264SessionParametersCreateInfoKHR::maxStdPPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoDecodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265VideoParameterSetentry withvps_video_parameter_set_idmatching any of the elements ofVkVideoDecodeH265SessionParametersAddInfoKHR::pStdVPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number ofStdVideoH265VideoParameterSetentries already stored in it plus the value of thestdVPSCountmember of theVkVideoDecodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdVPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoDecodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265SequenceParameterSetentry with bothsps_video_parameter_set_idandsps_seq_parameter_set_idmatching any of the elements ofVkVideoDecodeH265SessionParametersAddInfoKHR::pStdSPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number ofStdVideoH265SequenceParameterSetentries already stored in it plus the value of thestdSPSCountmember of theVkVideoDecodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdSPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoDecodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265PictureParameterSetentry withsps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idall matching any of the elements ofVkVideoDecodeH265SessionParametersAddInfoKHR::pStdPPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number ofStdVideoH265PictureParameterSetentries already stored in it plus the value of thestdPPSCountmember of theVkVideoDecodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoDecodeH265SessionParametersCreateInfoKHR::maxStdPPSCountvideoSessionParameterswas created with videoSessionParametersmust not have been created with the video codec operationVIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR- If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH264SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH264SequenceParameterSetentry withseq_parameter_set_idmatching any of the elements ofVkVideoEncodeH264SessionParametersAddInfoKHR::pStdSPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number ofStdVideoH264SequenceParameterSetentries already stored in it plus the value of thestdSPSCountmember of theVkVideoEncodeH264SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoEncodeH264SessionParametersCreateInfoKHR::maxStdSPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH264SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH264PictureParameterSetentry with bothseq_parameter_set_idandpic_parameter_set_idmatching any of the elements ofVkVideoEncodeH264SessionParametersAddInfoKHR::pStdPPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number ofStdVideoH264PictureParameterSetentries already stored in it plus the value of thestdPPSCountmember of theVkVideoEncodeH264SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoEncodeH264SessionParametersCreateInfoKHR::maxStdPPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265VideoParameterSetentry withvps_video_parameter_set_idmatching any of the elements ofVkVideoEncodeH265SessionParametersAddInfoKHR::pStdVPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number ofStdVideoH265VideoParameterSetentries already stored in it plus the value of thestdVPSCountmember of theVkVideoEncodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdVPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265SequenceParameterSetentry with bothsps_video_parameter_set_idandsps_seq_parameter_set_idmatching any of the elements ofVkVideoEncodeH265SessionParametersAddInfoKHR::pStdSPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number ofStdVideoH265SequenceParameterSetentries already stored in it plus the value of thestdSPSCountmember of theVkVideoEncodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdSPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, thenvideoSessionParametersmust not already contain aStdVideoH265PictureParameterSetentry withsps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idall matching any of the elements ofVkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number ofStdVideoH265PictureParameterSetentries already stored in it plus the value of thestdPPSCountmember of theVkVideoEncodeH265SessionParametersAddInfoKHRstructure included in thepUpdateInfo→pNextchain must be less than or equal to theVkVideoEncodeH265SessionParametersCreateInfoKHR::maxStdPPSCountvideoSessionParameterswas created with - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, thennum_tile_columns_minus1must be less thanVkVideoEncodeH265CapabilitiesKHR::maxTiles.width, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profilevideoSessionParameterswas created with, for each element ofVkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs - If
videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand thepNextchain ofpUpdateInfoincludes aVkVideoEncodeH265SessionParametersAddInfoKHRstructure, thennum_tile_rows_minus1must be less thanVkVideoEncodeH265CapabilitiesKHR::maxTiles.height, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profilevideoSessionParameterswas created with, for each element ofVkVideoEncodeH265SessionParametersAddInfoKHR::pStdPPSs videoSessionParametersmust not have been created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR
Valid Usage (Implicit)
devicemust be a validVkDevicehandlevideoSessionParametersmust be a validVkVideoSessionParametersKHRhandlepUpdateInfomust be a valid pointer to a validVkVideoSessionParametersUpdateInfoKHRstructurevideoSessionParametersmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that updates the video session parameters.videoSessionParameters- the video session parameters object to update.pUpdateInfo- a pointer to aVkVideoSessionParametersUpdateInfoKHRstructure specifying the parameter update information.
- The H.264 SPS entries specified in
-
nvkDestroyVideoSessionParametersKHR
public static void nvkDestroyVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, long pAllocator) Unsafe version of:DestroyVideoSessionParametersKHR -
vkDestroyVideoSessionParametersKHR
public static void vkDestroyVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long videoSessionParameters, @Nullable VkAllocationCallbacks pAllocator) Destroy video session parameters object.C Specification
To destroy a video session parameters object, call:
void vkDestroyVideoSessionParametersKHR( VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);Valid Usage
- All submitted commands that refer to
videoSessionParametersmust have completed execution - If
VkAllocationCallbackswere provided whenvideoSessionParameterswas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenvideoSessionParameterswas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle- If
videoSessionParametersis notNULL_HANDLE,videoSessionParametersmust be a validVkVideoSessionParametersKHRhandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
videoSessionParametersis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
videoSessionParametersmust be externally synchronized
See Also
- Parameters:
device- the logical device that destroys the video session parameters object.videoSessionParameters- the video session parameters object to destroy.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
- All submitted commands that refer to
-
nvkCmdBeginVideoCodingKHR
public static void nvkCmdBeginVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pBeginInfo) Unsafe version of:CmdBeginVideoCodingKHR -
vkCmdBeginVideoCodingKHR
public static void vkCmdBeginVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoBeginCodingInfoKHR pBeginInfo) Begin video coding scope.C Specification
To begin a video coding scope, call:
void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);Description
After beginning a video coding scope, the video session object specified in
pBeginInfo→videoSessionis bound to the command buffer, and the command buffer is ready to record video coding operations. Similarly, ifpBeginInfo→videoSessionParametersis notNULL_HANDLE, it is also bound to the command buffer, and video coding operations can refer to the codec-specific parameters stored in it.This command also establishes the set of bound reference picture resources that can be used as reconstructed pictures or reference pictures within the video coding scope. Each element of this set consists of a video picture resource and the DPB slot index associated with it, if there is one.
The set of bound reference picture resources is immutable within a video coding scope, however, the DPB slot index associated with any of the bound reference picture resources can change during the video coding scope in response to video coding operations.
The
VkVideoReferenceSlotInfoKHRstructures provided as the elements ofpBeginInfo→pReferenceSlotsare interpreted by this command as follows:- If
slotIndexis non-negative andpPictureResourceis notNULL, then the video picture resource defined by theVkVideoPictureResourceInfoKHRstructure pointed to bypPictureResourceis added to the set of bound reference picture resources and is associated with the DPB slot index specified inslotIndex. - If
slotIndexis non-negative andpPictureResourceisNULL, then the DPB slot with indexslotIndexis deactivated by this command. - If
slotIndexis negative andpPictureResourceis notNULL, then the video picture resource defined by theVkVideoPictureResourceInfoKHRstructure pointed to bypPictureResourceis added to the set of bound reference picture resources without an associated DPB slot. Such a picture resource can be subsequently used as a reconstructed picture to associate it with a DPB slot. - If
slotIndexis negative andpPictureResourceisNULL, then the element is ignored.
Note
It is possible for multiple bound reference picture resources to be associated with the same DPB slot index, or for a single bound reference picture to refer to multiple separate reference pictures. For example, in case of an H.264 decode profile with interlaced frame support a single DPB slot can refer to two separate pictures for the top and bottom fields. Depending on the picture layout used by the H.264 decode profile, the following special cases may arise:
- If the picture layout is
VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR, then the top and bottom field pictures are physically co-located in the same video picture resource with even scanlines corresponding to the top field and odd scanlines corresponding to the bottom field, respectively. - If the picture layout is
VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR, then the top and bottom field pictures are stored in separate video picture resources (in separate subregions of the same image layer, in separate layers of the same image, or in entirely separate images), hence two elements ofVkVideoBeginCodingInfoKHR::pReferenceSlotscan contain the sameslotIndexbut specify different video picture resources in theirpPictureResourcemembers.
All non-negative
slotIndexvalues specified in the elements ofpBeginInfo→pReferenceSlotsmust identify DPB slots of the video session that are in the active state at the time this command is executed on the device.Note
The application does not have to specify an entry in
pBeginInfo→pReferenceSlotscorresponding to all active DPB slots of the video session, but only for those which are intended to be used in the video coding scope. This way the application can avoid any potential runtime cost associated with binding the corresponding picture resources to the command buffer.In case of a video encode session, the application is also responsible for providing information about the current rate control state configured for the video session by including an instance of the
VkVideoEncodeRateControlInfoKHRstructure in thepNextchain ofpBeginInfo. If noVkVideoEncodeRateControlInfoKHRis included, then the presence of an emptyVkVideoEncodeRateControlInfoKHRstructure is implied which indicates that the current rate control mode isVIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR. The specified state must match the effective rate control state configured for the video session at the time the recorded command is executed on the device.Note
Including an instance of the
VkVideoEncodeRateControlInfoKHRstructure in thepNextchain ofpBeginInfodoes not change the rate control state configured for the video session, but only specifies the expected rate control state configured at the time the recorded command is executed on the device which allows the implementation to have information about the configured rate control state at command buffer recording time. In order to change the current rate control state of a video session, the application has to issue an appropriateCmdControlVideoCodingKHRcommand as described in the Video Coding Control and Rate Control State sections.Valid Usage
- The
VkCommandPoolthatcommandBufferwas allocated from must support the video codec operationpBeginInfo→videoSessionwas created with, as returned byGetPhysicalDeviceQueueFamilyProperties2inVkQueueFamilyVideoPropertiesKHR::videoCodecOperations - There must be no active queries
- If
commandBufferis an unprotected command buffer andprotectedNoFaultis not supported, thenpBeginInfo→videoSessionmust not have been created withVIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR - If
commandBufferis a protected command buffer andprotectedNoFaultis not supported, thenpBeginInfo→videoSessionmust have been created withVIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR - If
commandBufferis an unprotected command buffer,protectedNoFaultis not supported, and thepPictureResourcemember of any element ofpBeginInfo→pReferenceSlotsis notNULL, thenpPictureResource→imageViewBindingfor that element must not specify an image view created from a protected image - If
commandBufferis a protected command bufferprotectedNoFaultis not supported, and thepPictureResourcemember of any element ofpBeginInfo→pReferenceSlotsis notNULL, thenpPictureResource→imageViewBindingfor that element must specify an image view created from a protected image - If the
slotIndexmember of any element ofpBeginInfo→pReferenceSlotsis not negative, then it must specify the index of a DPB slot that is in the active state inpBeginInfo→videoSessionat the time the command is executed on the device - Each video picture resource specified by any non-
NULLpPictureResourcemember specified in the elements ofpBeginInfo→pReferenceSlotsfor whichslotIndexis not negative must match one of the video picture resources currently associated with the DPB slot index ofpBeginInfo→videoSessionspecified byslotIndexat the time the command is executed on the device - If
pBeginInfo→videoSessionwas created with a video encode operation and thepNextchain ofpBeginInfodoes not include an instance of theVkVideoEncodeRateControlInfoKHRstructure, then the rate control mode configured forpBeginInfo→videoSessionat the time the command is executed on the device must beVIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR - If
pBeginInfo→videoSessionwas created with a video encode operation and thepNextchain ofpBeginInfoincludes an instance of theVkVideoEncodeRateControlInfoKHRstructure, then it must match the rate control state configured forpBeginInfo→videoSessionat the time the command is executed on the device - If
pBeginInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRorVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, andVkVideoEncodeH264CapabilitiesKHR::requiresGopRemainingFramesisTRUE, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile thepBeginInfo→videoSessionwas created with, then thepNextchain ofpBeginInfomust include an instance of theVkVideoEncodeH264GopRemainingFrameInfoKHRwith itsuseGopRemainingFramesmember set toTRUE - If
pBeginInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRorVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, andVkVideoEncodeH265CapabilitiesKHR::requiresGopRemainingFramesisTRUE, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile thepBeginInfo→videoSessionwas created with, then thepNextchain ofpBeginInfomust include an instance of theVkVideoEncodeH265GopRemainingFrameInfoKHRwith itsuseGopRemainingFramesmember set toTRUE - If
pBeginInfo→videoSessionwas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRorVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, andVkVideoEncodeAV1CapabilitiesKHR::requiresGopRemainingFramesisTRUE, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile thepBeginInfo→videoSessionwas created with, then thepNextchain ofpBeginInfomust include an instance of theVkVideoEncodeAV1GopRemainingFrameInfoKHRwith itsuseGopRemainingFramesmember set toTRUE
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepBeginInfomust be a valid pointer to a validVkVideoBeginCodingInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support decode, or encode operations - This command must only be called outside of a render pass instance
- This command must only be called outside of a video coding scope
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Outside Outside Decode Encode Action State See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pBeginInfo- a pointer to aVkVideoBeginCodingInfoKHRstructure specifying the parameters of the video coding scope, including the video session and video session parameters object to use.
- If
-
nvkCmdEndVideoCodingKHR
public static void nvkCmdEndVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pEndCodingInfo) Unsafe version of:CmdEndVideoCodingKHR -
vkCmdEndVideoCodingKHR
public static void vkCmdEndVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoEndCodingInfoKHR pEndCodingInfo) End video coding scope.C Specification
To end a video coding scope, call:
void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);Description
After ending a video coding scope, the video session object, the optional video session parameters object, and all reference picture resources previously bound by the corresponding
CmdBeginVideoCodingKHRcommand are unbound.Valid Usage
- There must be no active queries
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepEndCodingInfomust be a valid pointer to a validVkVideoEndCodingInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support decode, or encode operations - This command must only be called outside of a render pass instance
- This command must only be called inside of a video coding scope
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Outside Inside Decode Encode Action State See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pEndCodingInfo- a pointer to aVkVideoEndCodingInfoKHRstructure specifying the parameters for ending the video coding scope.
-
nvkCmdControlVideoCodingKHR
public static void nvkCmdControlVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pCodingControlInfo) Unsafe version of:CmdControlVideoCodingKHR -
vkCmdControlVideoCodingKHR
public static void vkCmdControlVideoCodingKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoCodingControlInfoKHR pCodingControlInfo) Control video coding parameters.C Specification
To apply dynamic controls to the bound video session object, call:
void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);Description
The control parameters provided in this call are applied to the video session at the time the command executes on the device and are in effect until a subsequent call to this command with the same video session bound changes the corresponding control parameters.
A newly created video session must be reset before performing video coding operations using it by including
VIDEO_CODING_CONTROL_RESET_BIT_KHRinpCodingControlInfo→flags. The reset operation also returns all DPB slots of the video session to the inactive state. Correspondingly, any DPB slot index associated with the bound reference picture resources is removed.For encode sessions, the reset operation returns rate control configuration to implementation default settings and sets the video encode quality level to zero.
After video coding operations are performed using a video session, the reset operation can be used to return the video session to the same initial state as after the reset of a newly created video session. This can be used, for example, when different video sequences are needed to be processed with the same video session object.
If
pCodingControlInfo→flagsincludesVIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the command replaces the rate control configuration maintained by the video session with the configuration specified in theVkVideoEncodeRateControlInfoKHRstructure included in thepCodingControlInfo→pNextchain.If
pCodingControlInfo→flagsincludesVIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR, then the command changes the current video encode quality level to the value specified in thequalityLevelmember of theVkVideoEncodeQualityLevelInfoKHRstructure included in thepCodingControlInfo→pNextchain.Valid Usage
- If
pCodingControlInfo→flagsdoes not includeVIDEO_CODING_CONTROL_RESET_BIT_KHR, then the bound video session must not be in uninitialized state at the time the command is executed on the device - If the bound video session was not created with an encode operation, then
pCodingControlInfo→flagsmust not includeVIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHRorVIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepCodingControlInfomust be a valid pointer to a validVkVideoCodingControlInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support decode, or encode operations - This command must only be called outside of a render pass instance
- This command must only be called inside of a video coding scope
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Outside Inside Decode Encode Action See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pCodingControlInfo- a pointer to aVkVideoCodingControlInfoKHRstructure specifying the control parameters.
- If
-
vkGetPhysicalDeviceVideoFormatPropertiesKHR
public static int vkGetPhysicalDeviceVideoFormatPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoFormatInfoKHR pVideoFormatInfo, int[] pVideoFormatPropertyCount, @Nullable VkVideoFormatPropertiesKHR.Buffer pVideoFormatProperties) Array version of:GetPhysicalDeviceVideoFormatPropertiesKHR -
vkCreateVideoSessionKHR
public static int vkCreateVideoSessionKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pVideoSession) Array version of:CreateVideoSessionKHR -
vkGetVideoSessionMemoryRequirementsKHR
public static int vkGetVideoSessionMemoryRequirementsKHR(org.lwjgl.vulkan.VkDevice device, long videoSession, int[] pMemoryRequirementsCount, @Nullable VkVideoSessionMemoryRequirementsKHR.Buffer pMemoryRequirements) Array version of:GetVideoSessionMemoryRequirementsKHR -
vkCreateVideoSessionParametersKHR
public static int vkCreateVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoSessionParametersCreateInfoKHR pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pVideoSessionParameters) Array version of:CreateVideoSessionParametersKHR
-