VK_KHR_video_decode_h264(3)

# VK_KHR_video_decode_h264(3) Manual Page

## Name

VK_KHR_video_decode_h264 - device extension

Loading… please wait.

## Registered Extension Number

41

## Revision

9

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_video_decode_queue

## Contact

- peter.fang@amd.com

## Extension Proposal

VK_KHR_video_decode_h264

## Other Extension Metadata

Last Modified Date

  2023-12-05

IP Status

  No known IP claims.

Contributors

  - Ahmed Abdelkhalek, AMD

  - Chunbo Chen, Intel

  - HoHin Lau, AMD

  - Jake Beju, AMD

  - Peter Fang, AMD

  - Ping Liu, Intel

  - Srinath Kumarapuram, NVIDIA

  - Tony Zlatinski, NVIDIA

  - Daniel Rakos, RasterGrid

## Description

This extension builds upon the `VK_KHR_video_decode_queue` extension by adding support for decoding elementary video stream sequences compliant with the H.264/AVC video compression standard.

Note | This extension was promoted to `KHR` from the provisional extension `VK_EXT_video_decode_h264`.

## New Structures

- Extending VkVideoCapabilitiesKHR:

  - VkVideoDecodeH264CapabilitiesKHR

- Extending VkVideoDecodeInfoKHR:

  - VkVideoDecodeH264PictureInfoKHR

- Extending VkVideoProfileInfoKHR, VkQueryPoolCreateInfo:

  - VkVideoDecodeH264ProfileInfoKHR

- Extending VkVideoReferenceSlotInfoKHR:

  - VkVideoDecodeH264DpbSlotInfoKHR

- Extending VkVideoSessionParametersCreateInfoKHR:

  - VkVideoDecodeH264SessionParametersCreateInfoKHR

- Extending VkVideoSessionParametersUpdateInfoKHR:

  - VkVideoDecodeH264SessionParametersAddInfoKHR

## New Enums

- VkVideoDecodeH264PictureLayoutFlagBitsKHR

## New Bitmasks

- VkVideoDecodeH264PictureLayoutFlagsKHR

## New Enum Constants

- `VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME`

- `VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR

  - VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR

- Extending VkVideoCodecOperationFlagBitsKHR:

  - VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR

## Version History

- Revision 1, 2018-6-11 (Peter Fang)

  - Initial draft

- Revision 2, March 29 2021 (Tony Zlatinski)

  - Spec and API Updates

- Revision 3, August 1 2021 (Srinath Kumarapuram)

  - Rename `VkVideoDecodeH264FieldLayoutFlagsEXT` to `VkVideoDecodeH264PictureLayoutFlagsEXT`, `VkVideoDecodeH264FieldLayoutFlagBitsEXT` to `VkVideoDecodeH264PictureLayoutFlagBitsEXT` (along with the names of enumerants it defines), and `VkVideoDecodeH264ProfileEXT.fieldLayout` to `VkVideoDecodeH264ProfileEXT.pictureLayout`, following Vulkan naming conventions.

- Revision 4, 2022-03-16 (Ahmed Abdelkhalek)

  - Relocate Std header version reporting/requesting from this extension to VK_KHR_video_queue extension.

  - Remove the now empty VkVideoDecodeH264SessionCreateInfoEXT.

- Revision 5, 2022-03-31 (Ahmed Abdelkhalek)

  - Use type StdVideoH264Level for VkVideoDecodeH264Capabilities.maxLevel

- Revision 6, 2022-08-09 (Daniel Rakos)

  - Rename `VkVideoDecodeH264ProfileEXT` to `VkVideoDecodeH264ProfileInfoEXT`

  - Rename `VkVideoDecodeH264MvcEXT` to `VkVideoDecodeH264MvcInfoEXT`

- Revision 7, 2022-09-18 (Daniel Rakos)

  - Change type of `VkVideoDecodeH264ProfileInfoEXT::pictureLayout` to `VkVideoDecodeH264PictureLayoutFlagBitsEXT`

  - Remove MVC support and related `VkVideoDecodeH264MvcInfoEXT` structure

  - Rename `spsStdCount`, `pSpsStd`, `ppsStdCount`, and `pPpsStd` to `stdSPSCount`, `pStdSPSs`, `stdPPSCount`, and `pStdPPSs`, respectively, in `VkVideoDecodeH264SessionParametersAddInfoEXT`

  - Rename `maxSpsStdCount` and `maxPpsStdCount` to `maxStdSPSCount` and `maxStdPPSCount`, respectively, in `VkVideoDecodeH264SessionParametersCreateInfoEXT`

  - Rename `slicesCount` and `pSlicesDataOffsets` to `sliceCount` and `pSliceOffsets`, respectively, in `VkVideoDecodeH264PictureInfoEXT`

- Revision 8, 2022-09-29 (Daniel Rakos)

  - Change extension from `EXT` to `KHR`

  - Extension is no longer provisional

- Revision 9, 2023-12-05 (Daniel Rakos)

  - Condition reference picture setup based on the value of `StdVideoDecodeH264PictureInfo::flags.is_reference`

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0