diff --git a/include/vulkan/vulkan_beta.h b/include/vulkan/vulkan_beta.h
index 7fa0d065bc5..f5f9086c9a7 100644
--- a/include/vulkan/vulkan_beta.h
+++ b/include/vulkan/vulkan_beta.h
@@ -313,15 +313,29 @@ VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
#define VK_KHR_video_decode_queue 1
-#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 2
+#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 3
#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
+typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
+ VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR = 0,
+ VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
+ VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
+ VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoDecodeCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
+
typedef enum VkVideoDecodeFlagBitsKHR {
VK_VIDEO_DECODE_DEFAULT_KHR = 0,
VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001,
VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoDecodeFlagBitsKHR;
typedef VkFlags VkVideoDecodeFlagsKHR;
+typedef struct VkVideoDecodeCapabilitiesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkVideoDecodeCapabilityFlagsKHR flags;
+} VkVideoDecodeCapabilitiesKHR;
+
typedef struct VkVideoDecodeInfoKHR {
VkStructureType sType;
const void* pNext;
@@ -378,7 +392,7 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
#define VK_KHR_video_encode_queue 1
-#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 3
+#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 4
#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
typedef enum VkVideoEncodeFlagBitsKHR {
@@ -388,12 +402,12 @@ typedef enum VkVideoEncodeFlagBitsKHR {
} VkVideoEncodeFlagBitsKHR;
typedef VkFlags VkVideoEncodeFlagsKHR;
-typedef enum VkVideoEncodeRateControlFlagBitsKHR {
- VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,
- VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001,
- VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkVideoEncodeRateControlFlagBitsKHR;
-typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
+typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
+ VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR = 0,
+ VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
+ VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeCapabilityFlagBitsKHR;
+typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,
@@ -402,6 +416,13 @@ typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeRateControlModeFlagBitsKHR;
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
+
+typedef enum VkVideoEncodeRateControlFlagBitsKHR {
+ VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,
+ VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001,
+ VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkVideoEncodeRateControlFlagBitsKHR;
+typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
typedef struct VkVideoEncodeInfoKHR {
VkStructureType sType;
const void* pNext;
@@ -418,6 +439,16 @@ typedef struct VkVideoEncodeInfoKHR {
uint32_t precedingExternallyEncodedBytes;
} VkVideoEncodeInfoKHR;
+typedef struct VkVideoEncodeCapabilitiesKHR {
+ VkStructureType sType;
+ const void* pNext;
+ VkVideoEncodeCapabilityFlagsKHR flags;
+ VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
+ uint8_t rateControlLayerCount;
+ uint8_t qualityLevelCount;
+ VkExtent2D inputImageDataFillAlignment;
+} VkVideoEncodeCapabilitiesKHR;
+
typedef struct VkVideoEncodeRateControlLayerInfoKHR {
VkStructureType sType;
const void* pNext;
@@ -450,21 +481,33 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
#define VK_EXT_video_encode_h264 1
#include "vk_video/vulkan_video_codec_h264std.h"
#include "vk_video/vulkan_video_codec_h264std_encode.h"
-#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 3
+#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 5
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
- VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001,
- VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002,
- VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004,
- VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000008,
- VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000010,
- VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020,
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000040,
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000080,
- VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100,
- VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200,
- VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0x00000004,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000008,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000010,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000040,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000080,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000100,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0x00000200,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0x00000400,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00000800,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00001000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00002000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00004000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00008000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00010000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00020000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0x00040000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00080000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0x00100000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00200000,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00400000,
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264CapabilityFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
@@ -505,13 +548,14 @@ typedef struct VkVideoEncodeH264CapabilitiesEXT {
VkVideoEncodeH264CapabilityFlagsEXT flags;
VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;
VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;
- VkExtent2D minPictureSizeInMbs;
- VkExtent2D maxPictureSizeInMbs;
- VkExtent2D inputImageDataAlignment;
- uint8_t maxNumL0ReferenceForP;
- uint8_t maxNumL0ReferenceForB;
- uint8_t maxNumL1Reference;
- uint8_t qualityLevelCount;
+ uint8_t maxPPictureL0ReferenceCount;
+ uint8_t maxBPictureL0ReferenceCount;
+ uint8_t maxL1ReferenceCount;
+ VkBool32 motionVectorsOverPicBoundariesFlag;
+ uint32_t maxBytesPerPicDenom;
+ uint32_t maxBitsPerMbDenom;
+ uint32_t log2MaxMvLengthHorizontal;
+ uint32_t log2MaxMvLengthVertical;
VkExtensionProperties stdExtensionVersion;
} VkVideoEncodeH264CapabilitiesEXT;
@@ -541,33 +585,37 @@ typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
} VkVideoEncodeH264SessionParametersCreateInfoEXT;
typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
- VkStructureType sType;
- const void* pNext;
- int8_t slotIndex;
- const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
-} VkVideoEncodeH264DpbSlotInfoEXT;
-
-typedef struct VkVideoEncodeH264NaluSliceEXT {
VkStructureType sType;
const void* pNext;
- const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;
- uint32_t mbCount;
- uint8_t refFinalList0EntryCount;
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries;
- uint8_t refFinalList1EntryCount;
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries;
+ int8_t slotIndex;
+ const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
+} VkVideoEncodeH264DpbSlotInfoEXT;
+
+typedef struct VkVideoEncodeH264ReferenceListsEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint8_t referenceList0EntryCount;
+ const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries;
+ uint8_t referenceList1EntryCount;
+ const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries;
+ const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations;
+} VkVideoEncodeH264ReferenceListsEXT;
+
+typedef struct VkVideoEncodeH264NaluSliceEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t mbCount;
+ const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists;
+ const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;
} VkVideoEncodeH264NaluSliceEXT;
typedef struct VkVideoEncodeH264VclFrameInfoEXT {
- VkStructureType sType;
- const void* pNext;
- uint8_t refDefaultFinalList0EntryCount;
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries;
- uint8_t refDefaultFinalList1EntryCount;
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries;
- uint32_t naluSliceEntryCount;
- const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries;
- const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo;
+ VkStructureType sType;
+ const void* pNext;
+ const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists;
+ uint32_t naluSliceEntryCount;
+ const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries;
+ const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo;
} VkVideoEncodeH264VclFrameInfoEXT;
typedef struct VkVideoEncodeH264EmitPictureParametersEXT {
@@ -626,13 +674,41 @@ typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
#define VK_EXT_video_encode_h265 1
#include "vk_video/vulkan_video_codec_h265std.h"
#include "vk_video/vulkan_video_codec_h265std_encode.h"
-#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 3
+#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 5
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
+
+typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0x00000004,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0x00000008,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0x00000010,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000020,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0x00000040,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0x00000080,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0x00000100,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0x00000200,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0x00000400,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0x00000800,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0x00001000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0x00002000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0x00004000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0x00008000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0x00010000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0x00020000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0x00040000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0x00080000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0x00100000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0x00200000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0x00400000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00800000,
+ VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoEncodeH265CapabilityFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
- VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265InputModeFlagBitsEXT;
@@ -640,7 +716,7 @@ typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
- VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265OutputModeFlagBitsEXT;
@@ -648,14 +724,22 @@ typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH265CreateFlagsEXT;
typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT {
- VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT = 0x00000001,
- VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000002,
- VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000004,
- VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000008,
+ VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000004,
VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265CtbSizeFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
+typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT {
+ VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0x00000004,
+ VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0x00000008,
+ VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoEncodeH265TransformBlockSizeFlagBitsEXT;
+typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT;
+
typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT {
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
@@ -664,19 +748,29 @@ typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT {
} VkVideoEncodeH265RateControlStructureFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
typedef struct VkVideoEncodeH265CapabilitiesEXT {
- VkStructureType sType;
- const void* pNext;
- VkVideoEncodeH265CapabilityFlagsEXT flags;
- VkVideoEncodeH265InputModeFlagsEXT inputModeFlags;
- VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags;
- VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes;
- VkExtent2D inputImageDataAlignment;
- uint8_t maxNumL0ReferenceForP;
- uint8_t maxNumL0ReferenceForB;
- uint8_t maxNumL1Reference;
- uint8_t maxNumSubLayers;
- uint8_t qualityLevelCount;
- VkExtensionProperties stdExtensionVersion;
+ VkStructureType sType;
+ const void* pNext;
+ VkVideoEncodeH265CapabilityFlagsEXT flags;
+ VkVideoEncodeH265InputModeFlagsEXT inputModeFlags;
+ VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags;
+ VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes;
+ VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes;
+ uint8_t maxPPictureL0ReferenceCount;
+ uint8_t maxBPictureL0ReferenceCount;
+ uint8_t maxL1ReferenceCount;
+ uint8_t maxSubLayersCount;
+ uint8_t minLog2MinLumaCodingBlockSizeMinus3;
+ uint8_t maxLog2MinLumaCodingBlockSizeMinus3;
+ uint8_t minLog2MinLumaTransformBlockSizeMinus2;
+ uint8_t maxLog2MinLumaTransformBlockSizeMinus2;
+ uint8_t minMaxTransformHierarchyDepthInter;
+ uint8_t maxMaxTransformHierarchyDepthInter;
+ uint8_t minMaxTransformHierarchyDepthIntra;
+ uint8_t maxMaxTransformHierarchyDepthIntra;
+ uint8_t maxDiffCuQpDeltaDepth;
+ uint8_t minMaxNumMergeCand;
+ uint8_t maxMaxNumMergeCand;
+ VkExtensionProperties stdExtensionVersion;
} VkVideoEncodeH265CapabilitiesEXT;
typedef struct VkVideoEncodeH265SessionCreateInfoEXT {
@@ -723,21 +817,21 @@ typedef struct VkVideoEncodeH265ReferenceListsEXT {
const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
} VkVideoEncodeH265ReferenceListsEXT;
-typedef struct VkVideoEncodeH265NaluSliceEXT {
- VkStructureType sType;
- const void* pNext;
- uint32_t ctbCount;
- const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
- const StdVideoEncodeH265SliceHeader* pSliceHeaderStd;
-} VkVideoEncodeH265NaluSliceEXT;
+typedef struct VkVideoEncodeH265NaluSliceSegmentEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t ctbCount;
+ const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
+ const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd;
+} VkVideoEncodeH265NaluSliceSegmentEXT;
typedef struct VkVideoEncodeH265VclFrameInfoEXT {
- VkStructureType sType;
- const void* pNext;
- const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
- uint32_t naluSliceEntryCount;
- const VkVideoEncodeH265NaluSliceEXT* pNaluSliceEntries;
- const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo;
+ VkStructureType sType;
+ const void* pNext;
+ const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
+ uint32_t naluSliceSegmentEntryCount;
+ const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries;
+ const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo;
} VkVideoEncodeH265VclFrameInfoEXT;
typedef struct VkVideoEncodeH265EmitPictureParametersEXT {
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index 228e4ef6e5a..4a8891e5505 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -72,7 +72,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 204
+#define VK_HEADER_VERSION 207
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -477,6 +477,9 @@ typedef enum VkStructureType {
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
#endif
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
@@ -522,6 +525,9 @@ typedef enum VkStructureType {
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038010,
#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT = 1000038011,
+#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
#endif
@@ -541,7 +547,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
- VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006,
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT = 1000039006,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007,
@@ -871,6 +877,9 @@ typedef enum VkStructureType {
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
#endif
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
@@ -933,6 +942,9 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
@@ -1984,14 +1996,15 @@ typedef enum VkImageAspectFlagBits {
VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
+ VK_IMAGE_ASPECT_NONE = 0,
VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
- VK_IMAGE_ASPECT_NONE_KHR = 0,
VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
+ VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageAspectFlagBits;
typedef VkFlags VkImageAspectFlags;
@@ -6259,10 +6272,6 @@ typedef enum VkToolPurposeFlagBits {
VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkToolPurposeFlagBits;
typedef VkFlags VkToolPurposeFlags;
-
-typedef enum VkPrivateDataSlotCreateFlagBits {
- VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkPrivateDataSlotCreateFlagBits;
typedef VkFlags VkPrivateDataSlotCreateFlags;
typedef VkFlags64 VkPipelineStageFlags2;
@@ -13127,8 +13136,6 @@ typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
-typedef VkPrivateDataSlotCreateFlagBits VkPrivateDataSlotCreateFlagBitsEXT;
-
typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
@@ -13418,7 +13425,7 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
VkBool32 rasterizationOrderColorAttachmentAccess;
VkBool32 rasterizationOrderDepthAttachmentAccess;
VkBool32 rasterizationOrderStencilAttachmentAccess;
@@ -13829,6 +13836,45 @@ VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
#endif
+#define VK_VALVE_descriptor_set_host_mapping 1
+#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
+#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
+typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 descriptorSetHostMapping;
+} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
+
+typedef struct VkDescriptorSetBindingReferenceVALVE {
+ VkStructureType sType;
+ const void* pNext;
+ VkDescriptorSetLayout descriptorSetLayout;
+ uint32_t binding;
+} VkDescriptorSetBindingReferenceVALVE;
+
+typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
+ VkStructureType sType;
+ void* pNext;
+ size_t descriptorOffset;
+ uint32_t descriptorSize;
+} VkDescriptorSetLayoutHostMappingInfoVALVE;
+
+typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
+typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
+ VkDevice device,
+ const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
+ VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
+
+VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
+ VkDevice device,
+ VkDescriptorSet descriptorSet,
+ void** ppData);
+#endif
+
+
#define VK_QCOM_fragment_density_map_offset 1
#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml
index 9477feae118..43a1c48532c 100644
--- a/src/vulkan/registry/vk.xml
+++ b/src/vulkan/registry/vk.xml
@@ -56,6 +56,7 @@ branch of the member gitlab server.
+
@@ -72,6 +73,7 @@ branch of the member gitlab server.
+
@@ -157,7 +159,7 @@ branch of the member gitlab server.
// Vulkan 1.3 version number
#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 204
+#define VK_HEADER_VERSION 207
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -296,7 +298,7 @@ typedef void CAMetalLayer;
typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
- typedef VkFlags VkPrivateDataSlotCreateFlags;
+ typedef VkFlags VkPrivateDataSlotCreateFlags;
typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
@@ -407,6 +409,7 @@ typedef void CAMetalLayer;
typedef VkFlags VkVideoCodingControlFlagsKHR;
Video Decode Core extension
+ typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
typedef VkFlags VkVideoDecodeFlagsKHR;
Video Decode H.264 extension
@@ -418,6 +421,7 @@ typedef void CAMetalLayer;
Video Encode Core extension
typedef VkFlags VkVideoEncodeFlagsKHR;
+ typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
@@ -431,12 +435,13 @@ typedef void CAMetalLayer;
typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT;
Video Encode H.265 extension
- typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
+ typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH265CreateFlagsEXT;
- typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
+ typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
+ typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT;
Types which can be void pointers or class pointers, selected at compile time
VK_DEFINE_HANDLE(VkInstance)
@@ -744,6 +749,7 @@ typedef void CAMetalLayer;
Video Decode extensions
+
Video H.264 Decode extensions
@@ -753,6 +759,7 @@ typedef void CAMetalLayer;
Video Encode extensions
+
@@ -764,10 +771,12 @@ typedef void CAMetalLayer;
Video H.265 Encode extensions
+
-
+
+
The PFN_vk*Function types are used by VkAllocationCallbacks below
typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
@@ -1739,7 +1748,7 @@ typedef void CAMetalLayer;
VkSampleCountFlags framebufferDepthSampleCountssupported depth sample counts for a framebuffer
VkSampleCountFlags framebufferStencilSampleCountssupported stencil sample counts for a framebuffer
VkSampleCountFlags framebufferNoAttachmentsSampleCountssupported sample counts for a subpass which uses no attachments
- uint32_t maxColorAttachmentsmax number of color attachments per subpass
+ uint32_t maxColorAttachmentsmax number of color attachments per subpass
VkSampleCountFlags sampledImageColorSampleCountssupported color sample counts for a non-integer sampled image
VkSampleCountFlags sampledImageIntegerSampleCountssupported sample counts for an integer image
VkSampleCountFlags sampledImageDepthSampleCountssupported depth sample counts for a sampled image
@@ -3039,7 +3048,7 @@ typedef void CAMetalLayer;
VkStructureType sType
const void* pNext
const VkImageCreateInfo* pCreateInfo
- VkImageAspectFlagBits planeAspect
+ VkImageAspectFlagBits planeAspect
@@ -3181,7 +3190,7 @@ typedef void CAMetalLayer;
float x
float y
-
+
VkStructureType sType
const void* pNext
VkSampleCountFlagBits sampleLocationsPerPixel
@@ -3506,7 +3515,7 @@ typedef void CAMetalLayer;
uint64_t memoryObjectId
VkDeviceSize size
VkObjectType objectType
- uint64_t objectHandle
+ uint64_t objectHandle
uint32_t heapIndex
@@ -4282,7 +4291,7 @@ typedef void CAMetalLayer;
VkStructureType sType
void* pNext
uint32_t drmFormatModifierCount
- VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
+ VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
uint64_t drmFormatModifier
@@ -5315,7 +5324,7 @@ typedef void CAMetalLayer;
void* pNextPointer to next structure
VkSurfaceTransformFlagBitsKHR transform
-
+
VkStructureType sType
const void* pNext
VkSurfaceTransformFlagBitsKHR transform
@@ -5588,7 +5597,7 @@ typedef void CAMetalLayer;
VkStructureType sType
void* pNext
- VkSampleCountFlagBits maxFragmentShadingRateInvocationCount
+ VkSampleCountFlagBits maxFragmentShadingRateInvocationCount
VkStructureType sType
@@ -5775,7 +5784,7 @@ typedef void CAMetalLayer;
VkStructureTypesType
void* pNext
uint32_t profileCount
- const VkVideoProfileKHR* pProfiles
+ const VkVideoProfileKHR* pProfiles
VkStructureTypesType
@@ -5836,6 +5845,11 @@ typedef void CAMetalLayer;
int8_t slotIndexThe reference slot index
const VkVideoPictureResourceKHR* pPictureResourceThe reference picture resource
+
+ VkStructureTypesType
+ void* pNext
+ VkVideoDecodeCapabilityFlagsKHR flags
+
VkStructureTypesType
const void* pNext
@@ -5880,11 +5894,11 @@ typedef void CAMetalLayer;
VkStructureTypesType
- const void* pNext
- StdVideoH264ProfileIdc stdProfileIdc
- VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout
+ const void* pNext
+ StdVideoH264ProfileIdc stdProfileIdc
+ VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout
-
+
VkStructureTypesType
void* pNext
uint32_t maxLevel
@@ -5960,7 +5974,7 @@ typedef void CAMetalLayer;
const void* pNext
StdVideoH265ProfileIdc stdProfileIdc
-
+
VkStructureTypesType
void* pNext
uint32_t maxLevel
@@ -6075,19 +6089,29 @@ typedef void CAMetalLayer;
uint32_t virtualBufferSizeInMs
uint32_t initialVirtualBufferSizeInMs
-
+
+ VkStructureTypesType
+ const void* pNext
+ VkVideoEncodeCapabilityFlagsKHR flags
+ VkVideoEncodeRateControlModeFlagsKHR rateControlModes
+ uint8_t rateControlLayerCount
+ uint8_t qualityLevelCount
+ VkExtent2D inputImageDataFillAlignment
+
+
VkStructureTypesType
const void* pNext
- VkVideoEncodeH264CapabilityFlagsEXT flags
+ VkVideoEncodeH264CapabilityFlagsEXT flags
VkVideoEncodeH264InputModeFlagsEXT inputModeFlags
VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags
- VkExtent2D minPictureSizeInMbs
- VkExtent2D maxPictureSizeInMbs
- VkExtent2D inputImageDataAlignment
- uint8_t maxNumL0ReferenceForP
- uint8_t maxNumL0ReferenceForB
- uint8_t maxNumL1Reference
- uint8_t qualityLevelCount
+ uint8_t maxPPictureL0ReferenceCount
+ uint8_t maxBPictureL0ReferenceCount
+ uint8_t maxL1ReferenceCount
+ VkBool32 motionVectorsOverPicBoundariesFlag
+ uint32_t maxBytesPerPicDenom
+ uint32_t maxBitsPerMbDenom
+ uint32_t log2MaxMvLengthHorizontal
+ uint32_t log2MaxMvLengthVertical
VkExtensionProperties stdExtensionVersion
@@ -6100,9 +6124,11 @@ typedef void CAMetalLayer;
#include "vk_video/vulkan_video_codec_h264std_encode.h"
+
+
@@ -6125,18 +6151,24 @@ typedef void CAMetalLayer;
VkStructureTypesType
const void* pNext
int8_t slotIndex
- const StdVideoEncodeH264PictureInfo* pStdPictureInfo
+ const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo
VkStructureTypesType
const void* pNext
- uint8_t refDefaultFinalList0EntryCount
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries
- uint8_t refDefaultFinalList1EntryCount
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries
- uint32_t naluSliceEntryCount
+ const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists
+ uint32_t naluSliceEntryCount
const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries
- const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo
+ const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo
+
+
+ VkStructureTypesType
+ const void* pNext
+ uint8_t referenceList0EntryCount
+ const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries
+ uint8_t referenceList1EntryCount
+ const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries
+ const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations
VkStructureTypesType
@@ -6154,12 +6186,9 @@ typedef void CAMetalLayer;
VkStructureTypesType
const void* pNext
- const StdVideoEncodeH264SliceHeader* pSliceHeaderStd
uint32_t mbCount
- uint8_t refFinalList0EntryCount
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries
- uint8_t refFinalList1EntryCount
- const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries
+ const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists
+ const StdVideoEncodeH264SliceHeader* pSliceHeaderStd
VkStructureTypesType
@@ -6193,19 +6222,29 @@ typedef void CAMetalLayer;
VkBool32 useMaxFrameSize
VkVideoEncodeH264FrameSizeEXT maxFrameSize
-
+
VkStructureTypesType
const void* pNext
- VkVideoEncodeH265CapabilityFlagsEXT flags
+ VkVideoEncodeH265CapabilityFlagsEXT flags
VkVideoEncodeH265InputModeFlagsEXT inputModeFlags
VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags
VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes
- VkExtent2D inputImageDataAlignment
- uint8_t maxNumL0ReferenceForP
- uint8_t maxNumL0ReferenceForB
- uint8_t maxNumL1Reference
- uint8_t maxNumSubLayers
- uint8_t qualityLevelCount
+ VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes
+ uint8_t maxPPictureL0ReferenceCount
+ uint8_t maxBPictureL0ReferenceCount
+ uint8_t maxL1ReferenceCount
+ uint8_t maxSubLayersCount
+ uint8_t minLog2MinLumaCodingBlockSizeMinus3
+ uint8_t maxLog2MinLumaCodingBlockSizeMinus3
+ uint8_t minLog2MinLumaTransformBlockSizeMinus2
+ uint8_t maxLog2MinLumaTransformBlockSizeMinus2
+ uint8_t minMaxTransformHierarchyDepthInter
+ uint8_t maxMaxTransformHierarchyDepthInter
+ uint8_t minMaxTransformHierarchyDepthIntra
+ uint8_t maxMaxTransformHierarchyDepthIntra
+ uint8_t maxDiffCuQpDeltaDepth
+ uint8_t minMaxNumMergeCand
+ uint8_t maxMaxNumMergeCand
VkExtensionProperties stdExtensionVersion
@@ -6217,10 +6256,10 @@ typedef void CAMetalLayer;
#include "vk_video/vulkan_video_codec_h265std_encode.h"
-
+
-
+
@@ -6245,8 +6284,8 @@ typedef void CAMetalLayer;
VkStructureTypesType
const void* pNext
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists
- uint32_t naluSliceEntryCount
- const VkVideoEncodeH265NaluSliceEXT* pNaluSliceEntries
+ uint32_t naluSliceSegmentEntryCount
+ const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries
const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo
@@ -6259,12 +6298,12 @@ typedef void CAMetalLayer;
uint32_t ppsIdEntryCount
const uint8_t* ppsIdEntries
-
- VkStructureTypesType
+
+ VkStructureTypesType
const void* pNext
uint32_t ctbCount
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists
- const StdVideoEncodeH265SliceHeader* pSliceHeaderStd
+ const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd
VkStructureTypesType
@@ -6386,7 +6425,7 @@ typedef void CAMetalLayer;
VkBool32 shaderIntegerDotProduct
-
+
VkStructureType sType
void* pNext
VkBool32 integerDotProduct8BitUnsignedAccelerated
@@ -6562,7 +6601,7 @@ typedef void CAMetalLayer;
VkImageFormatConstraintsFlagsFUCHSIA flags
uint64_t sysmemPixelFormat
uint32_t colorSpaceCount
- const VkSysmemColorSpaceFUCHSIA* pColorSpaces
+ const VkSysmemColorSpaceFUCHSIA* pColorSpaces
VkStructureType sType
@@ -6598,7 +6637,7 @@ typedef void CAMetalLayer;
VkStructureType sType
void* pNext
uint32_t drmFormatModifierCount
- VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties
+ VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties
uint64_t drmFormatModifier
@@ -6687,8 +6726,8 @@ typedef void CAMetalLayer;
VkStructureType sType
const void* pNext
- uint32_t colorAttachmentCount
- const VkSampleCountFlagBits* pColorAttachmentSamples
+ uint32_t colorAttachmentCount
+ const VkSampleCountFlagBits* pColorAttachmentSamples
VkSampleCountFlagBits depthStencilAttachmentSamples
@@ -6710,7 +6749,7 @@ typedef void CAMetalLayer;
VkStructureType sType
- const void* pNext
+ void* pNext
VkBool32 rasterizationOrderColorAttachmentAccess
VkBool32 rasterizationOrderDepthAttachmentAccess
VkBool32 rasterizationOrderStencilAttachmentAccess
@@ -6720,6 +6759,23 @@ typedef void CAMetalLayer;
void* pNext
VkBool32 linearColorAttachment
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 descriptorSetHostMapping
+
+
+ VkStructureType sType
+ const void* pNext
+ VkDescriptorSetLayout descriptorSetLayout
+ uint32_t binding
+
+
+ VkStructureType sType
+ void* pNext
+ size_t descriptorOffset
+ uint32_t descriptorSize
+
Vulkan enumerant (token) definitions
@@ -8323,6 +8379,11 @@ typedef void CAMetalLayer;
+
+
+
+
+
@@ -8331,6 +8392,10 @@ typedef void CAMetalLayer;
+
+
+
+
@@ -8341,17 +8406,29 @@ typedef void CAMetalLayer;
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8445,27 +8522,58 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -8696,7 +8804,7 @@ typedef void CAMetalLayer;
VkResult vkQueueBindSparse
VkQueue queue
uint32_t bindInfoCount
- const VkBindSparseInfo* pBindInfo
+ const VkBindSparseInfo* pBindInfo
VkFence fence
@@ -11622,6 +11730,18 @@ typedef void CAMetalLayer;
VkCommandBuffer commandBuffer
+
+ void vkGetDescriptorSetLayoutHostMappingInfoVALVE
+ VkDevice device
+ const VkDescriptorSetBindingReferenceVALVE* pBindingReference
+ VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping
+
+
+ void vkGetDescriptorSetHostMappingVALVE
+ VkDevice device
+ VkDescriptorSet descriptorSet
+ void** ppData
+
@@ -12701,8 +12821,7 @@ typedef void CAMetalLayer;
-
-
+
@@ -12911,6 +13030,7 @@ typedef void CAMetalLayer;
+
@@ -13308,9 +13428,10 @@ typedef void CAMetalLayer;
-
+
+
@@ -13326,6 +13447,10 @@ typedef void CAMetalLayer;
+
+
+
+
@@ -13475,7 +13600,7 @@ typedef void CAMetalLayer;
-
+
@@ -13487,7 +13612,8 @@ typedef void CAMetalLayer;
-
+
+
@@ -13503,6 +13629,7 @@ typedef void CAMetalLayer;
+
@@ -13517,7 +13644,7 @@ typedef void CAMetalLayer;
-
+
@@ -13525,7 +13652,7 @@ typedef void CAMetalLayer;
-
+
@@ -13533,6 +13660,7 @@ typedef void CAMetalLayer;
+
@@ -13542,6 +13670,8 @@ typedef void CAMetalLayer;
+
+
@@ -13549,7 +13679,7 @@ typedef void CAMetalLayer;
-
+
@@ -16635,6 +16765,7 @@ typedef void CAMetalLayer;
+
@@ -16921,8 +17052,7 @@ typedef void CAMetalLayer;
-
-
+
@@ -16959,9 +17089,9 @@ typedef void CAMetalLayer;
-
+
-
+
@@ -16969,6 +17099,7 @@ typedef void CAMetalLayer;
+
@@ -16986,13 +17117,17 @@ typedef void CAMetalLayer;
+
+
+
+
-
+
@@ -17206,7 +17341,8 @@ typedef void CAMetalLayer;
-
+
+
@@ -17777,6 +17913,7 @@ typedef void CAMetalLayer;
+
@@ -18055,7 +18192,7 @@ typedef void CAMetalLayer;
-
+
@@ -18101,10 +18238,18 @@ typedef void CAMetalLayer;
-
+
-
-
+
+
+
+
+
+
+
+
+
+
@@ -18316,6 +18461,48 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -19873,6 +20060,13 @@ typedef void CAMetalLayer;
+
+
+
+
+
+
+