VkVideoSessionParametersCreateInfoKHR
The VkVideoSessionParametersCreateInfoKHR structure is defined as:
typedef struct VkVideoSessionParametersCreateInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoSessionParametersCreateFlagsKHR flags;
VkVideoSessionParametersKHR videoSessionParametersTemplate;
VkVideoSessionKHR videoSession;
} VkVideoSessionParametersCreateInfoKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis a bitmask of VkVideoSessionParametersCreateFlagBitsKHR specifying create flags.videoSessionParametersTemplateisVK_NULL_HANDLEor a valid handle to a VkVideoSessionParametersKHR object used as a template for constructing the new video session parameters object.videoSessionis the video session object against which the video session parameters object is going to be created.
Limiting values are defined below that are referenced by the relevant valid usage statements of this structure.
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then letStdVideoH264SequenceParameterSet spsAddList[]be the list of H.264 SPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoDecodeH264SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH264SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added tospsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH264SequenceParameterSetentry stored in it withseq_parameter_set_idnot matching any of the entries already inspsAddListis added tospsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then letStdVideoH264PictureParameterSet ppsAddList[]be the list of H.264 PPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoDecodeH264SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH264PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added toppsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH264PictureParameterSetentry stored in it withseq_parameter_set_idorpic_parameter_set_idnot matching any of the entries already inppsAddListis added toppsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then letStdVideoH265VideoParameterSet vpsAddList[]be the list of H.265 VPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265VideoParameterSetentries specified inpParametersAddInfo→pStdVPSsare added tovpsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265VideoParameterSetentry stored in it withvps_video_parameter_set_idnot matching any of the entries already invpsAddListis added tovpsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then letStdVideoH265SequenceParameterSet spsAddList[]be the list of H.265 SPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added tospsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265SequenceParameterSetentry stored in it withsps_video_parameter_set_idorsps_seq_parameter_set_idnot matching any of the entries already inspsAddListis added tospsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then letStdVideoH265PictureParameterSet ppsAddList[]be the list of H.265 PPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added toppsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265PictureParameterSetentry stored in it withsps_video_parameter_set_id,pps_seq_parameter_set_id, orpps_pic_parameter_set_idnot matching any of the entries already inppsAddListis added toppsAddList.
- If the
- If
videoSessionwas created with an encode operation, then letuint32_t qualityLevelbe the video encode quality level of the created video session parameters object, defined as follows:- If the
pNextchain of this structure includes a VkVideoEncodeQualityLevelInfoKHR structure, thenqualityLevelis equal to VkVideoEncodeQualityLevelInfoKHR::qualityLevel. - Otherwise
qualityLevelis0
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then letStdVideoH264SequenceParameterSet spsAddList[]be the list of H.264 SPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoEncodeH264SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH264SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added tospsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH264SequenceParameterSetentry stored in it withseq_parameter_set_idnot matching any of the entries already inspsAddListis added tospsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then letStdVideoH264PictureParameterSet ppsAddList[]be the list of H.264 PPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoEncodeH264SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH264PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added toppsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH264PictureParameterSetentry stored in it withseq_parameter_set_idorpic_parameter_set_idnot matching any of the entries already inppsAddListis added toppsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then letStdVideoH265VideoParameterSet vpsAddList[]be the list of H.265 VPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265VideoParameterSetentries specified inpParametersAddInfo→pStdVPSsare added tovpsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265VideoParameterSetentry stored in it withvps_video_parameter_set_idnot matching any of the entries already invpsAddListis added tovpsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then letStdVideoH265SequenceParameterSet spsAddList[]be the list of H.265 SPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265SequenceParameterSetentries specified inpParametersAddInfo→pStdSPSsare added tospsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265SequenceParameterSetentry stored in it withsps_video_parameter_set_idorsps_seq_parameter_set_idnot matching any of the entries already inspsAddListis added tospsAddList.
- If the
- If
videoSessionwas created with the codec operationVK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then letStdVideoH265PictureParameterSet ppsAddList[]be the list of H.265 PPS entries to add to the created video session parameters object, defined as follows:- If the
pParametersAddInfomember of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in thepNextchain is notNULL, then the set ofStdVideoH265PictureParameterSetentries specified inpParametersAddInfo→pStdPPSsare added toppsAddList; - If
videoSessionParametersTemplateis notVK_NULL_HANDLE, then eachStdVideoH265PictureParameterSetentry stored in it withsps_video_parameter_set_id,pps_seq_parameter_set_id, orpps_pic_parameter_set_idnot matching any of the entries already inppsAddListis added toppsAddList.
- If the
Valid Usage
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855
If videoSessionParametersTemplate is not VK_NULL_HANDLE, it
must have been created against videoSession
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-08310
If videoSessionParametersTemplate is not VK_NULL_HANDLE and
videoSession was created with an encode operation, then
qualityLevel must equal the video encode
quality level videoSessionParametersTemplate was created with
VUID-VkVideoSessionParametersCreateInfoKHR-flags-10271
If flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
then videoSession must have been created with
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
or VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-flags-10272
If flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
then the pNext chain must include a
VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR
structure
VUID-VkVideoSessionParametersCreateInfoKHR-flags-10273
If flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR
and videoSession was created with
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,
then the list of video format
properties supported for the image usage flag
VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR must
have an element for which
VkVideoFormatQuantizationMapPropertiesKHR::quantizationMapTexelSize
equals the quantizationMapTexelSize member of the
VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR
structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-flags-10274
If flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR
and videoSession was created with
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR, then
the list of video format
properties supported for the image usage flag
VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR must have an
element for which
VkVideoFormatQuantizationMapPropertiesKHR::quantizationMapTexelSize
equals the quantizationMapTexelSize member of the
VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR
structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-10275
If videoSessionParametersTemplate is not VK_NULL_HANDLE and
flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
then videoSessionParametersTemplate must have been created with
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-10276
If videoSessionParametersTemplate is not VK_NULL_HANDLE and
flags includes
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
then videoSessionParametersTemplate must have been created with
the same quantization map texel
size as the one specified in the quantizationMapTexelSize member
of the VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR
structure included in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-10277
If videoSessionParametersTemplate is not VK_NULL_HANDLE and
flags does not include
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
then videoSessionParametersTemplate must have been created
without
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07203
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the pNext
chain must include a
VkVideoDecodeH264SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07204
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of
elements of spsAddList must be less than or equal to the
maxStdSPSCount specified in the
VkVideoDecodeH264SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07205
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, then the number of
elements of ppsAddList must be less than or equal to the
maxStdPPSCount specified in the
VkVideoDecodeH264SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07206
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext
chain must include a
VkVideoDecodeH265SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07207
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of
elements of vpsAddList must be less than or equal to the
maxStdVPSCount specified in the
VkVideoDecodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07208
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of
elements of spsAddList must be less than or equal to the
maxStdSPSCount specified in the
VkVideoDecodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07209
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of
elements of ppsAddList must be less than or equal to the
maxStdPPSCount specified in the
VkVideoDecodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-09258
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then
videoSessionParametersTemplate must be VK_NULL_HANDLE
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-09259
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext
chain must include a
VkVideoDecodeAV1SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07210
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the pNext
chain must include a
VkVideoEncodeH264SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04839
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of
elements of spsAddList must be less than or equal to the
maxStdSPSCount specified in the
VkVideoEncodeH264SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04840
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, then the number of
elements of ppsAddList must be less than or equal to the
maxStdPPSCount specified in the
VkVideoEncodeH264SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-07211
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the pNext
chain must include a
VkVideoEncodeH265SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04841
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of
elements of vpsAddList must be less than or equal to the
maxStdVPSCount specified in the
VkVideoEncodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04842
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of
elements of spsAddList must be less than or equal to the
maxStdSPSCount specified in the
VkVideoEncodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-04843
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then the number of
elements of ppsAddList must be less than or equal to the
maxStdPPSCount specified in the
VkVideoEncodeH265SessionParametersCreateInfoKHR structure included
in the pNext chain
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08319
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then
num_tile_columns_minus1 must be less than
VkVideoEncodeH265CapabilitiesKHR::maxTiles.width, as
returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video
profile videoSession was created with, for each element of
ppsAddList
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-08320
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, then
num_tile_rows_minus1 must be less than
VkVideoEncodeH265CapabilitiesKHR::maxTiles.height, as
returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video
profile videoSession was created with, for each element of
ppsAddList
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-10278
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then
videoSessionParametersTemplate must be VK_NULL_HANDLE
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-10279
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then the pNext
chain must include a
VkVideoEncodeAV1SessionParametersCreateInfoKHR structure
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-10280
If videoSession was created with the video codec operation
VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then the
stdOperatingPointCount member of the
VkVideoEncodeAV1SessionParametersCreateInfoKHR structure included
in the pNext chain must be less than or equal to
VkVideoEncodeAV1CapabilitiesKHR::maxOperatingPoints, as
returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video
profile videoSession was created with
Valid Usage (Implicit)
VUID-VkVideoSessionParametersCreateInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-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 VkVideoDecodeAV1SessionParametersCreateInfoKHR, VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeAV1SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoKHR, VkVideoEncodeH265SessionParametersCreateInfoKHR, VkVideoEncodeQualityLevelInfoKHR, or VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkVideoSessionParametersCreateInfoKHR-flags-parameter
flags must be a valid combination of VkVideoSessionParametersCreateFlagBitsKHR values
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameter
If videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameter
videoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parent
If videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoSessionParametersCreateInfoKHR-commonparent
Both of videoSession, and videoSessionParametersTemplate that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice