VkVideoBeginCodingInfoKHR
The VkVideoBeginCodingInfoKHR structure is defined as:
typedef struct VkVideoBeginCodingInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoBeginCodingFlagsKHR flags;
VkVideoSessionKHR videoSession;
VkVideoSessionParametersKHR videoSessionParameters;
uint32_t referenceSlotCount;
const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
} VkVideoBeginCodingInfoKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis reserved for future use.videoSessionis the video session object to be bound for the processing of the video commands.videoSessionParametersisVK_NULL_HANDLEor a handle of a VkVideoSessionParametersKHR object to be used for the processing of the video commands. IfVK_NULL_HANDLE, then no video session parameters object is bound for the duration of the video coding scope.referenceSlotCountis the number of elements in thepReferenceSlotsarray.pReferenceSlotsis a pointer to an array of VkVideoReferenceSlotInfoKHR structures specifying the information used to determine the set of bound reference picture resources for the video coding scope and their initial association with DPB slot indices.
Limiting values are defined below that are referenced by the relevant valid usage statements of this structure.
- Let
VkOffset2D codedOffsetGranularitybe the minimum alignment requirement for the coded offset of video picture resources. Unless otherwise defined, the value of thexandymembers ofcodedOffsetGranularityare0.- If
videoSessionwas created with an H.264 decode profile with a VkVideoDecodeH264ProfileInfoKHR::pictureLayoutofVK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR, thencodedOffsetGranularityis equal to VkVideoDecodeH264CapabilitiesKHR::fieldOffsetGranularity, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for that video profile.
- If
Valid Usage
VUID-VkVideoBeginCodingInfoKHR-videoSession-07237
videoSession must have memory bound to all of its memory bindings
returned by vkGetVideoSessionMemoryRequirementsKHR for
videoSession
VUID-VkVideoBeginCodingInfoKHR-slotIndex-04856
Each non-negative VkVideoReferenceSlotInfoKHR::slotIndex
specified in the elements of pReferenceSlots must be less than
the VkVideoSessionCreateInfoKHR::maxDpbSlots specified when
videoSession was created
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07238
Each video picture resource corresponding to any non-NULL
pPictureResource member specified in the elements of
pReferenceSlots must be unique within pReferenceSlots
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07240
If the pPictureResource member of any element of
pReferenceSlots is not NULL, then the image view specified in
pPictureResource→imageViewBinding for that element must be
compatible with the video profile
videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07241
If the pPictureResource member of any element of
pReferenceSlots is not NULL, then the format of the image view
specified in pPictureResource→imageViewBinding for that element
must match the
VkVideoSessionCreateInfoKHR::referencePictureFormat
videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07242
If the pPictureResource member of any element of
pReferenceSlots is not NULL, then its codedOffset member
must be an integer multiple of codedOffsetGranularity
VUID-VkVideoBeginCodingInfoKHR-pPictureResource-07243
If the pPictureResource member of any element of
pReferenceSlots is not NULL, then its codedExtent member
must be between minCodedExtent and maxCodedExtent,
inclusive, videoSession was created with
VUID-VkVideoBeginCodingInfoKHR-flags-07244
If VkVideoCapabilitiesKHR::flags does not include
VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR, as returned
by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile
videoSession was created with, then
pPictureResource→imageViewBinding of all elements of
pReferenceSlots with a non-NULL pPictureResource member
must specify image views created from the same image
VUID-VkVideoBeginCodingInfoKHR-slotIndex-07245
If videoSession was created with a decode operation and the
slotIndex member of any element of pReferenceSlots is not
negative, then the image view specified in
pPictureResource→imageViewBinding for that element must have
been created with VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
VUID-VkVideoBeginCodingInfoKHR-slotIndex-07246
If videoSession was created with an encode operation and the
slotIndex member of any element of pReferenceSlots is not
negative, then the image view specified in
pPictureResource→imageViewBinding for that element must have
been created with VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
VUID-VkVideoBeginCodingInfoKHR-videoSession-07247
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
, unless videoMaintenance2 is
enabled
VUID-VkVideoBeginCodingInfoKHR-videoSession-07248
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
, unless videoMaintenance2 is
enabled
VUID-VkVideoBeginCodingInfoKHR-videoSession-09261
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
, unless videoMaintenance2 is
enabled
VUID-VkVideoBeginCodingInfoKHR-videoSession-07249
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-07250
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSession-10283
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then
videoSessionParameters must not be VK_NULL_HANDLE
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857
If videoSessionParameters is not VK_NULL_HANDLE, it must
have been created with videoSession specified in
VkVideoSessionParametersCreateInfoKHR::videoSession
Valid Usage (Implicit)
VUID-VkVideoBeginCodingInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
VUID-VkVideoBeginCodingInfoKHR-pNext-pNext
Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeAV1GopRemainingFrameInfoKHR, VkVideoEncodeAV1RateControlInfoKHR, VkVideoEncodeH264GopRemainingFrameInfoKHR, VkVideoEncodeH264RateControlInfoKHR, VkVideoEncodeH265GopRemainingFrameInfoKHR, VkVideoEncodeH265RateControlInfoKHR, or VkVideoEncodeRateControlInfoKHR
VUID-VkVideoBeginCodingInfoKHR-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkVideoBeginCodingInfoKHR-flags-zerobitmask
flags must be 0
VUID-VkVideoBeginCodingInfoKHR-videoSession-parameter
videoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameter
If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameter
If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parent
If videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoBeginCodingInfoKHR-commonparent
Both of videoSession, and videoSessionParameters that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice