VkVideoSessionParametersCreateInfoKHR(3)

# VkVideoSessionParametersCreateInfoKHR(3) Manual Page

## Name

VkVideoSessionParametersCreateInfoKHR - Structure specifying parameters of a newly created video session parameters object

Loading… please wait.

## C Specification

The `VkVideoSessionParametersCreateInfoKHR` structure is defined as:

    // Provided by VK_KHR_video_queue
    typedef struct VkVideoSessionParametersCreateInfoKHR {
        VkStructureType                           sType;
        const void*                               pNext;
        VkVideoSessionParametersCreateFlagsKHR    flags;
        VkVideoSessionParametersKHR               videoSessionParametersTemplate;
        VkVideoSessionKHR                         videoSession;
    } VkVideoSessionParametersCreateInfoKHR;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `flags` is reserved for future use.

- `videoSessionParametersTemplate` is `VK_NULL_HANDLE` or a valid handle to a VkVideoSessionParametersKHR object used as a template for constructing the new video session parameters object.

- `videoSession` is the video session object against which the video session parameters object is going to be created.

## Description

Limiting values are defined below that are referenced by the relevant valid usage statements of this structure.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR`, then let `StdVideoH264SequenceParameterSet spsAddList[]` be the list of H.264 SPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoDecodeH264SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH264SequenceParameterSet` entries specified in `pParametersAddInfo->pStdSPSs` are added to `spsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH264SequenceParameterSet` entry stored in it with `seq_parameter_set_id` not matching any of the entries already in `spsAddList` is added to `spsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR`, then let `StdVideoH264PictureParameterSet ppsAddList[]` be the list of H.264 PPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoDecodeH264SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH264PictureParameterSet` entries specified in `pParametersAddInfo->pStdPPSs` are added to `ppsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH264PictureParameterSet` entry stored in it with `seq_parameter_set_id` or `pic_parameter_set_id` not matching any of the entries already in `ppsAddList` is added to `ppsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR`, then let `StdVideoH265VideoParameterSet vpsAddList[]` be the list of H.265 VPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265VideoParameterSet` entries specified in `pParametersAddInfo->pStdVPSs` are added to `vpsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265VideoParameterSet` entry stored in it with `vps_video_parameter_set_id` not matching any of the entries already in `vpsAddList` is added to `vpsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR`, then let `StdVideoH265SequenceParameterSet spsAddList[]` be the list of H.265 SPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265SequenceParameterSet` entries specified in `pParametersAddInfo->pStdSPSs` are added to `spsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265SequenceParameterSet` entry stored in it with `sps_video_parameter_set_id` or `sps_seq_parameter_set_id` not matching any of the entries already in `spsAddList` is added to `spsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR`, then let `StdVideoH265PictureParameterSet ppsAddList[]` be the list of H.265 PPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoDecodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265PictureParameterSet` entries specified in `pParametersAddInfo->pStdPPSs` are added to `ppsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265PictureParameterSet` entry stored in it with `sps_video_parameter_set_id`, `pps_seq_parameter_set_id`, or `pps_pic_parameter_set_id` not matching any of the entries already in `ppsAddList` is added to `ppsAddList`.

- If `videoSession` was created with an encode operation, then let `uint32_t qualityLevel` be the video encode quality level of the created video session parameters object, defined as follows:

  - If the `pNext` chain of this structure includes a VkVideoEncodeQualityLevelInfoKHR structure, then `qualityLevel` is equal to VkVideoEncodeQualityLevelInfoKHR::`qualityLevel`.

  - Otherwise `qualityLevel` is `0`

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR`, then let `StdVideoH264SequenceParameterSet spsAddList[]` be the list of H.264 SPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoEncodeH264SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH264SequenceParameterSet` entries specified in `pParametersAddInfo->pStdSPSs` are added to `spsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH264SequenceParameterSet` entry stored in it with `seq_parameter_set_id` not matching any of the entries already in `spsAddList` is added to `spsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR`, then let `StdVideoH264PictureParameterSet ppsAddList[]` be the list of H.264 PPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoEncodeH264SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH264PictureParameterSet` entries specified in `pParametersAddInfo->pStdPPSs` are added to `ppsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH264PictureParameterSet` entry stored in it with `seq_parameter_set_id` or `pic_parameter_set_id` not matching any of the entries already in `ppsAddList` is added to `ppsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR`, then let `StdVideoH265VideoParameterSet vpsAddList[]` be the list of H.265 VPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265VideoParameterSet` entries specified in `pParametersAddInfo->pStdVPSs` are added to `vpsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265VideoParameterSet` entry stored in it with `vps_video_parameter_set_id` not matching any of the entries already in `vpsAddList` is added to `vpsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR`, then let `StdVideoH265SequenceParameterSet spsAddList[]` be the list of H.265 SPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265SequenceParameterSet` entries specified in `pParametersAddInfo->pStdSPSs` are added to `spsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265SequenceParameterSet` entry stored in it with `sps_video_parameter_set_id` or `sps_seq_parameter_set_id` not matching any of the entries already in `spsAddList` is added to `spsAddList`.

- If `videoSession` was created with the codec operation `VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR`, then let `StdVideoH265PictureParameterSet ppsAddList[]` be the list of H.265 PPS entries to add to the created video session parameters object, defined as follows:

  - If the `pParametersAddInfo` member of the VkVideoEncodeH265SessionParametersCreateInfoKHR structure provided in the `pNext` chain is not `NULL`, then the set of `StdVideoH265PictureParameterSet` entries specified in `pParametersAddInfo->pStdPPSs` are added to `ppsAddList`;

  - If `videoSessionParametersTemplate` is not `VK_NULL_HANDLE`, then each `StdVideoH265PictureParameterSet` entry stored in it with `sps_video_parameter_set_id`, `pps_seq_parameter_set_id`, or `pps_pic_parameter_set_id` not matching any of the entries already in `ppsAddList` is added to `ppsAddList`.

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-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-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`

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 VkVideoDecodeH264SessionParametersCreateInfoKHR, VkVideoDecodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH264SessionParametersCreateInfoKHR, VkVideoEncodeH265SessionParametersCreateInfoKHR, or VkVideoEncodeQualityLevelInfoKHR

- VUID-VkVideoSessionParametersCreateInfoKHR-sType-unique
  The `sType` value of each struct in the `pNext` chain must be unique

- VUID-VkVideoSessionParametersCreateInfoKHR-flags-zerobitmask
  `flags` must be `0`

- 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

## See Also

VK_KHR_video_queue, VkStructureType, VkVideoSessionKHR, VkVideoSessionParametersCreateFlagsKHR, VkVideoSessionParametersKHR, vkCreateVideoSessionParametersKHR

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0