Class KHRVideoEncodeQueue
VK_KHR_video_queue extension by adding common APIs specific to video encoding and thus enabling implementations to expose queue families supporting video encode operations.
More specifically, it adds video encode specific capabilities and a new command buffer command that allows recording video encode operations against a video session.
This extension is to be used in conjunction with other codec specific video encode extensions that enable encoding video sequences of specific video compression standards.
- Name String
VK_KHR_video_encode_queue- Extension Type
- Device extension
- Registered Extension Number
- 300
- Revision
- 12
- Extension and Version Dependencies
VK_KHR_video_queueandVK_KHR_synchronization2or Version 1.3- API Interactions
- Interacts with VK_VERSION_1_3
- Interacts with VK_KHR_format_feature_flags2
- Contact
- Ahmed Abdelkhalek aabdelkh
- Extension Proposal
- VK_KHR_video_encode_queue
Other Extension Metadata
- Last Modified Date
- 2023-12-05
- IP Status
- No known IP claims.
- Contributors
- Ahmed Abdelkhalek, AMD
- Damien Kessler, NVIDIA
- George Hao, AMD
- Jake Beju, AMD
- Peter Fang, AMD
- Piers Daniell, NVIDIA
- Srinath Kumarapuram, NVIDIA
- Thomas J. Meier, NVIDIA
- Tony Zlatinski, NVIDIA
- Ravi Chaudhary, NVIDIA
- Yang Liu, AMD
- Daniel Rakos, RasterGrid
- Ping Liu, Intel
- Aidan Fabius, Core Avionics & Industrial Inc.
- Lynne Iribarren, Independent
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longExtendsVkAccessFlagBits2.static final longExtendsVkAccessFlagBits2.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intExtendsVkResult.static final longExtendsVkFormatFeatureFlagBits2.static final longExtendsVkFormatFeatureFlagBits2.static final intExtendsVkFormatFeatureFlagBits.static final intExtendsVkFormatFeatureFlagBits.static final intExtendsVkImageLayout.static final intExtendsVkImageLayout.static final intExtendsVkImageLayout.static final intExtendsVkImageUsageFlagBits.static final intExtendsVkImageUsageFlagBits.static final intExtendsVkImageUsageFlagBits.static final StringThe extension name.static final intThe extension specification version.static final longExtendsVkPipelineStageFlagBits2.static final intExtendsVkQueryResultStatusKHR.static final intExtendsVkQueryType.static final intExtendsVkQueueFlagBits.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 intExtendsVkVideoCodingControlFlagBitsKHR.static final intExtendsVkVideoCodingControlFlagBitsKHR.static final intVkVideoEncodeCapabilityFlagBitsKHR - Video encode capability flagsstatic final intVkVideoEncodeCapabilityFlagBitsKHR - Video encode capability flagsstatic final intVkVideoEncodeContentFlagBitsKHR - Video encode content flagsstatic final intVkVideoEncodeContentFlagBitsKHR - Video encode content flagsstatic final intVkVideoEncodeContentFlagBitsKHR - Video encode content flagsstatic final intVkVideoEncodeContentFlagBitsKHR - Video encode content flagsstatic final intVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesstatic final intVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesstatic final intVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesstatic final intVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesstatic final intVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesstatic final intVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesstatic final intVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesstatic final intVkVideoEncodeTuningModeKHR - Video encode tuning modestatic final intVkVideoEncodeTuningModeKHR - Video encode tuning modestatic final intVkVideoEncodeTuningModeKHR - Video encode tuning modestatic final intVkVideoEncodeTuningModeKHR - Video encode tuning modestatic final intVkVideoEncodeTuningModeKHR - Video encode tuning modestatic final intVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsstatic final intVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsstatic final intVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsstatic final intVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsstatic final intVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsstatic final intExtendsVkVideoSessionCreateFlagBitsKHR. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkCmdEncodeVideoKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pEncodeInfo) Unsafe version of:CmdEncodeVideoKHRstatic intnvkGetEncodedVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long pVideoSessionParametersInfo, long pFeedbackInfo, long pDataSize, long pData) Unsafe version of:GetEncodedVideoSessionParametersKHRstatic intnvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pQualityLevelInfo, long pQualityLevelProperties) Unsafe version of:GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHRstatic voidvkCmdEncodeVideoKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoEncodeInfoKHR pEncodeInfo) Launch video encode operations.static intvkGetEncodedVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoEncodeSessionParametersGetInfoKHR pVideoSessionParametersInfo, @Nullable VkVideoEncodeSessionParametersFeedbackInfoKHR pFeedbackInfo, org.lwjgl.PointerBuffer pDataSize, @Nullable ByteBuffer pData) Get encoded parameter sets from a video session parameters object.static intvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR pQualityLevelProperties) Query video encode quality level properties.
-
Field Details
-
VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION
public static final int VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
The extension name.- See Also:
-
VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
public static final long VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHRExtendsVkPipelineStageFlagBits2.- See Also:
-
VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR
public static final long VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHRExtendsVkAccessFlagBits2.Enum values:
- See Also:
-
VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR
public static final long VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHRExtendsVkAccessFlagBits2.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR
public static final int VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
public static final int VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHRExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHRSTRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHRSTRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHRSTRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR
- See Also:
-
VK_QUEUE_VIDEO_ENCODE_BIT_KHR
public static final int VK_QUEUE_VIDEO_ENCODE_BIT_KHRExtendsVkQueueFlagBits.- See Also:
-
VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR
public static final int VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHRExtendsVkVideoCodingControlFlagBitsKHR.Enum values:
- See Also:
-
VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR
public static final int VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHRExtendsVkVideoCodingControlFlagBitsKHR.Enum values:
- See Also:
-
VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR
public static final int VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHRExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
public static final int VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHRExtendsVkBufferUsageFlagBits.Enum values:
- See Also:
-
VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
public static final int VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHRExtendsVkImageUsageFlagBits.Enum values:
- See Also:
-
VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
public static final int VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHRExtendsVkImageUsageFlagBits.Enum values:
- See Also:
-
VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
public static final int VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHRExtendsVkImageUsageFlagBits.Enum values:
- See Also:
-
VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR
public static final int VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHRExtendsVkFormatFeatureFlagBits.Enum values:
- See Also:
-
VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
public static final int VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHRExtendsVkFormatFeatureFlagBits.Enum values:
- See Also:
-
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR
public static final int VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHRExtendsVkVideoSessionCreateFlagBitsKHR.- See Also:
-
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR
public static final int VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHRExtendsVkImageLayout.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR
public static final int VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHRExtendsVkImageLayout.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR
public static final int VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHRExtendsVkImageLayout.Enum values:
- See Also:
-
VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR
public static final int VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHRExtendsVkQueryType.- See Also:
-
VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR
public static final int VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRExtendsVkQueryResultStatusKHR.- See Also:
-
VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR
public static final int VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHRExtendsVkResult.- See Also:
-
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR
public static final long VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHRExtendsVkFormatFeatureFlagBits2.Enum values:
- See Also:
-
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR
public static final long VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHRExtendsVkFormatFeatureFlagBits2.Enum values:
- See Also:
-
VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR
public static final int VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHRVkVideoEncodeCapabilityFlagBitsKHR - Video encode capability flagsDescription
VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHRspecifies that the implementation supports the use ofVkVideoEncodeInfoKHR::precedingExternallyEncodedBytes.VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRspecifies that the implementation is able to detect and report when the destination video bitstream buffer range provided by the application is not sufficiently large to fit the encoded bitstream data produced by a video encode operation by reporting theQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRquery result status code.Note
Some implementations may not be able to reliably detect insufficient bitstream buffer range conditions in all situations. Such implementations will not report support for the
VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRencode capability flag for the video profile, but may still report theQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRquery result status code in certain cases. Applications should always check for the specific query result status codeQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHReven when this encode capability flag is not supported by the implementation for the video profile in question. However, applications must not assume that a different negative query result status code indicating an unsuccessful completion of a video encode operation is not the result of an insufficient bitstream buffer condition unless this encode capability flag is supported.
- See Also:
-
VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR
public static final int VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRVkVideoEncodeCapabilityFlagBitsKHR - Video encode capability flagsDescription
VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHRspecifies that the implementation supports the use ofVkVideoEncodeInfoKHR::precedingExternallyEncodedBytes.VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRspecifies that the implementation is able to detect and report when the destination video bitstream buffer range provided by the application is not sufficiently large to fit the encoded bitstream data produced by a video encode operation by reporting theQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRquery result status code.Note
Some implementations may not be able to reliably detect insufficient bitstream buffer range conditions in all situations. Such implementations will not report support for the
VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHRencode capability flag for the video profile, but may still report theQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHRquery result status code in certain cases. Applications should always check for the specific query result status codeQUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHReven when this encode capability flag is not supported by the implementation for the video profile in question. However, applications must not assume that a different negative query result status code indicating an unsuccessful completion of a video encode operation is not the result of an insufficient bitstream buffer condition unless this encode capability flag is supported.
- See Also:
-
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR
public static final int VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesDescription
VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRspecifies the use of implementation-specific rate control.VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHRspecifies that rate control is disabled and the application will specify per-operation rate control parameters controlling the encoding quality. In this mode implementations will encode pictures independently of the output bitrate of prior video encode operations.- When using an H.264 encode profile, implementations will use the QP value specified in
VkVideoEncodeH264NaluSliceInfoKHR::constantQpto control the quality of the encoded picture. - When using an H.265 encode profile, implementations will use the QP value specified in
VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpto control the quality of the encoded picture. - When using an AV1 encode profile, implementations will use the quantizer index value specified in
VkVideoEncodeAV1PictureInfoKHR::constantQIndexto control the quality of the encoded picture.
- When using an H.264 encode profile, implementations will use the QP value specified in
VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHRspecifies the use of constant bitrate (CBR) rate control mode. In this mode the implementation will attempt to produce the encoded bitstream at a constant bitrate while conforming to the constraints of other rate control parameters.VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHRspecifies the use of variable bitrate (VBR) rate control mode. In this mode the implementation will produce the encoded bitstream at a variable bitrate according to the constraints of other rate control parameters.
See Also
VkVideoEncodeQualityLevelPropertiesKHR,VkVideoEncodeRateControlInfoKHR- See Also:
-
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR
public static final int VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHRVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesDescription
VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRspecifies the use of implementation-specific rate control.VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHRspecifies that rate control is disabled and the application will specify per-operation rate control parameters controlling the encoding quality. In this mode implementations will encode pictures independently of the output bitrate of prior video encode operations.- When using an H.264 encode profile, implementations will use the QP value specified in
VkVideoEncodeH264NaluSliceInfoKHR::constantQpto control the quality of the encoded picture. - When using an H.265 encode profile, implementations will use the QP value specified in
VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpto control the quality of the encoded picture. - When using an AV1 encode profile, implementations will use the quantizer index value specified in
VkVideoEncodeAV1PictureInfoKHR::constantQIndexto control the quality of the encoded picture.
- When using an H.264 encode profile, implementations will use the QP value specified in
VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHRspecifies the use of constant bitrate (CBR) rate control mode. In this mode the implementation will attempt to produce the encoded bitstream at a constant bitrate while conforming to the constraints of other rate control parameters.VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHRspecifies the use of variable bitrate (VBR) rate control mode. In this mode the implementation will produce the encoded bitstream at a variable bitrate according to the constraints of other rate control parameters.
See Also
VkVideoEncodeQualityLevelPropertiesKHR,VkVideoEncodeRateControlInfoKHR- See Also:
-
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR
public static final int VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHRVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesDescription
VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRspecifies the use of implementation-specific rate control.VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHRspecifies that rate control is disabled and the application will specify per-operation rate control parameters controlling the encoding quality. In this mode implementations will encode pictures independently of the output bitrate of prior video encode operations.- When using an H.264 encode profile, implementations will use the QP value specified in
VkVideoEncodeH264NaluSliceInfoKHR::constantQpto control the quality of the encoded picture. - When using an H.265 encode profile, implementations will use the QP value specified in
VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpto control the quality of the encoded picture. - When using an AV1 encode profile, implementations will use the quantizer index value specified in
VkVideoEncodeAV1PictureInfoKHR::constantQIndexto control the quality of the encoded picture.
- When using an H.264 encode profile, implementations will use the QP value specified in
VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHRspecifies the use of constant bitrate (CBR) rate control mode. In this mode the implementation will attempt to produce the encoded bitstream at a constant bitrate while conforming to the constraints of other rate control parameters.VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHRspecifies the use of variable bitrate (VBR) rate control mode. In this mode the implementation will produce the encoded bitstream at a variable bitrate according to the constraints of other rate control parameters.
See Also
VkVideoEncodeQualityLevelPropertiesKHR,VkVideoEncodeRateControlInfoKHR- See Also:
-
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
public static final int VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHRVkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modesDescription
VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRspecifies the use of implementation-specific rate control.VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHRspecifies that rate control is disabled and the application will specify per-operation rate control parameters controlling the encoding quality. In this mode implementations will encode pictures independently of the output bitrate of prior video encode operations.- When using an H.264 encode profile, implementations will use the QP value specified in
VkVideoEncodeH264NaluSliceInfoKHR::constantQpto control the quality of the encoded picture. - When using an H.265 encode profile, implementations will use the QP value specified in
VkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpto control the quality of the encoded picture. - When using an AV1 encode profile, implementations will use the quantizer index value specified in
VkVideoEncodeAV1PictureInfoKHR::constantQIndexto control the quality of the encoded picture.
- When using an H.264 encode profile, implementations will use the QP value specified in
VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHRspecifies the use of constant bitrate (CBR) rate control mode. In this mode the implementation will attempt to produce the encoded bitstream at a constant bitrate while conforming to the constraints of other rate control parameters.VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHRspecifies the use of variable bitrate (VBR) rate control mode. In this mode the implementation will produce the encoded bitstream at a variable bitrate according to the constraints of other rate control parameters.
See Also
VkVideoEncodeQualityLevelPropertiesKHR,VkVideoEncodeRateControlInfoKHR- See Also:
-
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR
public static final int VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHRVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesDescription
VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHRspecifies that queries managed by the pool will capture the byte offset of the bitstream data written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBufferrelative to the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset. For the first video encode operation issued by any video encode command, this value will always be zero, meaning that bitstream data is always written to the buffer specified inVkVideoEncodeInfoKHR::dstBufferstarting from the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset.VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHRspecifies that queries managed by the pool will capture the number of bytes written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffer.VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHRspecifies that queries managed by the pool will capture a boolean value indicating that the data written to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffercontains overridden parameters.
When retrieving the results of video encode feedback queries, the values corresponding to each enabled video encode feedback are written in the order of the bits defined above, followed by an optional value indicating availability or result status if
QUERY_RESULT_WITH_AVAILABILITY_BITorQUERY_RESULT_WITH_STATUS_BIT_KHRis specified, respectively.If the result status of a video encode feedback query is negative, then the results of all enabled video encode feedback values will be undefined.
Note
Applications should always specify
QUERY_RESULT_WITH_STATUS_BIT_KHRwhen retrieving the results of video encode feedback queries and ignore such undefined video encode feedback values for any unsuccessfully completed video encode operations.- See Also:
-
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR
public static final int VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHRVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesDescription
VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHRspecifies that queries managed by the pool will capture the byte offset of the bitstream data written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBufferrelative to the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset. For the first video encode operation issued by any video encode command, this value will always be zero, meaning that bitstream data is always written to the buffer specified inVkVideoEncodeInfoKHR::dstBufferstarting from the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset.VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHRspecifies that queries managed by the pool will capture the number of bytes written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffer.VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHRspecifies that queries managed by the pool will capture a boolean value indicating that the data written to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffercontains overridden parameters.
When retrieving the results of video encode feedback queries, the values corresponding to each enabled video encode feedback are written in the order of the bits defined above, followed by an optional value indicating availability or result status if
QUERY_RESULT_WITH_AVAILABILITY_BITorQUERY_RESULT_WITH_STATUS_BIT_KHRis specified, respectively.If the result status of a video encode feedback query is negative, then the results of all enabled video encode feedback values will be undefined.
Note
Applications should always specify
QUERY_RESULT_WITH_STATUS_BIT_KHRwhen retrieving the results of video encode feedback queries and ignore such undefined video encode feedback values for any unsuccessfully completed video encode operations.- See Also:
-
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR
public static final int VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHRVkVideoEncodeFeedbackFlagBitsKHR - Bits specifying queried video encode feedback valuesDescription
VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHRspecifies that queries managed by the pool will capture the byte offset of the bitstream data written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBufferrelative to the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset. For the first video encode operation issued by any video encode command, this value will always be zero, meaning that bitstream data is always written to the buffer specified inVkVideoEncodeInfoKHR::dstBufferstarting from the offset specified inVkVideoEncodeInfoKHR::dstBufferOffset.VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHRspecifies that queries managed by the pool will capture the number of bytes written by the video encode operation to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffer.VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHRspecifies that queries managed by the pool will capture a boolean value indicating that the data written to the bitstream buffer specified inVkVideoEncodeInfoKHR::dstBuffercontains overridden parameters.
When retrieving the results of video encode feedback queries, the values corresponding to each enabled video encode feedback are written in the order of the bits defined above, followed by an optional value indicating availability or result status if
QUERY_RESULT_WITH_AVAILABILITY_BITorQUERY_RESULT_WITH_STATUS_BIT_KHRis specified, respectively.If the result status of a video encode feedback query is negative, then the results of all enabled video encode feedback values will be undefined.
Note
Applications should always specify
QUERY_RESULT_WITH_STATUS_BIT_KHRwhen retrieving the results of video encode feedback queries and ignore such undefined video encode feedback values for any unsuccessfully completed video encode operations.- See Also:
-
VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR
public static final int VK_VIDEO_ENCODE_USAGE_DEFAULT_KHRVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsDescription
VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRspecifies that video encoding is intended to be used in conjunction with video decoding to transcode a video bitstream with the same and/or different codecs.VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRspecifies that video encoding is intended to be used to produce a video bitstream that is expected to be sent as a continuous flow over network.VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRspecifies that video encoding is intended to be used for real-time recording for offline consumption.VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRspecifies that video encoding is intended to be used in a video conferencing scenario.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular use case.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR
public static final int VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsDescription
VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRspecifies that video encoding is intended to be used in conjunction with video decoding to transcode a video bitstream with the same and/or different codecs.VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRspecifies that video encoding is intended to be used to produce a video bitstream that is expected to be sent as a continuous flow over network.VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRspecifies that video encoding is intended to be used for real-time recording for offline consumption.VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRspecifies that video encoding is intended to be used in a video conferencing scenario.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular use case.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR
public static final int VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsDescription
VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRspecifies that video encoding is intended to be used in conjunction with video decoding to transcode a video bitstream with the same and/or different codecs.VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRspecifies that video encoding is intended to be used to produce a video bitstream that is expected to be sent as a continuous flow over network.VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRspecifies that video encoding is intended to be used for real-time recording for offline consumption.VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRspecifies that video encoding is intended to be used in a video conferencing scenario.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular use case.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR
public static final int VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsDescription
VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRspecifies that video encoding is intended to be used in conjunction with video decoding to transcode a video bitstream with the same and/or different codecs.VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRspecifies that video encoding is intended to be used to produce a video bitstream that is expected to be sent as a continuous flow over network.VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRspecifies that video encoding is intended to be used for real-time recording for offline consumption.VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRspecifies that video encoding is intended to be used in a video conferencing scenario.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular use case.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR
public static final int VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRVkVideoEncodeUsageFlagBitsKHR - Video encode usage flagsDescription
VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHRspecifies that video encoding is intended to be used in conjunction with video decoding to transcode a video bitstream with the same and/or different codecs.VIDEO_ENCODE_USAGE_STREAMING_BIT_KHRspecifies that video encoding is intended to be used to produce a video bitstream that is expected to be sent as a continuous flow over network.VIDEO_ENCODE_USAGE_RECORDING_BIT_KHRspecifies that video encoding is intended to be used for real-time recording for offline consumption.VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHRspecifies that video encoding is intended to be used in a video conferencing scenario.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular use case.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR
public static final int VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHRVkVideoEncodeContentFlagBitsKHR - Video encode content flagsDescription
VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHRspecifies that video encoding is intended to be used to encode camera content.VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHRspecifies that video encoding is intended to be used to encode desktop content.VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHRspecified that video encoding is intended to be used to encode rendered (e.g. game) content.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular content type.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR
public static final int VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHRVkVideoEncodeContentFlagBitsKHR - Video encode content flagsDescription
VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHRspecifies that video encoding is intended to be used to encode camera content.VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHRspecifies that video encoding is intended to be used to encode desktop content.VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHRspecified that video encoding is intended to be used to encode rendered (e.g. game) content.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular content type.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR
public static final int VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHRVkVideoEncodeContentFlagBitsKHR - Video encode content flagsDescription
VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHRspecifies that video encoding is intended to be used to encode camera content.VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHRspecifies that video encoding is intended to be used to encode desktop content.VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHRspecified that video encoding is intended to be used to encode rendered (e.g. game) content.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular content type.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR
public static final int VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHRVkVideoEncodeContentFlagBitsKHR - Video encode content flagsDescription
VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHRspecifies that video encoding is intended to be used to encode camera content.VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHRspecifies that video encoding is intended to be used to encode desktop content.VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHRspecified that video encoding is intended to be used to encode rendered (e.g. game) content.
Note
There are no restrictions on the combination of bits that can be specified by the application. However, applications should use reasonable combinations in order for the implementation to be able to select the most appropriate mode of operation for the particular content type.
Enum values:
- See Also:
-
VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR
public static final int VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRVkVideoEncodeTuningModeKHR - Video encode tuning modeDescription
VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRspecifies the default tuning mode.VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRspecifies that video encoding is tuned for high quality. When using this tuning mode, the implementation may compromise the latency of video encoding operations to improve quality.VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRspecifies that video encoding is tuned for low latency. When using this tuning mode, the implementation may compromise quality to increase the performance and lower the latency of video encode operations.VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRspecifies that video encoding is tuned for ultra-low latency. When using this tuning mode, the implementation may compromise quality to maximize the performance and minimize the latency of video encoding operations.VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRspecifies that video encoding is tuned for lossless encoding. When using this tuning mode, video encode operations produce lossless output.
See Also
- See Also:
-
VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR
public static final int VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRVkVideoEncodeTuningModeKHR - Video encode tuning modeDescription
VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRspecifies the default tuning mode.VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRspecifies that video encoding is tuned for high quality. When using this tuning mode, the implementation may compromise the latency of video encoding operations to improve quality.VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRspecifies that video encoding is tuned for low latency. When using this tuning mode, the implementation may compromise quality to increase the performance and lower the latency of video encode operations.VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRspecifies that video encoding is tuned for ultra-low latency. When using this tuning mode, the implementation may compromise quality to maximize the performance and minimize the latency of video encoding operations.VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRspecifies that video encoding is tuned for lossless encoding. When using this tuning mode, video encode operations produce lossless output.
See Also
- See Also:
-
VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR
public static final int VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRVkVideoEncodeTuningModeKHR - Video encode tuning modeDescription
VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRspecifies the default tuning mode.VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRspecifies that video encoding is tuned for high quality. When using this tuning mode, the implementation may compromise the latency of video encoding operations to improve quality.VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRspecifies that video encoding is tuned for low latency. When using this tuning mode, the implementation may compromise quality to increase the performance and lower the latency of video encode operations.VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRspecifies that video encoding is tuned for ultra-low latency. When using this tuning mode, the implementation may compromise quality to maximize the performance and minimize the latency of video encoding operations.VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRspecifies that video encoding is tuned for lossless encoding. When using this tuning mode, video encode operations produce lossless output.
See Also
- See Also:
-
VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR
public static final int VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRVkVideoEncodeTuningModeKHR - Video encode tuning modeDescription
VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRspecifies the default tuning mode.VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRspecifies that video encoding is tuned for high quality. When using this tuning mode, the implementation may compromise the latency of video encoding operations to improve quality.VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRspecifies that video encoding is tuned for low latency. When using this tuning mode, the implementation may compromise quality to increase the performance and lower the latency of video encode operations.VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRspecifies that video encoding is tuned for ultra-low latency. When using this tuning mode, the implementation may compromise quality to maximize the performance and minimize the latency of video encoding operations.VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRspecifies that video encoding is tuned for lossless encoding. When using this tuning mode, video encode operations produce lossless output.
See Also
- See Also:
-
VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR
public static final int VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRVkVideoEncodeTuningModeKHR - Video encode tuning modeDescription
VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHRspecifies the default tuning mode.VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHRspecifies that video encoding is tuned for high quality. When using this tuning mode, the implementation may compromise the latency of video encoding operations to improve quality.VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHRspecifies that video encoding is tuned for low latency. When using this tuning mode, the implementation may compromise quality to increase the performance and lower the latency of video encode operations.VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHRspecifies that video encoding is tuned for ultra-low latency. When using this tuning mode, the implementation may compromise quality to maximize the performance and minimize the latency of video encoding operations.VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHRspecifies that video encoding is tuned for lossless encoding. When using this tuning mode, video encode operations produce lossless output.
See Also
- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR
public static int nvkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pQualityLevelInfo, long pQualityLevelProperties) Unsafe version of:GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR -
vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR
public static int vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR pQualityLevelProperties) Query video encode quality level properties.C Specification
To query properties for a specific video encode quality level supported by a video encode profile, call:
VkResult vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);Valid Usage
- If
pQualityLevelInfo→pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thepNextchain ofpQualityLevelPropertiesmust include aVkVideoEncodeH264QualityLevelPropertiesKHRstructure - If
pQualityLevelInfo→pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thepNextchain ofpQualityLevelPropertiesmust include aVkVideoEncodeH265QualityLevelPropertiesKHRstructure - If
pQualityLevelInfo→pVideoProfile→videoCodecOperationisVIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thepNextchain ofpQualityLevelPropertiesmust include aVkVideoEncodeAV1QualityLevelPropertiesKHRstructure
Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepQualityLevelInfomust be a valid pointer to a validVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRstructurepQualityLevelPropertiesmust be a valid pointer to aVkVideoEncodeQualityLevelPropertiesKHRstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR,VkVideoEncodeQualityLevelPropertiesKHR- Parameters:
physicalDevice- the physical device to query the video encode quality level properties for.pQualityLevelInfo- a pointer to aVkPhysicalDeviceVideoEncodeQualityLevelInfoKHRstructure specifying the video encode profile and quality level to query properties for.pQualityLevelProperties- a pointer to aVkVideoEncodeQualityLevelPropertiesKHRstructure in which the properties are returned.
- If
-
nvkGetEncodedVideoSessionParametersKHR
public static int nvkGetEncodedVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, long pVideoSessionParametersInfo, long pFeedbackInfo, long pDataSize, long pData) Unsafe version of:GetEncodedVideoSessionParametersKHR- Parameters:
pDataSize- a pointer to asize_tvalue related to the amount of encode parameter data returned, as described below.
-
vkGetEncodedVideoSessionParametersKHR
public static int vkGetEncodedVideoSessionParametersKHR(org.lwjgl.vulkan.VkDevice device, VkVideoEncodeSessionParametersGetInfoKHR pVideoSessionParametersInfo, @Nullable VkVideoEncodeSessionParametersFeedbackInfoKHR pFeedbackInfo, org.lwjgl.PointerBuffer pDataSize, @Nullable ByteBuffer pData) Get encoded parameter sets from a video session parameters object.C Specification
Encoded parameter data can be retrieved from a video session parameters object created with a video encode operation using the command:
VkResult vkGetEncodedVideoSessionParametersKHR( VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);Description
If
pDataisNULL, then the size of the encoded parameter data, in bytes, that can be retrieved is returned inpDataSize. Otherwise,pDataSizemust point to a variable set by the application to the size of the buffer, in bytes, pointed to bypData, and on return the variable is overwritten with the number of bytes actually written topData. IfpDataSizeis less than the size of the encoded parameter data that can be retrieved, then no data will be written topData, zero will be written topDataSize, andINCOMPLETEwill be returned instead ofSUCCESS, to indicate that no encoded parameter data was returned.If
pFeedbackInfois notNULLthen the members of theVkVideoEncodeSessionParametersFeedbackInfoKHRstructure and any additional structures included in itspNextchain that are applicable to the video session parameters object specified inpVideoSessionParametersInfo→videoSessionParameterswill be filled with feedback about the requested parameter data on all successful calls to this command.Note
This includes the cases when
pDataisNULLor whenINCOMPLETEis returned by the command, and enables the application to determine whether the implementation overrode any of the requested video session parameters without actually needing to retrieve the encoded parameter data itself.Valid Usage
pVideoSessionParametersInfo→videoSessionParametersmust have been created with an encode operation- If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thepNextchain ofpVideoSessionParametersInfomust include aVkVideoEncodeH264SessionParametersGetInfoKHRstructure - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then for theVkVideoEncodeH264SessionParametersGetInfoKHRstructure included in thepNextchain ofpVideoSessionParametersInfo, if itswriteStdSPSmember isTRUE, thenpVideoSessionParametersInfo→videoSessionParametersmust contain aStdVideoH264SequenceParameterSetentry withseq_parameter_set_idmatchingVkVideoEncodeH264SessionParametersGetInfoKHR::stdSPSId - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then for theVkVideoEncodeH264SessionParametersGetInfoKHRstructure included in thepNextchain ofpVideoSessionParametersInfo, if itswriteStdPPSmember isTRUE, thenpVideoSessionParametersInfo→videoSessionParametersmust contain aStdVideoH264PictureParameterSetentry withseq_parameter_set_idandpic_parameter_set_idmatchingVkVideoEncodeH264SessionParametersGetInfoKHR::stdSPSIdandVkVideoEncodeH264SessionParametersGetInfoKHR::stdPPSId, respectively - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thepNextchain ofpVideoSessionParametersInfomust include aVkVideoEncodeH265SessionParametersGetInfoKHRstructure - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for theVkVideoEncodeH265SessionParametersGetInfoKHRstructure included in thepNextchain ofpVideoSessionParametersInfo, if itswriteStdVPSmember isTRUE, thenpVideoSessionParametersInfo→videoSessionParametersmust contain aStdVideoH265VideoParameterSetentry withvps_video_parameter_set_idmatchingVkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSId - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for theVkVideoEncodeH265SessionParametersGetInfoKHRstructure included in thepNextchain ofpVideoSessionParametersInfo, if itswriteStdSPSmember isTRUE, thenpVideoSessionParametersInfo→videoSessionParametersmust contain aStdVideoH265SequenceParameterSetentry withsps_video_parameter_set_idandsps_seq_parameter_set_idmatchingVkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSIdandVkVideoEncodeH265SessionParametersGetInfoKHR::stdSPSId, respectively - If
pVideoSessionParametersInfo→videoSessionParameterswas created with the video codec operationVIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then for theVkVideoEncodeH265SessionParametersGetInfoKHRstructure included in thepNextchain ofpVideoSessionParametersInfo, if itswriteStdPPSmember isTRUE, thenpVideoSessionParametersInfo→videoSessionParametersmust contain aStdVideoH265PictureParameterSetentry withsps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idmatchingVkVideoEncodeH265SessionParametersGetInfoKHR::stdVPSId,VkVideoEncodeH265SessionParametersGetInfoKHR::stdSPSId, andVkVideoEncodeH265SessionParametersGetInfoKHR::stdPPSId, respectively
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepVideoSessionParametersInfomust be a valid pointer to a validVkVideoEncodeSessionParametersGetInfoKHRstructure- If
pFeedbackInfois notNULL,pFeedbackInfomust be a valid pointer to aVkVideoEncodeSessionParametersFeedbackInfoKHRstructure pDataSizemust be a valid pointer to asize_tvalue- If the value referenced by
pDataSizeis not 0, andpDatais notNULL,pDatamust be a valid pointer to an array ofpDataSizebytes
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
VkVideoEncodeSessionParametersFeedbackInfoKHR,VkVideoEncodeSessionParametersGetInfoKHR- Parameters:
device- the logical device that owns the video session parameters object.pVideoSessionParametersInfo- a pointer to aVkVideoEncodeSessionParametersGetInfoKHRstructure specifying the parameters of the encoded parameter data to retrieve.pFeedbackInfo- eitherNULLor a pointer to aVkVideoEncodeSessionParametersFeedbackInfoKHRstructure in which feedback about the requested parameter data is returned.pDataSize- a pointer to asize_tvalue related to the amount of encode parameter data returned, as described below.pData- eitherNULLor a pointer to a buffer to write the encoded parameter data to.
-
nvkCmdEncodeVideoKHR
public static void nvkCmdEncodeVideoKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pEncodeInfo) Unsafe version of:CmdEncodeVideoKHR -
vkCmdEncodeVideoKHR
public static void vkCmdEncodeVideoKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkVideoEncodeInfoKHR pEncodeInfo) Launch video encode operations.C Specification
To launch video encode operations, call:
void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);Description
Each call issues one or more video encode operations. The implicit parameter
opCountcorresponds to the number of video encode operations issued by the command. After calling this command, the active query index of each active query is incremented byopCount.Currently each call to this command results in the issue of a single video encode operation.
If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHRand thepNextchain ofpEncodeInfoincludes aVkVideoInlineQueryInfoKHRstructure with itsqueryPoolmember specifying a validVkQueryPoolhandle, then this command will execute a query for each video encode operation issued by it.- Active Reference Picture Information
- The image subregion within the image subresource referred to by the video picture resource used as the reference picture.
- The DPB slot index the reference picture is associated with.
- The codec-specific reference information related to the reference picture.
- Reconstructed Picture Information
- The image subregion within the image subresource referred to by the video picture resource used as the reconstructed picture.
- The DPB slot index to use for picture reconstruction.
- The codec-specific reference information related to the reconstructed picture.
Specifying a valid
VkVideoReferenceSlotInfoKHRstructure inpEncodeInfo→pSetupReferenceSlotis always required, unless the video session was created withVkVideoSessionCreateInfoKHR::maxDpbSlotequal to zero. However, the DPB slot identified bypEncodeInfo→pSetupReferenceSlot→slotIndexis only activated with the reconstructed picture specified inpEncodeInfo→pSetupReferenceSlot→pPictureResourceif reference picture setup is requested according to the codec-specific semantics.If reconstructed picture information is specified, but reference picture setup is not requested, according to the codec-specific semantics, the contents of the video picture resource corresponding to the reconstructed picture will be undefined after the video encode operation.
Note
Some implementations may always output the reconstructed picture or use it as temporary storage during the video encode operation even when the reconstructed picture is not marked for future reference.
- Encode Input Picture Information
- The image subregion within the image subresource referred to by the video picture resource used as the encode input picture.
- The codec-specific picture information related to the encoded picture.
Several limiting values are defined below that are referenced by the relevant valid usage statements of this command.
- Let
uint32_t activeReferencePictureCountbe the size of the list of active reference pictures used by the video encode operation. Unless otherwise defined,activeReferencePictureCountis set to the value ofpEncodeInfo→referenceSlotCount. - Let
VkOffset2D codedOffsetGranularitybe the minimum alignment requirement for the coded offset of video picture resources. Unless otherwise defined, the value of thexandymembers ofcodedOffsetGranularityare 0. - Let
uint32_t dpbFrameUseCount[]be an array of sizemaxDpbSlots, wheremaxDpbSlotsis theVkVideoSessionCreateInfoKHR::maxDpbSlotsthe bound video session was created with, with each element indicating the number of times a frame associated with the corresponding DPB slot index is referred to by the video coding operation. Let the initial value of each element of the array be 0.- If
pEncodeInfo→pSetupReferenceSlotis notNULL, thendpbFrameUseCount[i]is incremented by one, whereiequalspEncodeInfo→pSetupReferenceSlot→slotIndex. - For each element of
pEncodeInfo→pReferenceSlots,dpbFrameUseCount[i]is incremented by one, whereiequals theslotIndexmember of the corresponding element.
- If
- If there is a bound video session parameters object created with
VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR, then letVkExtent2D quantizationMapTexelSizebe the quantization map texel size the bound video session parameters object was created with. - Let
VkExtent2D maxCodingBlockSizebe the maximum codec-specific coding block size that may be used by the video encode operation.- If the bound video session object was created with an H.264 encode profile, then let
maxCodingBlockSizebe equal to the size of an H.264 macroblock, i.e.{16,16}. - If the bound video session object was created with an H.265 encode profile, then let
maxCodingBlockSizebe equal to the maximum H.265 coding block size that may be used by the video encode operation derived as the maximum of the CTB sizes corresponding to theVkVideoEncodeH265CtbSizeFlagBitsKHRbits set inVkVideoEncodeH265CapabilitiesKHR::ctbSizes, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with. - If the bound video session object was created with an AV1 encode profile, then let
maxCodingBlockSizebe equal to the maximum AV1 superblock size that may be used by the video encode operation derived as the maximum of the superblock sizes corresponding to theVkVideoEncodeAV1SuperblockSizeFlagBitsKHRbits set inVkVideoEncodeAV1CapabilitiesKHR::superblockSizes, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with. - Otherwise,
maxCodingBlockSizeis undefined.
- If the bound video session object was created with an H.264 encode profile, then let
- If
maxCodingBlockSizeis defined, then letVkExtent2D minCodingBlockExtentbe the coded extent of the encode input picture expressed in terms of codec-specific coding blocks, assuming the maximum size of such coding blocks, as defined bymaxCodingBlockSize, calculated from the value of thecodedExtentmember ofpEncodeInfo→srcPictureResourceas follows:minCodingBlockExtent.width = (codedExtent.width maxCodingBlockSize.width - 1) / maxCodingBlockSize.widthminCodingBlockExtent.height = (codedExtent.height maxCodingBlockSize.height - 1) / maxCodingBlockSize.height
- If the bound video session object was created with an H.264 encode profile, then:
- Let
StdVideoH264PictureType h264PictureTypebe the picture type of the encoded picture set to the value ofpStdPictureInfo→primary_pic_typespecified in theVkVideoEncodeH264PictureInfoKHRstructure included in thepEncodeInfo→pNextchain. - Let
StdVideoH264PictureType h264L0PictureTypes[]andStdVideoH264PictureType h264L1PictureTypes[]be the picture types of the reference pictures in the L0 and L1 reference lists, respectively. IfpStdPictureInfo→pRefListsspecified in theVkVideoEncodeH264PictureInfoKHRstructure included in thepEncodeInfo→pNextchain is notNULL, then for each reference index specified in the elements of thepStdPictureInfo→pRefLists→RefPicList0andpStdPictureInfo→pRefLists→RefPicList1arrays, if the reference index is notSTD_VIDEO_H264_NO_REFERENCE_PICTURE,pStdReferenceInfo→primary_pic_typeis added toh264L0PictureTypesorh264L1PictureTypes, respectively, wherepStdReferenceInfois the member of theVkVideoEncodeH264DpbSlotInfoKHRstructure included in thepNextchain of the element ofpEncodeInfo→pReferenceSlotsfor whichslotIndexequals the reference index in question.
- Let
- If the bound video session object was created with an H.265 encode profile, then:
- Let
StdVideoH265PictureType h265PictureTypebe the picture type of the encoded picture set to the value ofpStdPictureInfo→pic_typespecified in theVkVideoEncodeH265PictureInfoKHRstructure included in thepEncodeInfo→pNextchain. - Let
StdVideoH265PictureType h265L0PictureTypes[]andStdVideoH265PictureType h265L1PictureTypes[]be the picture types of the reference pictures in the L0 and L1 reference lists, respectively. IfpStdPictureInfo→pRefListsspecified in theVkVideoEncodeH265PictureInfoKHRstructure included in thepEncodeInfo→pNextchain is notNULL, then for each reference index specified in the elements of thepStdPictureInfo→pRefLists→RefPicList0andpStdPictureInfo→pRefLists→RefPicList1arrays, if the reference index is notSTD_VIDEO_H265_NO_REFERENCE_PICTURE,pStdReferenceInfo→pic_typeis added toh265L0PictureTypesorh265L1PictureTypes, respectively, wherepStdReferenceInfois the member of theVkVideoEncodeH265DpbSlotInfoKHRstructure included in thepNextchain of the element ofpEncodeInfo→pReferenceSlotsfor whichslotIndexequals the reference index in question.
- Let
- If the bound video session object was created with an AV1 encode profile, then:
- If the
primaryReferenceCdfOnlymember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepEncodeInfo→pNextchain is set toTRUE, then letint32_t cdfOnlyReferenceIndexbe the value ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfo→primary_ref_frame. - Otherwise let
int32_t cdfOnlyReferenceIndexbe-1.
- If the
Valid Usage
- The bound video session must have been created with an encode operation
- The bound video session must not be in uninitialized state at the time the command is executed on the device
- The bound video session parameters object must have been created with the currently set video encode quality level for the bound video session at the time the command is executed on the device
- For each active query, the active query index corresponding to the query type of that query plus
opCountmust be less than or equal to the last activatable query index corresponding to the query type of that query plus one - If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and thepNextchain ofpEncodeInfoincludes aVkVideoInlineQueryInfoKHRstructure with itsqueryPoolmember specifying a validVkQueryPoolhandle, thenVkVideoInlineQueryInfoKHR::queryCount must equalopCount - If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and thepNextchain ofpEncodeInfoincludes aVkVideoInlineQueryInfoKHRstructure with itsqueryPoolmember specifying a validVkQueryPoolhandle, then all the queries used by the command, as specified by theVkVideoInlineQueryInfoKHRstructure, must be unavailable - If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then thequeryTypeused to create thequeryPoolspecified in theVkVideoInlineQueryInfoKHRstructure included in thepNextchain ofpEncodeInfomust beQUERY_TYPE_RESULT_STATUS_ONLY_KHRorQUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR - If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, then thequeryPoolspecified in theVkVideoInlineQueryInfoKHRstructure included in thepNextchain ofpEncodeInfomust have been created with aVkVideoProfileInfoKHRstructure included in thepNextchain ofVkQueryPoolCreateInfoidentical to the one specified inVkVideoSessionCreateInfoKHR::pVideoProfilethe bound video session was created with - If the bound video session was created with
VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR, and thequeryTypeused to create thequeryPoolspecified in theVkVideoInlineQueryInfoKHRstructure included in thepNextchain ofpEncodeInfoisQUERY_TYPE_RESULT_STATUS_ONLY_KHR, then theVkCommandPoolthatcommandBufferwas allocated from must have been created with a queue family index that supports result status queries, as indicated byVkQueueFamilyQueryResultStatusPropertiesKHR::queryResultStatusSupport pEncodeInfo→dstBuffermust be compatible with the video profile the bound video session was created with- If
commandBufferis an unprotected command buffer andprotectedNoFaultis not supported, thenpEncodeInfo→dstBuffermust not be a protected buffer - If
commandBufferis a protected command buffer andprotectedNoFaultis not supported, thenpEncodeInfo→dstBuffermust be a protected buffer pEncodeInfo→dstBufferOffsetmust be an integer multiple ofVkVideoCapabilitiesKHR::minBitstreamBufferOffsetAlignment, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created withpEncodeInfo→dstBufferRangemust be an integer multiple ofVkVideoCapabilitiesKHR::minBitstreamBufferSizeAlignment, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created withpEncodeInfo→srcPictureResource.imageViewBindingmust be compatible with the video profile the bound video session was created with- The format of
pEncodeInfo→srcPictureResource.imageViewBindingmust match theVkVideoSessionCreateInfoKHR::pictureFormatthe bound video session was created with pEncodeInfo→srcPictureResource.codedOffsetmust be an integer multiple ofcodedOffsetGranularitypEncodeInfo→srcPictureResource.codedExtentmust be betweenminCodedExtentandmaxCodedExtent, inclusive, the bound video session was created withpEncodeInfo→srcPictureResource.imageViewBindingmust have been created withIMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR- If
commandBufferis an unprotected command buffer andprotectedNoFaultis not supported, thenpEncodeInfo→srcPictureResource.imageViewBindingmust not have been created from a protected image pEncodeInfo→pSetupReferenceSlotmust not beNULLunless the bound video session was created withVkVideoSessionCreateInfoKHR::maxDpbSlotsequal to zero- If
pEncodeInfo→pSetupReferenceSlotis notNULL, thenpEncodeInfo→pSetupReferenceSlot→slotIndexmust be less than theVkVideoSessionCreateInfoKHR::maxDpbSlotsspecified when the bound video session was created - If
pEncodeInfo→pSetupReferenceSlotis notNULL, thenpEncodeInfo→pSetupReferenceSlot→pPictureResource→codedOffsetmust be an integer multiple ofcodedOffsetGranularity - If
pEncodeInfo→pSetupReferenceSlotis notNULL, thenpEncodeInfo→pSetupReferenceSlot→pPictureResourcemust match one of the bound reference picture resource activeReferencePictureCountmust be less than or equal to theVkVideoSessionCreateInfoKHR::maxActiveReferencePicturesspecified when the bound video session was created- The
slotIndexmember of each element ofpEncodeInfo→pReferenceSlotsmust be less than theVkVideoSessionCreateInfoKHR::maxDpbSlotsspecified when the bound video session was created - The
codedOffsetmember of theVkVideoPictureResourceInfoKHRstructure pointed to by thepPictureResourcemember of each element ofpEncodeInfo→pReferenceSlotsmust be an integer multiple ofcodedOffsetGranularity - The
pPictureResourcemember of each element ofpEncodeInfo→pReferenceSlotsmust match one of the bound reference picture resource associated with the DPB slot index specified in theslotIndexmember of that element - Each video picture resource corresponding to the
pPictureResourcemember specified in the elements ofpEncodeInfo→pReferenceSlotsmust be unique withinpEncodeInfo→pReferenceSlots - All elements of
dpbFrameUseCountmust be less than or equal to 1 - The image subresource referred to by
pEncodeInfo→srcPictureResourcemust be in theIMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHRlayout at the time the video encode operation is executed on the device - If
pEncodeInfo→pSetupReferenceSlotis notNULL, then the image subresource referred to bypEncodeInfo→pSetupReferenceSlot→pPictureResourcemust be in theIMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHRlayout at the time the video encode operation is executed on the device - The image subresource referred to by the
pPictureResourcemember of each element ofpEncodeInfo→pReferenceSlotsmust be in theIMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHRlayout at the time the video encode operation is executed on the device - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR, then the bound video session must have been created withVIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR, then the bound video session must have been created withVIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR - If the current rate control mode is
VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHRorVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, thenpEncodeInfo→flagsmust not includeVIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHRorVIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR, then thepNextchain ofpEncodeInfomust include aVkVideoEncodeQuantizationMapInfoKHRstructure with itsquantizationMapmember specifying a validVkImageViewhandle - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHRorVIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR, then theVkImageViewspecified by thequantizationMapmember of theVkVideoEncodeQuantizationMapInfoKHRstructure included in thepNextchain must be compatible with the video profile the bound video session was created with - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR, then theVkImageViewspecified by thequantizationMapmember of theVkVideoEncodeQuantizationMapInfoKHRstructure included in thepNextchain ofpEncodeInfomust have been created withIMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR - If
pEncodeInfo→flagsincludesVIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR, then theVkImageViewspecified by thequantizationMapmember of theVkVideoEncodeQuantizationMapInfoKHRstructure included in thepNextchain ofpEncodeInfomust have been created withIMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR - If an instance of the
VkVideoEncodeQuantizationMapInfoKHRstructure is included in thepNextchain ofpEncodeInfo, itsquantizationMapmember is notNULL_HANDLE,commandBufferis an unprotected command buffer, andprotectedNoFaultis not supported, thenVkVideoEncodeQuantizationMapInfoKHR::quantizationMapmust not have been created from a protected image - If an instance of the
VkVideoEncodeQuantizationMapInfoKHRstructure is included in thepNextchain ofpEncodeInfoand itsquantizationMapmember is notNULL_HANDLE, then the image subresource range referenced byquantizationMapmust be in theIMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHRlayout at the time the video encode operation is executed on the device - If an instance of the
VkVideoEncodeQuantizationMapInfoKHRstructure is included in thepNextchain ofpEncodeInfoand itsquantizationMapmember is notNULL_HANDLE, and there is a bound video session parameters object, then the bound video session parameters object must have been created withVIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR - If an instance of the
VkVideoEncodeQuantizationMapInfoKHRstructure is included in thepNextchain ofpEncodeInfo, itsquantizationMapmember is notNULL_HANDLE, and there is a bound video session parameters object created withVIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR, thenquantizationMapExtentmust equal⌈pEncodeInfo→srcPictureResource.codedExtent / quantizationMapTexelSize⌉ - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thepNextchain ofpEncodeInfomust include aVkVideoEncodeH264PictureInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the bound video session parameters object must contain aStdVideoH264SequenceParameterSetentry withseq_parameter_set_idmatchingStdVideoEncodeH264PictureInfo::seq_parameter_set_idthat is provided in thepStdPictureInfomember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the bound video session parameters object must contain aStdVideoH264PictureParameterSetentry withseq_parameter_set_idandpic_parameter_set_idmatchingStdVideoEncodeH264PictureInfo::seq_parameter_set_idandStdVideoEncodeH264PictureInfo::pic_parameter_set_id, respectively, that are provided in thepStdPictureInfomember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandpEncodeInfo→pSetupReferenceSlotis notNULL, then thepNextchain ofpEncodeInfo→pSetupReferenceSlotmust include aVkVideoEncodeH264DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thepNextchain of each element ofpEncodeInfo→pReferenceSlotsmust include aVkVideoEncodeH264DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRand the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, thenVkVideoEncodeH264NaluSliceInfoKHR::constantQpmust be zero for each element of thepNaluSliceEntriesmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRand the current rate control mode isVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, thenVkVideoEncodeH264NaluSliceInfoKHR::constantQpmust be betweenVkVideoEncodeH264CapabilitiesKHR::minQpandVkVideoEncodeH264CapabilitiesKHR::maxQp, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, for each element of thepNaluSliceEntriesmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenVkVideoEncodeH264NaluSliceInfoKHR::constantQpmust have the same value for each element of thepNaluSliceEntriesmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then thenaluSliceEntryCountmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be less than or equal tominCodingBlockExtent.widthmultiplied byminCodingBlockExtent.height - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then thenaluSliceEntryCountmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be less than or equal tominCodingBlockExtent.height - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH264PictureInfoKHRstructure, andpEncodeInfo→referenceSlotCountis greater than zero, thenVkVideoEncodeH264PictureInfoKHR::pStdPictureInfo→pRefListsmust not beNULL - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH264PictureInfoKHRstructure, andVkVideoEncodeH264PictureInfoKHR::pStdPictureInfo→pRefListsis notNULL, then each element of theRefPicList0andRefPicList1array members of theStdVideoEncodeH264ReferenceListsInfostructure pointed to byVkVideoEncodeH264PictureInfoKHR::pStdPictureInfo→pRefListsmust either beSTD_VIDEO_H264_NO_REFERENCE_PICTUREor must equal theslotIndexmember of one of the elements ofpEncodeInfo→pReferenceSlots - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH264PictureInfoKHRstructure, andpEncodeInfo→referenceSlotCountis greater than zero, then theslotIndexmember of each element ofpEncodeInfo→pReferenceSlotsmust equal one of the elements of theRefPicList0orRefPicList1array members of theStdVideoEncodeH264ReferenceListsInfostructure pointed to byVkVideoEncodeH264PictureInfoKHR::pStdPictureInfo→pRefLists - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::maxPPictureL0ReferenceCountis zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenh264PictureTypeand each element ofh264L0PictureTypesandh264L1PictureTypesmust not beSTD_VIDEO_H264_PICTURE_TYPE_P - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::maxBPictureL0ReferenceCountandVkVideoEncodeH264CapabilitiesKHR::maxL1ReferenceCountare both zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenh264PictureTypeand each element ofh264L0PictureTypesandh264L1PictureTypesmust not beSTD_VIDEO_H264_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then each element ofh264L0PictureTypesmust not beSTD_VIDEO_H264_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHRandVkVideoEncodeH264CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then each element ofh264L1PictureTypesmust not beSTD_VIDEO_H264_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thepNextchain ofpEncodeInfomust include aVkVideoEncodeH265PictureInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain aStdVideoH265VideoParameterSetentry withvps_video_parameter_set_idmatchingStdVideoEncodeH265PictureInfo::sps_video_parameter_set_idthat is provided in thepStdPictureInfomember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain aStdVideoH265SequenceParameterSetentry withsps_video_parameter_set_idandsps_seq_parameter_set_idmatchingStdVideoEncodeH265PictureInfo::sps_video_parameter_set_idandStdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, respectively, that are provided in thepStdPictureInfomember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the bound video session parameters object must contain aStdVideoH265PictureParameterSetentry withsps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idmatchingStdVideoEncodeH265PictureInfo::sps_video_parameter_set_id,StdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, andStdVideoEncodeH265PictureInfo::pps_pic_parameter_set_id, respectively, that are provided in thepStdPictureInfomember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandpEncodeInfo→pSetupReferenceSlotis notNULL, then thepNextchain ofpEncodeInfo→pSetupReferenceSlotmust include aVkVideoEncodeH265DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thepNextchain of each element ofpEncodeInfo→pReferenceSlotsmust include aVkVideoEncodeH265DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, thenVkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpmust be zero for each element of thepNaluSliceSegmentEntriesmember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRand the current rate control mode isVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, thenVkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpmust be betweenVkVideoEncodeH265CapabilitiesKHR::minQpandVkVideoEncodeH265CapabilitiesKHR::maxQp, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, for each element of thepNaluSliceSegmentEntriesmember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenVkVideoEncodeH265NaluSliceSegmentInfoKHR::constantQpmust have the same value for each element of thepNaluSliceSegmentEntriesmember of theVkVideoEncodeH264PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then thenaluSliceSegmentEntryCountmember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be less than or equal tominCodingBlockExtent.widthmultiplied byminCodingBlockExtent.height - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then thenaluSliceSegmentEntryCountmember of theVkVideoEncodeH265PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be less than or equal tominCodingBlockExtent.height - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH265PictureInfoKHRstructure, andpEncodeInfo→referenceSlotCountis greater than zero, thenVkVideoEncodeH265PictureInfoKHR::pStdPictureInfo→pRefListsmust not beNULL - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH265PictureInfoKHRstructure, andVkVideoEncodeH265PictureInfoKHR::pStdPictureInfo→pRefListsis notNULL, then each element of theRefPicList0andRefPicList1array members of theStdVideoEncodeH265ReferenceListsInfostructure pointed to byVkVideoEncodeH265PictureInfoKHR::pStdPictureInfo→pRefListsmust either beSTD_VIDEO_H265_NO_REFERENCE_PICTUREor must equal theslotIndexmember of one of the elements ofpEncodeInfo→pReferenceSlots - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, thepNextchain ofpEncodeInfoincludes aVkVideoEncodeH265PictureInfoKHRstructure, andpEncodeInfo→referenceSlotCountis greater than zero, then theslotIndexmember of each element ofpEncodeInfo→pReferenceSlotsmust equal one of the elements of theRefPicList0orRefPicList1array members of theStdVideoEncodeH265ReferenceListsInfostructure pointed to byVkVideoEncodeH265PictureInfoKHR::pStdPictureInfo→pRefLists - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::maxPPictureL0ReferenceCountis zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenh265PictureTypeand each element ofh265L0PictureTypesandh265L1PictureTypesmust not beSTD_VIDEO_H265_PICTURE_TYPE_P - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::maxBPictureL0ReferenceCountandVkVideoEncodeH265CapabilitiesKHR::maxL1ReferenceCountare both zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenh265PictureTypeand each element ofh265L0PictureTypesandh265L1PictureTypesmust not beSTD_VIDEO_H265_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then each element ofh265L0PictureTypesmust not beSTD_VIDEO_H264_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHRandVkVideoEncodeH265CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then each element ofh265L1PictureTypesmust not beSTD_VIDEO_H265_PICTURE_TYPE_B - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thepNextchain ofpEncodeInfomust include aVkVideoEncodeAV1PictureInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandpEncodeInfo→pSetupReferenceSlotis notNULL, then thepNextchain ofpEncodeInfo→pSetupReferenceSlotmust include aVkVideoEncodeAV1DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then thepNextchain of each element ofpEncodeInfo→pReferenceSlotsmust include aVkVideoEncodeAV1DpbSlotInfoKHRstructure - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand the current rate control mode is notVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then theconstantQIndexmember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be zero - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand the current rate control mode isVIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR, then theconstantQIndexmember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be betweenVkVideoEncodeAV1CapabilitiesKHR::minQIndexandVkVideoEncodeAV1CapabilitiesKHR::maxQIndex, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfo→flags.frame_size_override_flagmust be zero for theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenpEncodeInfo→srcPictureResource.codedExtent.widthmust equalStdVideoAV1SequenceHeader::max_frame_width_minus_1 + 1of the active AV1 sequence header - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, thenpEncodeInfo→srcPictureResource.codedExtent.heightmust equalStdVideoAV1SequenceHeader::max_frame_height_minus_1 + 1of the active AV1 sequence header - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::flagsdoes not includeVIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then for each elementiofpEncodeInfo→pReferenceSlotspEncodeInfo→pReferenceSlots[i].pPictureResource→codedExtentmust matchpEncodeInfo→srcPictureResource.codedExtent - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfoisVIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR, thenVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfo→frame_typemust beSTD_VIDEO_AV1_FRAME_TYPE_KEYorSTD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandpStdPictureInfo→frame_typefor thepStdPictureInfomember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfoisSTD_VIDEO_AV1_FRAME_TYPE_KEYorSTD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY, thenVkVideoEncodeAV1PictureInfoKHR::predictionModemust beVIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::maxSingleReferenceCountis zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust not beVIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfoisVIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR, then there must be at least one non-negative element ofVkVideoEncodeAV1PictureInfoKHR::referenceNameSlotIndiceswith element indexithat does not equalcdfOnlyReferenceIndexand for which bit indexiis set inVkVideoEncodeAV1CapabilitiesKHR::singleReferenceNameMask, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::maxUnidirectionalCompoundReferenceCountis zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust not beVIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfoisVIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR, then there must be at least two non-negative elements ofVkVideoEncodeAV1PictureInfoKHR::referenceNameSlotIndiceswith element indicesiandjwhere(i,j) ∈ {(0,1),(0,2),(0,3),(4,6)}, such that neither element equalscdfOnlyReferenceIndexand for which bit indicesiandjare set inVkVideoEncodeAV1CapabilitiesKHR::unidirectionalCompoundReferenceNameMask, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandVkVideoEncodeAV1CapabilitiesKHR::maxBidirectionalCompoundReferenceCountis zero, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with, then thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust not beVIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepredictionModemember of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfoisVIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR, then there must be at least two non-negative elements ofVkVideoEncodeAV1PictureInfoKHR::referenceNameSlotIndiceswith element indicesi ∈ {0,1,2,3}andj ∈ {4,5,6}, respectively, such that neither element equalscdfOnlyReferenceIndex, and for which bit indicesiandjare set inVkVideoEncodeAV1CapabilitiesKHR::bidirectionalCompoundReferenceNameMask, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then each element of thereferenceNameSlotIndicesarray member of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust either be negative or must equal theslotIndexmember of one of the elements ofpEncodeInfo→pReferenceSlots - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then theslotIndexmember of each element ofpEncodeInfo→pReferenceSlotsmust equal one of the elements of thereferenceNameSlotIndicesarray member of theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepExtensionHeadermember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpExtensionHeader→temporal_idmust be less thanVkVideoEncodeAV1CapabilitiesKHR::maxTemporalLayerCount, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepExtensionHeadermember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpExtensionHeader→spatial_idmust be less thanVkVideoEncodeAV1CapabilitiesKHR::maxSpatialLayerCount, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRandpEncodeInfo→pSetupReferenceSlotis notNULL, then thepExtensionHeadermember ofVkVideoEncodeAV1DpbSlotInfoKHR::pStdReferenceInfofor theVkVideoEncodeAV1DpbSlotInfoKHRstructure included in thepNextchain ofpEncodeInfo→pSetupReferenceSlotand thepExtensionHeadermember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust both beNULLor notNULL - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR,pEncodeInfo→pSetupReferenceSlotis notNULL, and thepExtensionHeadermember ofVkVideoEncodeAV1DpbSlotInfoKHR::pStdReferenceInfofor theVkVideoEncodeAV1DpbSlotInfoKHRstructure included in thepNextchain ofpEncodeInfo→pSetupReferenceSlotis notNULL, thenpExtensionHeader→temporal_idmust equalpStdPictureInfo→pExtensionHeader→temporal_idin theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR,pEncodeInfo→pSetupReferenceSlotis notNULL, and thepExtensionHeadermember ofVkVideoEncodeAV1DpbSlotInfoKHR::pStdReferenceInfofor theVkVideoEncodeAV1DpbSlotInfoKHRstructure included in thepNextchain ofpEncodeInfo→pSetupReferenceSlotis notNULL, thenpExtensionHeader→spatial_idmust equalpStdPictureInfo→pExtensionHeader→spatial_idin theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfo - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepExtensionHeadermember ofVkVideoEncodeAV1DpbSlotInfoKHR::pStdReferenceInfofor any of theVkVideoEncodeAV1DpbSlotInfoKHRstructures included in thepNextchain of any element ofpEncodeInfo→pReferenceSlotsis notNULL, thenpExtensionHeader→temporal_idmust be less thanVkVideoEncodeAV1CapabilitiesKHR::maxTemporalLayerCount, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepExtensionHeadermember ofVkVideoEncodeAV1DpbSlotInfoKHR::pStdReferenceInfofor any of theVkVideoEncodeAV1DpbSlotInfoKHRstructures included in thepNextchain of any element ofpEncodeInfo→pReferenceSlotsis notNULL, thenpExtensionHeader→spatial_idmust be less thanVkVideoEncodeAV1CapabilitiesKHR::maxSpatialLayerCount, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpTileInfo→TileColsmust be greater than 0 - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpTileInfo→TileRowsmust be greater than 0 - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpTileInfo→TileColsmust be less than or equal toVkVideoEncodeAV1CapabilitiesKHR::maxTiles.width, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, thenpTileInfo→TileRowsmust be less than or equal toVkVideoEncodeAV1CapabilitiesKHR::maxTiles.height, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, then⌈pEncodeInfo→srcPictureResource.codedExtent.width / pTileInfo→TileCols⌉must be betweenVkVideoEncodeAV1CapabilitiesKHR::minTileSize.widthandVkVideoEncodeAV1CapabilitiesKHR::maxTileSize.width, inclusive, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHRand thepTileInfomember ofVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfofor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfois notNULL, then⌈pEncodeInfo→srcPictureResource.codedExtent.height / pTileInfo→TileRows⌉must be betweenVkVideoEncodeAV1CapabilitiesKHR::minTileSize.heightandVkVideoEncodeAV1CapabilitiesKHR::maxTileSize.height, inclusive, as returned byGetPhysicalDeviceVideoCapabilitiesKHRfor the video profile the bound video session was created with - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, thenVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfo→flags.segmentation_enabledfor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust be zero - If the bound video session was created with the video codec operation
VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, thenVkVideoEncodeAV1PictureInfoKHR::pStdPictureInfo→pSegmentationfor theVkVideoEncodeAV1PictureInfoKHRstructure included in thepNextchain ofpEncodeInfomust beNULL
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepEncodeInfomust be a valid pointer to a validVkVideoEncodeInfoKHRstructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support 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 Encode Action See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pEncodeInfo- a pointer to aVkVideoEncodeInfoKHRstructure specifying the parameters of the video encode operations.
-