duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

vulkan_core.h (999969B)


      1 #ifndef VULKAN_CORE_H_
      2 #define VULKAN_CORE_H_ 1
      3 
      4 /*
      5 ** Copyright 2015-2024 The Khronos Group Inc.
      6 **
      7 ** SPDX-License-Identifier: Apache-2.0
      8 */
      9 
     10 /*
     11 ** This header is generated from the Khronos Vulkan XML API Registry.
     12 **
     13 */
     14 
     15 
     16 #ifdef __cplusplus
     17 extern "C" {
     18 #endif
     19 
     20 
     21 
     22 // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
     23 #define VK_VERSION_1_0 1
     24 #include "vk_platform.h"
     25 
     26 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
     27 
     28 
     29 #ifndef VK_USE_64_BIT_PTR_DEFINES
     30     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
     31         #define VK_USE_64_BIT_PTR_DEFINES 1
     32     #else
     33         #define VK_USE_64_BIT_PTR_DEFINES 0
     34     #endif
     35 #endif
     36 
     37 
     38 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
     39     #if (VK_USE_64_BIT_PTR_DEFINES==1)
     40         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
     41             #define VK_NULL_HANDLE nullptr
     42         #else
     43             #define VK_NULL_HANDLE ((void*)0)
     44         #endif
     45     #else
     46         #define VK_NULL_HANDLE 0ULL
     47     #endif
     48 #endif
     49 #ifndef VK_NULL_HANDLE
     50     #define VK_NULL_HANDLE 0
     51 #endif
     52 
     53 
     54 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
     55     #if (VK_USE_64_BIT_PTR_DEFINES==1)
     56         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
     57     #else
     58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
     59     #endif
     60 #endif
     61 
     62 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
     63     ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
     64 
     65 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
     66 //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
     67 
     68 // Vulkan 1.0 version number
     69 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
     70 
     71 // Version of this file
     72 #define VK_HEADER_VERSION 279
     73 
     74 // Complete version of this file
     75 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
     76 
     77 // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
     78 #define VK_MAKE_VERSION(major, minor, patch) \
     79     ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
     80 
     81 // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
     82 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
     83 
     84 // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
     85 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
     86 
     87 // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
     88 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
     89 
     90 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
     91 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
     92 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
     93 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
     94 typedef uint32_t VkBool32;
     95 typedef uint64_t VkDeviceAddress;
     96 typedef uint64_t VkDeviceSize;
     97 typedef uint32_t VkFlags;
     98 typedef uint32_t VkSampleMask;
     99 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
    100 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
    101 VK_DEFINE_HANDLE(VkInstance)
    102 VK_DEFINE_HANDLE(VkPhysicalDevice)
    103 VK_DEFINE_HANDLE(VkDevice)
    104 VK_DEFINE_HANDLE(VkQueue)
    105 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
    106 VK_DEFINE_HANDLE(VkCommandBuffer)
    107 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
    108 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
    109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
    110 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
    111 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
    112 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
    113 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
    114 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
    115 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
    116 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
    117 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
    118 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
    119 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
    120 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
    121 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
    122 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
    123 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
    124 #define VK_ATTACHMENT_UNUSED              (~0U)
    125 #define VK_FALSE                          0U
    126 #define VK_LOD_CLAMP_NONE                 1000.0F
    127 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
    128 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
    129 #define VK_REMAINING_MIP_LEVELS           (~0U)
    130 #define VK_SUBPASS_EXTERNAL               (~0U)
    131 #define VK_TRUE                           1U
    132 #define VK_WHOLE_SIZE                     (~0ULL)
    133 #define VK_MAX_MEMORY_TYPES               32U
    134 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256U
    135 #define VK_UUID_SIZE                      16U
    136 #define VK_MAX_EXTENSION_NAME_SIZE        256U
    137 #define VK_MAX_DESCRIPTION_SIZE           256U
    138 #define VK_MAX_MEMORY_HEAPS               16U
    139 
    140 typedef enum VkResult {
    141     VK_SUCCESS = 0,
    142     VK_NOT_READY = 1,
    143     VK_TIMEOUT = 2,
    144     VK_EVENT_SET = 3,
    145     VK_EVENT_RESET = 4,
    146     VK_INCOMPLETE = 5,
    147     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
    148     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
    149     VK_ERROR_INITIALIZATION_FAILED = -3,
    150     VK_ERROR_DEVICE_LOST = -4,
    151     VK_ERROR_MEMORY_MAP_FAILED = -5,
    152     VK_ERROR_LAYER_NOT_PRESENT = -6,
    153     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
    154     VK_ERROR_FEATURE_NOT_PRESENT = -8,
    155     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
    156     VK_ERROR_TOO_MANY_OBJECTS = -10,
    157     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
    158     VK_ERROR_FRAGMENTED_POOL = -12,
    159     VK_ERROR_UNKNOWN = -13,
    160     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
    161     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
    162     VK_ERROR_FRAGMENTATION = -1000161000,
    163     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
    164     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
    165     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
    166     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
    167     VK_SUBOPTIMAL_KHR = 1000001003,
    168     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
    169     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
    170     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
    171     VK_ERROR_INVALID_SHADER_NV = -1000012000,
    172     VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
    173     VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
    174     VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
    175     VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
    176     VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
    177     VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
    178     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
    179     VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
    180     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
    181     VK_THREAD_IDLE_KHR = 1000268000,
    182     VK_THREAD_DONE_KHR = 1000268001,
    183     VK_OPERATION_DEFERRED_KHR = 1000268002,
    184     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
    185     VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
    186     VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
    187     VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
    188     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
    189     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
    190     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
    191     VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
    192     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    193     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    194     VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
    195     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
    196     VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
    197     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
    198 } VkResult;
    199 
    200 typedef enum VkStructureType {
    201     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
    202     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
    203     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
    204     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
    205     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
    206     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
    207     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
    208     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
    209     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
    210     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
    211     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
    212     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
    213     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
    214     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
    215     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
    216     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
    217     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
    218     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
    219     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
    220     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
    221     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
    222     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
    223     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
    224     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
    225     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
    226     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
    227     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
    228     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
    229     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
    230     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
    231     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
    232     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
    233     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
    234     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
    235     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
    236     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
    237     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
    238     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
    239     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
    240     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
    241     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
    242     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
    243     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
    244     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
    245     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
    246     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
    247     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
    248     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
    249     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
    250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
    251     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
    252     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
    253     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
    254     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
    255     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
    256     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
    257     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
    258     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
    259     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
    260     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
    261     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
    262     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
    263     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
    264     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
    265     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
    266     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
    267     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
    268     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
    269     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
    270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
    271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
    272     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
    273     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
    274     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
    275     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
    276     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
    277     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
    278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
    279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
    280     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
    281     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
    282     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
    283     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
    284     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
    285     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
    286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
    287     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
    288     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
    289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
    290     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
    291     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
    292     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
    293     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
    294     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
    295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
    296     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
    297     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
    298     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
    299     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
    300     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
    301     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
    302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
    303     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
    304     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
    305     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
    306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
    307     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
    308     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
    309     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
    310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
    311     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
    312     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
    313     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
    314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
    315     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
    316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
    317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
    318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
    319     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
    320     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
    321     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
    322     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
    323     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
    324     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
    325     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
    326     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
    327     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
    328     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
    329     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
    330     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
    331     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
    332     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
    333     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
    334     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
    335     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
    336     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
    337     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
    338     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
    339     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
    340     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
    341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
    342     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
    343     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
    344     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
    345     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
    346     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
    347     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
    348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
    349     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
    350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
    351     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
    352     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
    353     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
    354     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
    355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
    356     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
    357     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
    358     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
    359     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
    360     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
    361     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
    362     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
    363     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
    364     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
    365     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
    366     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
    367     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
    368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
    369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
    370     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
    371     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
    372     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
    373     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
    374     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
    375     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
    376     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
    377     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
    378     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
    379     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
    380     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
    381     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
    382     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
    383     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
    384     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
    385     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
    386     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
    387     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
    388     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
    389     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
    390     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
    391     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
    392     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
    393     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
    394     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
    395     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
    396     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
    397     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
    398     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
    399     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
    400     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
    401     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
    402     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
    403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
    404     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
    405     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
    406     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
    407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
    408     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
    409     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
    410     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
    411     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
    412     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
    413     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
    414     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
    415     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
    416     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
    417     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
    418     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
    419     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
    420     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
    421     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
    422     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
    423     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
    424     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
    425     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
    426     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
    427     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
    428     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
    429     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
    430     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
    431     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
    432     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
    433     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
    434     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
    435     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
    436     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
    437     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
    438     VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
    439     VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
    440     VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
    441     VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
    442     VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
    443     VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
    444     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
    445     VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
    446     VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
    447     VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
    448     VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
    449     VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
    450     VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
    451     VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
    452     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
    453     VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
    454     VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
    455     VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
    456     VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
    457     VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
    458     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
    459     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
    460     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
    461     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
    462     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
    463     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
    464     VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
    465     VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
    466     VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
    467     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
    468     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
    469     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
    470     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
    471     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
    472     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
    473     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
    474     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
    475     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
    476     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
    477     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
    478     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
    479     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
    480     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
    481     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
    482     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
    483     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
    484     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
    485     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
    486     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
    487     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
    488     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
    489     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
    490     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
    491     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
    492     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
    493     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
    494     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
    495     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
    496     VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
    497     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
    498     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
    499     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
    500     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
    501     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
    502     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
    503     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
    504     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
    505     VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
    506     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
    507     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
    508     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
    509     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
    510     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
    511     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
    512     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
    513     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
    514     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
    515     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
    516     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
    517     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
    518     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
    519     VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000,
    520     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001,
    521     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002,
    522     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
    523     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
    524     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
    525     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
    526     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
    527     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
    528     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
    529     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
    530     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
    531     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
    532     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
    533     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
    534     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
    535     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
    536     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
    537     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
    538     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
    539     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
    540     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
    541     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
    542     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
    543     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
    544     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
    545     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
    546     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
    547     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
    548     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
    549     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
    550     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
    551     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
    552     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
    553     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
    554     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
    555     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
    556     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
    557     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
    558     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
    559     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
    560     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
    561     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
    562     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
    563     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
    564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
    565     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
    566     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
    567     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
    568     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
    569     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
    570     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
    571     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
    572     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
    573     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
    574     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
    575     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
    576     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
    577     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
    578     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
    579     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
    580     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
    581     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
    582     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
    583     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
    584     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
    585     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
    586     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
    587     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
    588     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
    589     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
    590     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
    591     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
    592     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
    593 #ifdef VK_ENABLE_BETA_EXTENSIONS
    594     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
    595 #endif
    596 #ifdef VK_ENABLE_BETA_EXTENSIONS
    597     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
    598 #endif
    599 #ifdef VK_ENABLE_BETA_EXTENSIONS
    600     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
    601 #endif
    602 #ifdef VK_ENABLE_BETA_EXTENSIONS
    603     VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
    604 #endif
    605 #ifdef VK_ENABLE_BETA_EXTENSIONS
    606     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
    607 #endif
    608     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
    609     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
    610     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
    611     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
    612     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
    613     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
    614     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
    615     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
    616     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
    617     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
    618     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
    619     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
    620     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
    621     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
    622     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
    623     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
    624     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
    625     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
    626     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
    627     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
    628     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
    629     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
    630     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
    631     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
    632     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
    633     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
    634     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
    635     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
    636     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
    637     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
    638     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
    639     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
    640     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
    641     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
    642     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
    643     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
    644     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
    645     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
    646     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
    647     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
    648     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
    649 #ifdef VK_ENABLE_BETA_EXTENSIONS
    650     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
    651 #endif
    652 #ifdef VK_ENABLE_BETA_EXTENSIONS
    653     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
    654 #endif
    655     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
    656     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
    657     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
    658     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
    659     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
    660     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
    661     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
    662     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
    663     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
    664     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
    665     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
    666     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
    667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
    668     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
    669     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
    670     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
    671     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
    672     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
    673     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
    674     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
    675     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
    676     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
    677     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
    678     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
    679     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
    680     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
    681     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
    682     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
    683     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
    684     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
    685     VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
    686     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
    687     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
    688     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
    689     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
    690     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
    691     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
    692     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
    693     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
    694     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
    695     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
    696     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
    697     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
    698     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
    699     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
    700     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
    701     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
    702     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
    703     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
    704     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
    705     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
    706     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
    707     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
    708     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
    709     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
    710     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
    711     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
    712     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
    713     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
    714     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
    715     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
    716     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
    717     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
    718     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
    719     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
    720     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
    721     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
    722     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000,
    723     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = 1000232001,
    724     VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = 1000232002,
    725     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
    726     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
    727     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
    728     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
    729     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
    730     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
    731     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
    732     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
    733     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
    734     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
    735     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
    736     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
    737     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
    738     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
    739     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
    740     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
    741     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
    742     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
    743     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
    744     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
    745     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
    746     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
    747     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
    748     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
    749     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
    750     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
    751     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
    752     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
    753     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
    754     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
    755     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
    756     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
    757     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
    758     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
    759     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000,
    760     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001,
    761     VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002,
    762     VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003,
    763     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004,
    764     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005,
    765     VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006,
    766     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007,
    767     VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008,
    768     VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009,
    769     VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
    770     VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
    771     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
    772     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
    773     VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
    774     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
    775     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
    776     VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
    777     VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
    778     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
    779     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
    780     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
    781     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
    782     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
    783     VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
    784     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
    785     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
    786     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
    787     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
    788     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
    789     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
    790     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
    791     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
    792     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
    793     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
    794     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
    795     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
    796     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
    797     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
    798     VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
    799     VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
    800     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
    801     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
    802     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
    803     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
    804     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
    805     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
    806     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
    807     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
    808     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
    809     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
    810     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
    811     VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
    812     VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
    813     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
    814     VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
    815     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
    816     VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
    817     VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
    818     VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
    819     VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
    820     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
    821     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
    822     VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
    823     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
    824     VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
    825     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
    826     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
    827     VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
    828     VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
    829     VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
    830     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
    831     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
    832     VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
    833     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
    834     VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
    835     VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
    836     VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
    837     VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
    838     VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
    839     VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
    840     VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
    841     VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
    842     VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
    843     VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
    844     VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
    845     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
    846     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
    847     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
    848     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
    849     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
    850     VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
    851     VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
    852     VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
    853     VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
    854     VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
    855     VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
    856     VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
    857     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
    858     VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
    859     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
    860     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
    861     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
    862     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
    863     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
    864     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
    865     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
    866     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
    867     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
    868     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
    869     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
    870     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
    871     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
    872     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
    873     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
    874     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
    875     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
    876     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
    877     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
    878     VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
    879     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
    880     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
    881     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
    882     VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
    883     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
    884     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
    885     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
    886     VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
    887     VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
    888     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
    889     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
    890     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
    891     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
    892     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
    893     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
    894     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
    895     VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
    896     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
    897     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
    898     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
    899     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
    900     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
    901     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
    902     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
    903     VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
    904     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
    905     VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
    906     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
    907     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
    908     VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
    909     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
    910     VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
    911     VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
    912     VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
    913     VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
    914     VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
    915     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
    916     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
    917     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
    918     VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
    919     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
    920     VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
    921     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
    922     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
    923     VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
    924     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
    925     VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
    926     VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
    927     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
    928     VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
    929     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
    930     VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
    931     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
    932     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
    933     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
    934     VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
    935     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
    936     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
    937     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
    938     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
    939     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
    940     VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
    941     VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
    942     VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
    943     VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
    944     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
    945     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
    946     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
    947     VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
    948     VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
    949     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
    950 #ifdef VK_ENABLE_BETA_EXTENSIONS
    951     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
    952 #endif
    953 #ifdef VK_ENABLE_BETA_EXTENSIONS
    954     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
    955 #endif
    956 #ifdef VK_ENABLE_BETA_EXTENSIONS
    957     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
    958 #endif
    959     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
    960     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
    961     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
    962     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
    963     VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
    964     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
    965     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
    966     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = 1000416000,
    967     VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
    968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
    969     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
    970     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
    971     VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
    972     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
    973     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
    974     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
    975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
    976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
    977     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
    978     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
    979     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
    980     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
    981     VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
    982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
    983     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
    984     VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
    985     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
    986     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
    987     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
    988     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
    989     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
    990     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
    991     VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
    992     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
    993     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
    994     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
    995     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
    996     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
    997     VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
    998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
    999     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
   1000     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
   1001     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
   1002     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
   1003     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
   1004     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
   1005     VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
   1006     VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
   1007     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
   1008     VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
   1009     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
   1010     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
   1011     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
   1012     VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
   1013     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
   1014     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
   1015     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
   1016     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
   1017     VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
   1018     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
   1019     VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
   1020     VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
   1021     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
   1022     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
   1023     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
   1024     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
   1025     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
   1026     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
   1027     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
   1028     VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
   1029     VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
   1030     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
   1031     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
   1032     VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
   1033     VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
   1034     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
   1035     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
   1036     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
   1037     VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
   1038     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
   1039     VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
   1040     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
   1041     VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
   1042     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
   1043     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
   1044     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
   1045     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
   1046     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
   1047     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
   1048     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
   1049     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
   1050     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
   1051     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
   1052     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
   1053     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
   1054     VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
   1055     VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
   1056     VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
   1057     VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
   1058     VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
   1059     VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
   1060     VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
   1061     VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
   1062     VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
   1063     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
   1064     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
   1065     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
   1066     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
   1067     VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
   1068     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
   1069     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
   1070     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
   1071     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
   1072     VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
   1073     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
   1074     VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
   1075     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
   1076     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
   1077     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
   1078     VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
   1079     VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
   1080     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
   1081     VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
   1082     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
   1083     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
   1084     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
   1085     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
   1086     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000,
   1087     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001,
   1088     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002,
   1089     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = 1000528000,
   1090     VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
   1091     VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
   1092     VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
   1093     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
   1094     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
   1095     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
   1096     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = 1000265000,
   1097     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = 1000259000,
   1098     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = 1000259001,
   1099     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = 1000259002,
   1100     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
   1101     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = 1000544000,
   1102     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000,
   1103     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001,
   1104     VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002,
   1105     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003,
   1106     VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004,
   1107     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005,
   1108     VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006,
   1109     VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
   1110     VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
   1111     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
   1112     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
   1113     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
   1114     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
   1115     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
   1116     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
   1117     VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
   1118     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
   1119     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
   1120     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
   1121     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
   1122     VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
   1123     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
   1124     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
   1125     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
   1126     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
   1127     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
   1128     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
   1129     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
   1130     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
   1131     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
   1132     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
   1133     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
   1134     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
   1135     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
   1136     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
   1137     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
   1138     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
   1139     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
   1140     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
   1141     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
   1142     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
   1143     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
   1144     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
   1145     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
   1146     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
   1147     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
   1148     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
   1149     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
   1150     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
   1151     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
   1152     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
   1153     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
   1154     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
   1155     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
   1156     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
   1157     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
   1158     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
   1159     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
   1160     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
   1161     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
   1162     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
   1163     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
   1164     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
   1165     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
   1166     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
   1167     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
   1168     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
   1169     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
   1170     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
   1171     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
   1172     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
   1173     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
   1174     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
   1175     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
   1176     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
   1177     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
   1178     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
   1179     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
   1180     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
   1181     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
   1182     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
   1183     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
   1184     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
   1185     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
   1186     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
   1187     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
   1188     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
   1189     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
   1190     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
   1191     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
   1192     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
   1193     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
   1194     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
   1195     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
   1196     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
   1197     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
   1198     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
   1199     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
   1200     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
   1201     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
   1202     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
   1203     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
   1204     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
   1205     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
   1206     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
   1207     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
   1208     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
   1209     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
   1210     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
   1211     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
   1212     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
   1213     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
   1214     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
   1215     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
   1216     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
   1217     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
   1218     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
   1219     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
   1220     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
   1221     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
   1222     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
   1223     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
   1224     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
   1225     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
   1226     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
   1227     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
   1228     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
   1229     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
   1230     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
   1231     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
   1232     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
   1233     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
   1234     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
   1235     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
   1236     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
   1237     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
   1238     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
   1239     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
   1240     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
   1241     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
   1242     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
   1243     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
   1244     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
   1245     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
   1246     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
   1247     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
   1248     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
   1249     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR,
   1250     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR,
   1251     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR,
   1252     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
   1253     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR,
   1254     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
   1255     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
   1256     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
   1257     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
   1258     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
   1259     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
   1260     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
   1261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
   1262     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
   1263     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
   1264     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
   1265     VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
   1266     VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
   1267     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
   1268     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
   1269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
   1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
   1271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
   1272     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
   1273     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
   1274     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
   1275     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
   1276     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
   1277     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
   1278     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
   1279     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
   1280     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
   1281     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
   1282     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
   1283     VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
   1284     VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
   1285     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
   1286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
   1287     VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
   1288     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
   1289     VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
   1290     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
   1291     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
   1292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
   1293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
   1294     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
   1295     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
   1296     VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
   1297     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1298 } VkStructureType;
   1299 
   1300 typedef enum VkPipelineCacheHeaderVersion {
   1301     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
   1302     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
   1303 } VkPipelineCacheHeaderVersion;
   1304 
   1305 typedef enum VkImageLayout {
   1306     VK_IMAGE_LAYOUT_UNDEFINED = 0,
   1307     VK_IMAGE_LAYOUT_GENERAL = 1,
   1308     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
   1309     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
   1310     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
   1311     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
   1312     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
   1313     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
   1314     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
   1315     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
   1316     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
   1317     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
   1318     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
   1319     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
   1320     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
   1321     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
   1322     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
   1323     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
   1324     VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
   1325     VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
   1326     VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
   1327     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
   1328     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
   1329     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
   1330     VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = 1000232000,
   1331     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
   1332     VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
   1333     VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
   1334     VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
   1335     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
   1336     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
   1337     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
   1338     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
   1339     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
   1340     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
   1341     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
   1342     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
   1343     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
   1344     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
   1345 } VkImageLayout;
   1346 
   1347 typedef enum VkObjectType {
   1348     VK_OBJECT_TYPE_UNKNOWN = 0,
   1349     VK_OBJECT_TYPE_INSTANCE = 1,
   1350     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
   1351     VK_OBJECT_TYPE_DEVICE = 3,
   1352     VK_OBJECT_TYPE_QUEUE = 4,
   1353     VK_OBJECT_TYPE_SEMAPHORE = 5,
   1354     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
   1355     VK_OBJECT_TYPE_FENCE = 7,
   1356     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
   1357     VK_OBJECT_TYPE_BUFFER = 9,
   1358     VK_OBJECT_TYPE_IMAGE = 10,
   1359     VK_OBJECT_TYPE_EVENT = 11,
   1360     VK_OBJECT_TYPE_QUERY_POOL = 12,
   1361     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
   1362     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
   1363     VK_OBJECT_TYPE_SHADER_MODULE = 15,
   1364     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
   1365     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
   1366     VK_OBJECT_TYPE_RENDER_PASS = 18,
   1367     VK_OBJECT_TYPE_PIPELINE = 19,
   1368     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
   1369     VK_OBJECT_TYPE_SAMPLER = 21,
   1370     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
   1371     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
   1372     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
   1373     VK_OBJECT_TYPE_COMMAND_POOL = 25,
   1374     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
   1375     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
   1376     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
   1377     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
   1378     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
   1379     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
   1380     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
   1381     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
   1382     VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
   1383     VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
   1384     VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
   1385     VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
   1386     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
   1387     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
   1388     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
   1389     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
   1390     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
   1391     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
   1392     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
   1393     VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
   1394     VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
   1395     VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
   1396     VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
   1397     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
   1398     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
   1399     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
   1400     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
   1401     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
   1402     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
   1403 } VkObjectType;
   1404 
   1405 typedef enum VkVendorId {
   1406     VK_VENDOR_ID_VIV = 0x10001,
   1407     VK_VENDOR_ID_VSI = 0x10002,
   1408     VK_VENDOR_ID_KAZAN = 0x10003,
   1409     VK_VENDOR_ID_CODEPLAY = 0x10004,
   1410     VK_VENDOR_ID_MESA = 0x10005,
   1411     VK_VENDOR_ID_POCL = 0x10006,
   1412     VK_VENDOR_ID_MOBILEYE = 0x10007,
   1413     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
   1414 } VkVendorId;
   1415 
   1416 typedef enum VkSystemAllocationScope {
   1417     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
   1418     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
   1419     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
   1420     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
   1421     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
   1422     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
   1423 } VkSystemAllocationScope;
   1424 
   1425 typedef enum VkInternalAllocationType {
   1426     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
   1427     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
   1428 } VkInternalAllocationType;
   1429 
   1430 typedef enum VkFormat {
   1431     VK_FORMAT_UNDEFINED = 0,
   1432     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
   1433     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
   1434     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
   1435     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
   1436     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
   1437     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
   1438     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
   1439     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
   1440     VK_FORMAT_R8_UNORM = 9,
   1441     VK_FORMAT_R8_SNORM = 10,
   1442     VK_FORMAT_R8_USCALED = 11,
   1443     VK_FORMAT_R8_SSCALED = 12,
   1444     VK_FORMAT_R8_UINT = 13,
   1445     VK_FORMAT_R8_SINT = 14,
   1446     VK_FORMAT_R8_SRGB = 15,
   1447     VK_FORMAT_R8G8_UNORM = 16,
   1448     VK_FORMAT_R8G8_SNORM = 17,
   1449     VK_FORMAT_R8G8_USCALED = 18,
   1450     VK_FORMAT_R8G8_SSCALED = 19,
   1451     VK_FORMAT_R8G8_UINT = 20,
   1452     VK_FORMAT_R8G8_SINT = 21,
   1453     VK_FORMAT_R8G8_SRGB = 22,
   1454     VK_FORMAT_R8G8B8_UNORM = 23,
   1455     VK_FORMAT_R8G8B8_SNORM = 24,
   1456     VK_FORMAT_R8G8B8_USCALED = 25,
   1457     VK_FORMAT_R8G8B8_SSCALED = 26,
   1458     VK_FORMAT_R8G8B8_UINT = 27,
   1459     VK_FORMAT_R8G8B8_SINT = 28,
   1460     VK_FORMAT_R8G8B8_SRGB = 29,
   1461     VK_FORMAT_B8G8R8_UNORM = 30,
   1462     VK_FORMAT_B8G8R8_SNORM = 31,
   1463     VK_FORMAT_B8G8R8_USCALED = 32,
   1464     VK_FORMAT_B8G8R8_SSCALED = 33,
   1465     VK_FORMAT_B8G8R8_UINT = 34,
   1466     VK_FORMAT_B8G8R8_SINT = 35,
   1467     VK_FORMAT_B8G8R8_SRGB = 36,
   1468     VK_FORMAT_R8G8B8A8_UNORM = 37,
   1469     VK_FORMAT_R8G8B8A8_SNORM = 38,
   1470     VK_FORMAT_R8G8B8A8_USCALED = 39,
   1471     VK_FORMAT_R8G8B8A8_SSCALED = 40,
   1472     VK_FORMAT_R8G8B8A8_UINT = 41,
   1473     VK_FORMAT_R8G8B8A8_SINT = 42,
   1474     VK_FORMAT_R8G8B8A8_SRGB = 43,
   1475     VK_FORMAT_B8G8R8A8_UNORM = 44,
   1476     VK_FORMAT_B8G8R8A8_SNORM = 45,
   1477     VK_FORMAT_B8G8R8A8_USCALED = 46,
   1478     VK_FORMAT_B8G8R8A8_SSCALED = 47,
   1479     VK_FORMAT_B8G8R8A8_UINT = 48,
   1480     VK_FORMAT_B8G8R8A8_SINT = 49,
   1481     VK_FORMAT_B8G8R8A8_SRGB = 50,
   1482     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
   1483     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
   1484     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
   1485     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
   1486     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
   1487     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
   1488     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
   1489     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
   1490     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
   1491     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
   1492     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
   1493     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
   1494     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
   1495     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
   1496     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
   1497     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
   1498     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
   1499     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
   1500     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
   1501     VK_FORMAT_R16_UNORM = 70,
   1502     VK_FORMAT_R16_SNORM = 71,
   1503     VK_FORMAT_R16_USCALED = 72,
   1504     VK_FORMAT_R16_SSCALED = 73,
   1505     VK_FORMAT_R16_UINT = 74,
   1506     VK_FORMAT_R16_SINT = 75,
   1507     VK_FORMAT_R16_SFLOAT = 76,
   1508     VK_FORMAT_R16G16_UNORM = 77,
   1509     VK_FORMAT_R16G16_SNORM = 78,
   1510     VK_FORMAT_R16G16_USCALED = 79,
   1511     VK_FORMAT_R16G16_SSCALED = 80,
   1512     VK_FORMAT_R16G16_UINT = 81,
   1513     VK_FORMAT_R16G16_SINT = 82,
   1514     VK_FORMAT_R16G16_SFLOAT = 83,
   1515     VK_FORMAT_R16G16B16_UNORM = 84,
   1516     VK_FORMAT_R16G16B16_SNORM = 85,
   1517     VK_FORMAT_R16G16B16_USCALED = 86,
   1518     VK_FORMAT_R16G16B16_SSCALED = 87,
   1519     VK_FORMAT_R16G16B16_UINT = 88,
   1520     VK_FORMAT_R16G16B16_SINT = 89,
   1521     VK_FORMAT_R16G16B16_SFLOAT = 90,
   1522     VK_FORMAT_R16G16B16A16_UNORM = 91,
   1523     VK_FORMAT_R16G16B16A16_SNORM = 92,
   1524     VK_FORMAT_R16G16B16A16_USCALED = 93,
   1525     VK_FORMAT_R16G16B16A16_SSCALED = 94,
   1526     VK_FORMAT_R16G16B16A16_UINT = 95,
   1527     VK_FORMAT_R16G16B16A16_SINT = 96,
   1528     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
   1529     VK_FORMAT_R32_UINT = 98,
   1530     VK_FORMAT_R32_SINT = 99,
   1531     VK_FORMAT_R32_SFLOAT = 100,
   1532     VK_FORMAT_R32G32_UINT = 101,
   1533     VK_FORMAT_R32G32_SINT = 102,
   1534     VK_FORMAT_R32G32_SFLOAT = 103,
   1535     VK_FORMAT_R32G32B32_UINT = 104,
   1536     VK_FORMAT_R32G32B32_SINT = 105,
   1537     VK_FORMAT_R32G32B32_SFLOAT = 106,
   1538     VK_FORMAT_R32G32B32A32_UINT = 107,
   1539     VK_FORMAT_R32G32B32A32_SINT = 108,
   1540     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
   1541     VK_FORMAT_R64_UINT = 110,
   1542     VK_FORMAT_R64_SINT = 111,
   1543     VK_FORMAT_R64_SFLOAT = 112,
   1544     VK_FORMAT_R64G64_UINT = 113,
   1545     VK_FORMAT_R64G64_SINT = 114,
   1546     VK_FORMAT_R64G64_SFLOAT = 115,
   1547     VK_FORMAT_R64G64B64_UINT = 116,
   1548     VK_FORMAT_R64G64B64_SINT = 117,
   1549     VK_FORMAT_R64G64B64_SFLOAT = 118,
   1550     VK_FORMAT_R64G64B64A64_UINT = 119,
   1551     VK_FORMAT_R64G64B64A64_SINT = 120,
   1552     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
   1553     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
   1554     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
   1555     VK_FORMAT_D16_UNORM = 124,
   1556     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
   1557     VK_FORMAT_D32_SFLOAT = 126,
   1558     VK_FORMAT_S8_UINT = 127,
   1559     VK_FORMAT_D16_UNORM_S8_UINT = 128,
   1560     VK_FORMAT_D24_UNORM_S8_UINT = 129,
   1561     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
   1562     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
   1563     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
   1564     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
   1565     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
   1566     VK_FORMAT_BC2_UNORM_BLOCK = 135,
   1567     VK_FORMAT_BC2_SRGB_BLOCK = 136,
   1568     VK_FORMAT_BC3_UNORM_BLOCK = 137,
   1569     VK_FORMAT_BC3_SRGB_BLOCK = 138,
   1570     VK_FORMAT_BC4_UNORM_BLOCK = 139,
   1571     VK_FORMAT_BC4_SNORM_BLOCK = 140,
   1572     VK_FORMAT_BC5_UNORM_BLOCK = 141,
   1573     VK_FORMAT_BC5_SNORM_BLOCK = 142,
   1574     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
   1575     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
   1576     VK_FORMAT_BC7_UNORM_BLOCK = 145,
   1577     VK_FORMAT_BC7_SRGB_BLOCK = 146,
   1578     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
   1579     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
   1580     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
   1581     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
   1582     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
   1583     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
   1584     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
   1585     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
   1586     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
   1587     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
   1588     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
   1589     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
   1590     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
   1591     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
   1592     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
   1593     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
   1594     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
   1595     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
   1596     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
   1597     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
   1598     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
   1599     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
   1600     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
   1601     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
   1602     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
   1603     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
   1604     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
   1605     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
   1606     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
   1607     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
   1608     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
   1609     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
   1610     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
   1611     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
   1612     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
   1613     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
   1614     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
   1615     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
   1616     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
   1617     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
   1618     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
   1619     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
   1620     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
   1621     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
   1622     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
   1623     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
   1624     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
   1625     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
   1626     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
   1627     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
   1628     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
   1629     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
   1630     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
   1631     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
   1632     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
   1633     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
   1634     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
   1635     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
   1636     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
   1637     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
   1638     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
   1639     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
   1640     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
   1641     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
   1642     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
   1643     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
   1644     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
   1645     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
   1646     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
   1647     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
   1648     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
   1649     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
   1650     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
   1651     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
   1652     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
   1653     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
   1654     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
   1655     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
   1656     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
   1657     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
   1658     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
   1659     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
   1660     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
   1661     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
   1662     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
   1663     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
   1664     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
   1665     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
   1666     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
   1667     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
   1668     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
   1669     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
   1670     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
   1671     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
   1672     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
   1673     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
   1674     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
   1675     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
   1676     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
   1677     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
   1678     VK_FORMAT_R16G16_S10_5_NV = 1000464000,
   1679     VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
   1680     VK_FORMAT_A8_UNORM_KHR = 1000470001,
   1681     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
   1682     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
   1683     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
   1684     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
   1685     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
   1686     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
   1687     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
   1688     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
   1689     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
   1690     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
   1691     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
   1692     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
   1693     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
   1694     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
   1695     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
   1696     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
   1697     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
   1698     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
   1699     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
   1700     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
   1701     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
   1702     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
   1703     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
   1704     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
   1705     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
   1706     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
   1707     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
   1708     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
   1709     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
   1710     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
   1711     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
   1712     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
   1713     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
   1714     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
   1715     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
   1716     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
   1717     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
   1718     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
   1719     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
   1720     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
   1721     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
   1722     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
   1723     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
   1724     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
   1725     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
   1726     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
   1727     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
   1728     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
   1729     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
   1730     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
   1731     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
   1732     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
   1733     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
   1734     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
   1735     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
   1736 } VkFormat;
   1737 
   1738 typedef enum VkImageTiling {
   1739     VK_IMAGE_TILING_OPTIMAL = 0,
   1740     VK_IMAGE_TILING_LINEAR = 1,
   1741     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
   1742     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
   1743 } VkImageTiling;
   1744 
   1745 typedef enum VkImageType {
   1746     VK_IMAGE_TYPE_1D = 0,
   1747     VK_IMAGE_TYPE_2D = 1,
   1748     VK_IMAGE_TYPE_3D = 2,
   1749     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1750 } VkImageType;
   1751 
   1752 typedef enum VkPhysicalDeviceType {
   1753     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
   1754     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
   1755     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
   1756     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
   1757     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
   1758     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1759 } VkPhysicalDeviceType;
   1760 
   1761 typedef enum VkQueryType {
   1762     VK_QUERY_TYPE_OCCLUSION = 0,
   1763     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
   1764     VK_QUERY_TYPE_TIMESTAMP = 2,
   1765     VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
   1766     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
   1767     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
   1768     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
   1769     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
   1770     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
   1771     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
   1772     VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
   1773     VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
   1774     VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
   1775     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
   1776     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
   1777     VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
   1778     VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
   1779     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
   1780 } VkQueryType;
   1781 
   1782 typedef enum VkSharingMode {
   1783     VK_SHARING_MODE_EXCLUSIVE = 0,
   1784     VK_SHARING_MODE_CONCURRENT = 1,
   1785     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
   1786 } VkSharingMode;
   1787 
   1788 typedef enum VkComponentSwizzle {
   1789     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
   1790     VK_COMPONENT_SWIZZLE_ZERO = 1,
   1791     VK_COMPONENT_SWIZZLE_ONE = 2,
   1792     VK_COMPONENT_SWIZZLE_R = 3,
   1793     VK_COMPONENT_SWIZZLE_G = 4,
   1794     VK_COMPONENT_SWIZZLE_B = 5,
   1795     VK_COMPONENT_SWIZZLE_A = 6,
   1796     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
   1797 } VkComponentSwizzle;
   1798 
   1799 typedef enum VkImageViewType {
   1800     VK_IMAGE_VIEW_TYPE_1D = 0,
   1801     VK_IMAGE_VIEW_TYPE_2D = 1,
   1802     VK_IMAGE_VIEW_TYPE_3D = 2,
   1803     VK_IMAGE_VIEW_TYPE_CUBE = 3,
   1804     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
   1805     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
   1806     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
   1807     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
   1808 } VkImageViewType;
   1809 
   1810 typedef enum VkBlendFactor {
   1811     VK_BLEND_FACTOR_ZERO = 0,
   1812     VK_BLEND_FACTOR_ONE = 1,
   1813     VK_BLEND_FACTOR_SRC_COLOR = 2,
   1814     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
   1815     VK_BLEND_FACTOR_DST_COLOR = 4,
   1816     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
   1817     VK_BLEND_FACTOR_SRC_ALPHA = 6,
   1818     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
   1819     VK_BLEND_FACTOR_DST_ALPHA = 8,
   1820     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
   1821     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
   1822     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
   1823     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
   1824     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
   1825     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
   1826     VK_BLEND_FACTOR_SRC1_COLOR = 15,
   1827     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
   1828     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
   1829     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
   1830     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
   1831 } VkBlendFactor;
   1832 
   1833 typedef enum VkBlendOp {
   1834     VK_BLEND_OP_ADD = 0,
   1835     VK_BLEND_OP_SUBTRACT = 1,
   1836     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
   1837     VK_BLEND_OP_MIN = 3,
   1838     VK_BLEND_OP_MAX = 4,
   1839     VK_BLEND_OP_ZERO_EXT = 1000148000,
   1840     VK_BLEND_OP_SRC_EXT = 1000148001,
   1841     VK_BLEND_OP_DST_EXT = 1000148002,
   1842     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
   1843     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
   1844     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
   1845     VK_BLEND_OP_DST_IN_EXT = 1000148006,
   1846     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
   1847     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
   1848     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
   1849     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
   1850     VK_BLEND_OP_XOR_EXT = 1000148011,
   1851     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
   1852     VK_BLEND_OP_SCREEN_EXT = 1000148013,
   1853     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
   1854     VK_BLEND_OP_DARKEN_EXT = 1000148015,
   1855     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
   1856     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
   1857     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
   1858     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
   1859     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
   1860     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
   1861     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
   1862     VK_BLEND_OP_INVERT_EXT = 1000148023,
   1863     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
   1864     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
   1865     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
   1866     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
   1867     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
   1868     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
   1869     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
   1870     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
   1871     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
   1872     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
   1873     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
   1874     VK_BLEND_OP_PLUS_EXT = 1000148035,
   1875     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
   1876     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
   1877     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
   1878     VK_BLEND_OP_MINUS_EXT = 1000148039,
   1879     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
   1880     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
   1881     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
   1882     VK_BLEND_OP_RED_EXT = 1000148043,
   1883     VK_BLEND_OP_GREEN_EXT = 1000148044,
   1884     VK_BLEND_OP_BLUE_EXT = 1000148045,
   1885     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
   1886 } VkBlendOp;
   1887 
   1888 typedef enum VkCompareOp {
   1889     VK_COMPARE_OP_NEVER = 0,
   1890     VK_COMPARE_OP_LESS = 1,
   1891     VK_COMPARE_OP_EQUAL = 2,
   1892     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
   1893     VK_COMPARE_OP_GREATER = 4,
   1894     VK_COMPARE_OP_NOT_EQUAL = 5,
   1895     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
   1896     VK_COMPARE_OP_ALWAYS = 7,
   1897     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
   1898 } VkCompareOp;
   1899 
   1900 typedef enum VkDynamicState {
   1901     VK_DYNAMIC_STATE_VIEWPORT = 0,
   1902     VK_DYNAMIC_STATE_SCISSOR = 1,
   1903     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
   1904     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
   1905     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
   1906     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
   1907     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
   1908     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
   1909     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
   1910     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
   1911     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
   1912     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
   1913     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
   1914     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
   1915     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
   1916     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
   1917     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
   1918     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
   1919     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
   1920     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
   1921     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
   1922     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
   1923     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
   1924     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
   1925     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
   1926     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
   1927     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
   1928     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
   1929     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
   1930     VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
   1931     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
   1932     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
   1933     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
   1934     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
   1935     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
   1936     VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
   1937     VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
   1938     VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
   1939     VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
   1940     VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
   1941     VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
   1942     VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
   1943     VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
   1944     VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
   1945     VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
   1946     VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
   1947     VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
   1948     VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
   1949     VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
   1950     VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
   1951     VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
   1952     VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
   1953     VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
   1954     VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
   1955     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
   1956     VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
   1957     VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
   1958     VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
   1959     VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
   1960     VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
   1961     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
   1962     VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
   1963     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
   1964     VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
   1965     VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
   1966     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
   1967     VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
   1968     VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
   1969     VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
   1970     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
   1971     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
   1972     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000,
   1973     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
   1974     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
   1975     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
   1976     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
   1977     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
   1978     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
   1979     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
   1980     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
   1981     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
   1982     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
   1983     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
   1984     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
   1985     VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
   1986     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
   1987     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
   1988     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
   1989     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
   1990 } VkDynamicState;
   1991 
   1992 typedef enum VkFrontFace {
   1993     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
   1994     VK_FRONT_FACE_CLOCKWISE = 1,
   1995     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
   1996 } VkFrontFace;
   1997 
   1998 typedef enum VkVertexInputRate {
   1999     VK_VERTEX_INPUT_RATE_VERTEX = 0,
   2000     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
   2001     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
   2002 } VkVertexInputRate;
   2003 
   2004 typedef enum VkPrimitiveTopology {
   2005     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
   2006     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
   2007     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
   2008     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
   2009     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
   2010     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
   2011     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
   2012     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
   2013     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
   2014     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
   2015     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
   2016     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
   2017 } VkPrimitiveTopology;
   2018 
   2019 typedef enum VkPolygonMode {
   2020     VK_POLYGON_MODE_FILL = 0,
   2021     VK_POLYGON_MODE_LINE = 1,
   2022     VK_POLYGON_MODE_POINT = 2,
   2023     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
   2024     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
   2025 } VkPolygonMode;
   2026 
   2027 typedef enum VkStencilOp {
   2028     VK_STENCIL_OP_KEEP = 0,
   2029     VK_STENCIL_OP_ZERO = 1,
   2030     VK_STENCIL_OP_REPLACE = 2,
   2031     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
   2032     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
   2033     VK_STENCIL_OP_INVERT = 5,
   2034     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
   2035     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
   2036     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
   2037 } VkStencilOp;
   2038 
   2039 typedef enum VkLogicOp {
   2040     VK_LOGIC_OP_CLEAR = 0,
   2041     VK_LOGIC_OP_AND = 1,
   2042     VK_LOGIC_OP_AND_REVERSE = 2,
   2043     VK_LOGIC_OP_COPY = 3,
   2044     VK_LOGIC_OP_AND_INVERTED = 4,
   2045     VK_LOGIC_OP_NO_OP = 5,
   2046     VK_LOGIC_OP_XOR = 6,
   2047     VK_LOGIC_OP_OR = 7,
   2048     VK_LOGIC_OP_NOR = 8,
   2049     VK_LOGIC_OP_EQUIVALENT = 9,
   2050     VK_LOGIC_OP_INVERT = 10,
   2051     VK_LOGIC_OP_OR_REVERSE = 11,
   2052     VK_LOGIC_OP_COPY_INVERTED = 12,
   2053     VK_LOGIC_OP_OR_INVERTED = 13,
   2054     VK_LOGIC_OP_NAND = 14,
   2055     VK_LOGIC_OP_SET = 15,
   2056     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
   2057 } VkLogicOp;
   2058 
   2059 typedef enum VkBorderColor {
   2060     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
   2061     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
   2062     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
   2063     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
   2064     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
   2065     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
   2066     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
   2067     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
   2068     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
   2069 } VkBorderColor;
   2070 
   2071 typedef enum VkFilter {
   2072     VK_FILTER_NEAREST = 0,
   2073     VK_FILTER_LINEAR = 1,
   2074     VK_FILTER_CUBIC_EXT = 1000015000,
   2075     VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
   2076     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
   2077 } VkFilter;
   2078 
   2079 typedef enum VkSamplerAddressMode {
   2080     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
   2081     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
   2082     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
   2083     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
   2084     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
   2085     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
   2086     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
   2087 } VkSamplerAddressMode;
   2088 
   2089 typedef enum VkSamplerMipmapMode {
   2090     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
   2091     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
   2092     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
   2093 } VkSamplerMipmapMode;
   2094 
   2095 typedef enum VkDescriptorType {
   2096     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
   2097     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
   2098     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
   2099     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
   2100     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
   2101     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
   2102     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
   2103     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
   2104     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
   2105     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
   2106     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
   2107     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
   2108     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
   2109     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
   2110     VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
   2111     VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
   2112     VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
   2113     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
   2114     VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
   2115     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
   2116 } VkDescriptorType;
   2117 
   2118 typedef enum VkAttachmentLoadOp {
   2119     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
   2120     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
   2121     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
   2122     VK_ATTACHMENT_LOAD_OP_NONE_KHR = 1000400000,
   2123     VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE_KHR,
   2124     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
   2125 } VkAttachmentLoadOp;
   2126 
   2127 typedef enum VkAttachmentStoreOp {
   2128     VK_ATTACHMENT_STORE_OP_STORE = 0,
   2129     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
   2130     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
   2131     VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
   2132     VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
   2133     VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
   2134     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
   2135 } VkAttachmentStoreOp;
   2136 
   2137 typedef enum VkPipelineBindPoint {
   2138     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
   2139     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
   2140 #ifdef VK_ENABLE_BETA_EXTENSIONS
   2141     VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
   2142 #endif
   2143     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
   2144     VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
   2145     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
   2146     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
   2147 } VkPipelineBindPoint;
   2148 
   2149 typedef enum VkCommandBufferLevel {
   2150     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
   2151     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
   2152     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
   2153 } VkCommandBufferLevel;
   2154 
   2155 typedef enum VkIndexType {
   2156     VK_INDEX_TYPE_UINT16 = 0,
   2157     VK_INDEX_TYPE_UINT32 = 1,
   2158     VK_INDEX_TYPE_NONE_KHR = 1000165000,
   2159     VK_INDEX_TYPE_UINT8_KHR = 1000265000,
   2160     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
   2161     VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8_KHR,
   2162     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
   2163 } VkIndexType;
   2164 
   2165 typedef enum VkSubpassContents {
   2166     VK_SUBPASS_CONTENTS_INLINE = 0,
   2167     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
   2168     VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000,
   2169     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
   2170 } VkSubpassContents;
   2171 
   2172 typedef enum VkAccessFlagBits {
   2173     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
   2174     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
   2175     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
   2176     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
   2177     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
   2178     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
   2179     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
   2180     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
   2181     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
   2182     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
   2183     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
   2184     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
   2185     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
   2186     VK_ACCESS_HOST_READ_BIT = 0x00002000,
   2187     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
   2188     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
   2189     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
   2190     VK_ACCESS_NONE = 0,
   2191     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
   2192     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
   2193     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
   2194     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
   2195     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
   2196     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
   2197     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
   2198     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
   2199     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
   2200     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
   2201     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
   2202     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
   2203     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
   2204     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
   2205     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
   2206     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2207 } VkAccessFlagBits;
   2208 typedef VkFlags VkAccessFlags;
   2209 
   2210 typedef enum VkImageAspectFlagBits {
   2211     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
   2212     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
   2213     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
   2214     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
   2215     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
   2216     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
   2217     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
   2218     VK_IMAGE_ASPECT_NONE = 0,
   2219     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
   2220     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
   2221     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
   2222     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
   2223     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
   2224     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
   2225     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
   2226     VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
   2227     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2228 } VkImageAspectFlagBits;
   2229 typedef VkFlags VkImageAspectFlags;
   2230 
   2231 typedef enum VkFormatFeatureFlagBits {
   2232     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
   2233     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
   2234     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
   2235     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
   2236     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
   2237     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
   2238     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
   2239     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
   2240     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
   2241     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
   2242     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
   2243     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
   2244     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
   2245     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
   2246     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
   2247     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
   2248     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
   2249     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
   2250     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
   2251     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
   2252     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
   2253     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
   2254     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
   2255     VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
   2256     VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
   2257     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
   2258     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
   2259     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
   2260     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
   2261     VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
   2262     VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
   2263     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
   2264     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
   2265     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
   2266     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
   2267     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
   2268     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
   2269     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
   2270     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
   2271     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
   2272     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
   2273     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
   2274     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2275 } VkFormatFeatureFlagBits;
   2276 typedef VkFlags VkFormatFeatureFlags;
   2277 
   2278 typedef enum VkImageCreateFlagBits {
   2279     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
   2280     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
   2281     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
   2282     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
   2283     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
   2284     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
   2285     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
   2286     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
   2287     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
   2288     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
   2289     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
   2290     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
   2291     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
   2292     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
   2293     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
   2294     VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
   2295     VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
   2296     VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
   2297     VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
   2298     VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
   2299     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
   2300     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
   2301     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
   2302     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
   2303     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
   2304     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
   2305     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2306 } VkImageCreateFlagBits;
   2307 typedef VkFlags VkImageCreateFlags;
   2308 
   2309 typedef enum VkSampleCountFlagBits {
   2310     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
   2311     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
   2312     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
   2313     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
   2314     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
   2315     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
   2316     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
   2317     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2318 } VkSampleCountFlagBits;
   2319 typedef VkFlags VkSampleCountFlags;
   2320 
   2321 typedef enum VkImageUsageFlagBits {
   2322     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
   2323     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
   2324     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
   2325     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
   2326     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
   2327     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
   2328     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
   2329     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
   2330     VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
   2331     VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
   2332     VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
   2333     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
   2334     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
   2335     VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000,
   2336     VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
   2337     VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
   2338     VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
   2339     VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
   2340     VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
   2341     VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
   2342     VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
   2343     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
   2344     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2345 } VkImageUsageFlagBits;
   2346 typedef VkFlags VkImageUsageFlags;
   2347 
   2348 typedef enum VkInstanceCreateFlagBits {
   2349     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
   2350     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2351 } VkInstanceCreateFlagBits;
   2352 typedef VkFlags VkInstanceCreateFlags;
   2353 
   2354 typedef enum VkMemoryHeapFlagBits {
   2355     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
   2356     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
   2357     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
   2358     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2359 } VkMemoryHeapFlagBits;
   2360 typedef VkFlags VkMemoryHeapFlags;
   2361 
   2362 typedef enum VkMemoryPropertyFlagBits {
   2363     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
   2364     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
   2365     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
   2366     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
   2367     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
   2368     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
   2369     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
   2370     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
   2371     VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
   2372     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2373 } VkMemoryPropertyFlagBits;
   2374 typedef VkFlags VkMemoryPropertyFlags;
   2375 
   2376 typedef enum VkQueueFlagBits {
   2377     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
   2378     VK_QUEUE_COMPUTE_BIT = 0x00000002,
   2379     VK_QUEUE_TRANSFER_BIT = 0x00000004,
   2380     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
   2381     VK_QUEUE_PROTECTED_BIT = 0x00000010,
   2382     VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
   2383     VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
   2384     VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
   2385     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2386 } VkQueueFlagBits;
   2387 typedef VkFlags VkQueueFlags;
   2388 typedef VkFlags VkDeviceCreateFlags;
   2389 
   2390 typedef enum VkDeviceQueueCreateFlagBits {
   2391     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
   2392     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2393 } VkDeviceQueueCreateFlagBits;
   2394 typedef VkFlags VkDeviceQueueCreateFlags;
   2395 
   2396 typedef enum VkPipelineStageFlagBits {
   2397     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
   2398     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
   2399     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
   2400     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
   2401     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
   2402     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
   2403     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
   2404     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
   2405     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
   2406     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
   2407     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
   2408     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
   2409     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
   2410     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
   2411     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
   2412     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
   2413     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
   2414     VK_PIPELINE_STAGE_NONE = 0,
   2415     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
   2416     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
   2417     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
   2418     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
   2419     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
   2420     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
   2421     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
   2422     VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
   2423     VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
   2424     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
   2425     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
   2426     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
   2427     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
   2428     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
   2429     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
   2430     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2431 } VkPipelineStageFlagBits;
   2432 typedef VkFlags VkPipelineStageFlags;
   2433 
   2434 typedef enum VkMemoryMapFlagBits {
   2435     VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
   2436     VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2437 } VkMemoryMapFlagBits;
   2438 typedef VkFlags VkMemoryMapFlags;
   2439 
   2440 typedef enum VkSparseMemoryBindFlagBits {
   2441     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
   2442     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2443 } VkSparseMemoryBindFlagBits;
   2444 typedef VkFlags VkSparseMemoryBindFlags;
   2445 
   2446 typedef enum VkSparseImageFormatFlagBits {
   2447     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
   2448     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
   2449     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
   2450     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2451 } VkSparseImageFormatFlagBits;
   2452 typedef VkFlags VkSparseImageFormatFlags;
   2453 
   2454 typedef enum VkFenceCreateFlagBits {
   2455     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
   2456     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2457 } VkFenceCreateFlagBits;
   2458 typedef VkFlags VkFenceCreateFlags;
   2459 typedef VkFlags VkSemaphoreCreateFlags;
   2460 
   2461 typedef enum VkEventCreateFlagBits {
   2462     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
   2463     VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
   2464     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2465 } VkEventCreateFlagBits;
   2466 typedef VkFlags VkEventCreateFlags;
   2467 
   2468 typedef enum VkQueryPipelineStatisticFlagBits {
   2469     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
   2470     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
   2471     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
   2472     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
   2473     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
   2474     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
   2475     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
   2476     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
   2477     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
   2478     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
   2479     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
   2480     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
   2481     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
   2482     VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
   2483     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2484 } VkQueryPipelineStatisticFlagBits;
   2485 typedef VkFlags VkQueryPipelineStatisticFlags;
   2486 typedef VkFlags VkQueryPoolCreateFlags;
   2487 
   2488 typedef enum VkQueryResultFlagBits {
   2489     VK_QUERY_RESULT_64_BIT = 0x00000001,
   2490     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
   2491     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
   2492     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
   2493     VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
   2494     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2495 } VkQueryResultFlagBits;
   2496 typedef VkFlags VkQueryResultFlags;
   2497 
   2498 typedef enum VkBufferCreateFlagBits {
   2499     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
   2500     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
   2501     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
   2502     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
   2503     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
   2504     VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
   2505     VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
   2506     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   2507     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   2508     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2509 } VkBufferCreateFlagBits;
   2510 typedef VkFlags VkBufferCreateFlags;
   2511 
   2512 typedef enum VkBufferUsageFlagBits {
   2513     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
   2514     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
   2515     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
   2516     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
   2517     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
   2518     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
   2519     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
   2520     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
   2521     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
   2522     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
   2523     VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
   2524     VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
   2525     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
   2526     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
   2527     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
   2528 #ifdef VK_ENABLE_BETA_EXTENSIONS
   2529     VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
   2530 #endif
   2531     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
   2532     VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
   2533     VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
   2534     VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
   2535     VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
   2536     VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
   2537     VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
   2538     VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
   2539     VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
   2540     VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
   2541     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
   2542     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
   2543     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
   2544     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2545 } VkBufferUsageFlagBits;
   2546 typedef VkFlags VkBufferUsageFlags;
   2547 typedef VkFlags VkBufferViewCreateFlags;
   2548 
   2549 typedef enum VkImageViewCreateFlagBits {
   2550     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
   2551     VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
   2552     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
   2553     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2554 } VkImageViewCreateFlagBits;
   2555 typedef VkFlags VkImageViewCreateFlags;
   2556 typedef VkFlags VkShaderModuleCreateFlags;
   2557 
   2558 typedef enum VkPipelineCacheCreateFlagBits {
   2559     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
   2560     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
   2561     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2562 } VkPipelineCacheCreateFlagBits;
   2563 typedef VkFlags VkPipelineCacheCreateFlags;
   2564 
   2565 typedef enum VkColorComponentFlagBits {
   2566     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
   2567     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
   2568     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
   2569     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
   2570     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2571 } VkColorComponentFlagBits;
   2572 typedef VkFlags VkColorComponentFlags;
   2573 
   2574 typedef enum VkPipelineCreateFlagBits {
   2575     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
   2576     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
   2577     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
   2578     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
   2579     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
   2580     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
   2581     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
   2582     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
   2583     VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
   2584     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
   2585     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
   2586     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
   2587     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
   2588     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
   2589     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
   2590     VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
   2591     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
   2592     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
   2593     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
   2594     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
   2595     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
   2596     VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
   2597     VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
   2598     VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
   2599     VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
   2600     VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
   2601     VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
   2602     VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
   2603 #ifdef VK_ENABLE_BETA_EXTENSIONS
   2604     VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
   2605 #endif
   2606     VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
   2607     VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
   2608     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
   2609     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
   2610     VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
   2611     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
   2612     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
   2613     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
   2614     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
   2615     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2616 } VkPipelineCreateFlagBits;
   2617 typedef VkFlags VkPipelineCreateFlags;
   2618 
   2619 typedef enum VkPipelineShaderStageCreateFlagBits {
   2620     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
   2621     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
   2622     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
   2623     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
   2624     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2625 } VkPipelineShaderStageCreateFlagBits;
   2626 typedef VkFlags VkPipelineShaderStageCreateFlags;
   2627 
   2628 typedef enum VkShaderStageFlagBits {
   2629     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
   2630     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
   2631     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
   2632     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
   2633     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
   2634     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
   2635     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
   2636     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
   2637     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
   2638     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
   2639     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
   2640     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
   2641     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
   2642     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
   2643     VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
   2644     VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
   2645     VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
   2646     VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
   2647     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
   2648     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
   2649     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
   2650     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
   2651     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
   2652     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
   2653     VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
   2654     VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
   2655     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2656 } VkShaderStageFlagBits;
   2657 
   2658 typedef enum VkCullModeFlagBits {
   2659     VK_CULL_MODE_NONE = 0,
   2660     VK_CULL_MODE_FRONT_BIT = 0x00000001,
   2661     VK_CULL_MODE_BACK_BIT = 0x00000002,
   2662     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
   2663     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2664 } VkCullModeFlagBits;
   2665 typedef VkFlags VkCullModeFlags;
   2666 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
   2667 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
   2668 typedef VkFlags VkPipelineTessellationStateCreateFlags;
   2669 typedef VkFlags VkPipelineViewportStateCreateFlags;
   2670 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
   2671 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
   2672 
   2673 typedef enum VkPipelineDepthStencilStateCreateFlagBits {
   2674     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
   2675     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
   2676     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
   2677     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
   2678     VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2679 } VkPipelineDepthStencilStateCreateFlagBits;
   2680 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
   2681 
   2682 typedef enum VkPipelineColorBlendStateCreateFlagBits {
   2683     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
   2684     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
   2685     VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2686 } VkPipelineColorBlendStateCreateFlagBits;
   2687 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
   2688 typedef VkFlags VkPipelineDynamicStateCreateFlags;
   2689 
   2690 typedef enum VkPipelineLayoutCreateFlagBits {
   2691     VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
   2692     VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2693 } VkPipelineLayoutCreateFlagBits;
   2694 typedef VkFlags VkPipelineLayoutCreateFlags;
   2695 typedef VkFlags VkShaderStageFlags;
   2696 
   2697 typedef enum VkSamplerCreateFlagBits {
   2698     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
   2699     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
   2700     VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
   2701     VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
   2702     VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
   2703     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2704 } VkSamplerCreateFlagBits;
   2705 typedef VkFlags VkSamplerCreateFlags;
   2706 
   2707 typedef enum VkDescriptorPoolCreateFlagBits {
   2708     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
   2709     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
   2710     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
   2711     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
   2712     VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
   2713     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
   2714     VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
   2715     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2716 } VkDescriptorPoolCreateFlagBits;
   2717 typedef VkFlags VkDescriptorPoolCreateFlags;
   2718 typedef VkFlags VkDescriptorPoolResetFlags;
   2719 
   2720 typedef enum VkDescriptorSetLayoutCreateFlagBits {
   2721     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
   2722     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
   2723     VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
   2724     VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
   2725     VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
   2726     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
   2727     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
   2728     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
   2729     VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
   2730     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2731 } VkDescriptorSetLayoutCreateFlagBits;
   2732 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
   2733 
   2734 typedef enum VkAttachmentDescriptionFlagBits {
   2735     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
   2736     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2737 } VkAttachmentDescriptionFlagBits;
   2738 typedef VkFlags VkAttachmentDescriptionFlags;
   2739 
   2740 typedef enum VkDependencyFlagBits {
   2741     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
   2742     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
   2743     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
   2744     VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
   2745     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
   2746     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
   2747     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2748 } VkDependencyFlagBits;
   2749 typedef VkFlags VkDependencyFlags;
   2750 
   2751 typedef enum VkFramebufferCreateFlagBits {
   2752     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
   2753     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
   2754     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2755 } VkFramebufferCreateFlagBits;
   2756 typedef VkFlags VkFramebufferCreateFlags;
   2757 
   2758 typedef enum VkRenderPassCreateFlagBits {
   2759     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
   2760     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2761 } VkRenderPassCreateFlagBits;
   2762 typedef VkFlags VkRenderPassCreateFlags;
   2763 
   2764 typedef enum VkSubpassDescriptionFlagBits {
   2765     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
   2766     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
   2767     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
   2768     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
   2769     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
   2770     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
   2771     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
   2772     VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
   2773     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
   2774     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
   2775     VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
   2776     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2777 } VkSubpassDescriptionFlagBits;
   2778 typedef VkFlags VkSubpassDescriptionFlags;
   2779 
   2780 typedef enum VkCommandPoolCreateFlagBits {
   2781     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
   2782     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
   2783     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
   2784     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2785 } VkCommandPoolCreateFlagBits;
   2786 typedef VkFlags VkCommandPoolCreateFlags;
   2787 
   2788 typedef enum VkCommandPoolResetFlagBits {
   2789     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
   2790     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2791 } VkCommandPoolResetFlagBits;
   2792 typedef VkFlags VkCommandPoolResetFlags;
   2793 
   2794 typedef enum VkCommandBufferUsageFlagBits {
   2795     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
   2796     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
   2797     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
   2798     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2799 } VkCommandBufferUsageFlagBits;
   2800 typedef VkFlags VkCommandBufferUsageFlags;
   2801 
   2802 typedef enum VkQueryControlFlagBits {
   2803     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
   2804     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2805 } VkQueryControlFlagBits;
   2806 typedef VkFlags VkQueryControlFlags;
   2807 
   2808 typedef enum VkCommandBufferResetFlagBits {
   2809     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
   2810     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2811 } VkCommandBufferResetFlagBits;
   2812 typedef VkFlags VkCommandBufferResetFlags;
   2813 
   2814 typedef enum VkStencilFaceFlagBits {
   2815     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
   2816     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
   2817     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
   2818     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
   2819     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   2820 } VkStencilFaceFlagBits;
   2821 typedef VkFlags VkStencilFaceFlags;
   2822 typedef struct VkExtent2D {
   2823     uint32_t    width;
   2824     uint32_t    height;
   2825 } VkExtent2D;
   2826 
   2827 typedef struct VkExtent3D {
   2828     uint32_t    width;
   2829     uint32_t    height;
   2830     uint32_t    depth;
   2831 } VkExtent3D;
   2832 
   2833 typedef struct VkOffset2D {
   2834     int32_t    x;
   2835     int32_t    y;
   2836 } VkOffset2D;
   2837 
   2838 typedef struct VkOffset3D {
   2839     int32_t    x;
   2840     int32_t    y;
   2841     int32_t    z;
   2842 } VkOffset3D;
   2843 
   2844 typedef struct VkRect2D {
   2845     VkOffset2D    offset;
   2846     VkExtent2D    extent;
   2847 } VkRect2D;
   2848 
   2849 typedef struct VkBaseInStructure {
   2850     VkStructureType                    sType;
   2851     const struct VkBaseInStructure*    pNext;
   2852 } VkBaseInStructure;
   2853 
   2854 typedef struct VkBaseOutStructure {
   2855     VkStructureType               sType;
   2856     struct VkBaseOutStructure*    pNext;
   2857 } VkBaseOutStructure;
   2858 
   2859 typedef struct VkBufferMemoryBarrier {
   2860     VkStructureType    sType;
   2861     const void*        pNext;
   2862     VkAccessFlags      srcAccessMask;
   2863     VkAccessFlags      dstAccessMask;
   2864     uint32_t           srcQueueFamilyIndex;
   2865     uint32_t           dstQueueFamilyIndex;
   2866     VkBuffer           buffer;
   2867     VkDeviceSize       offset;
   2868     VkDeviceSize       size;
   2869 } VkBufferMemoryBarrier;
   2870 
   2871 typedef struct VkDispatchIndirectCommand {
   2872     uint32_t    x;
   2873     uint32_t    y;
   2874     uint32_t    z;
   2875 } VkDispatchIndirectCommand;
   2876 
   2877 typedef struct VkDrawIndexedIndirectCommand {
   2878     uint32_t    indexCount;
   2879     uint32_t    instanceCount;
   2880     uint32_t    firstIndex;
   2881     int32_t     vertexOffset;
   2882     uint32_t    firstInstance;
   2883 } VkDrawIndexedIndirectCommand;
   2884 
   2885 typedef struct VkDrawIndirectCommand {
   2886     uint32_t    vertexCount;
   2887     uint32_t    instanceCount;
   2888     uint32_t    firstVertex;
   2889     uint32_t    firstInstance;
   2890 } VkDrawIndirectCommand;
   2891 
   2892 typedef struct VkImageSubresourceRange {
   2893     VkImageAspectFlags    aspectMask;
   2894     uint32_t              baseMipLevel;
   2895     uint32_t              levelCount;
   2896     uint32_t              baseArrayLayer;
   2897     uint32_t              layerCount;
   2898 } VkImageSubresourceRange;
   2899 
   2900 typedef struct VkImageMemoryBarrier {
   2901     VkStructureType            sType;
   2902     const void*                pNext;
   2903     VkAccessFlags              srcAccessMask;
   2904     VkAccessFlags              dstAccessMask;
   2905     VkImageLayout              oldLayout;
   2906     VkImageLayout              newLayout;
   2907     uint32_t                   srcQueueFamilyIndex;
   2908     uint32_t                   dstQueueFamilyIndex;
   2909     VkImage                    image;
   2910     VkImageSubresourceRange    subresourceRange;
   2911 } VkImageMemoryBarrier;
   2912 
   2913 typedef struct VkMemoryBarrier {
   2914     VkStructureType    sType;
   2915     const void*        pNext;
   2916     VkAccessFlags      srcAccessMask;
   2917     VkAccessFlags      dstAccessMask;
   2918 } VkMemoryBarrier;
   2919 
   2920 typedef struct VkPipelineCacheHeaderVersionOne {
   2921     uint32_t                        headerSize;
   2922     VkPipelineCacheHeaderVersion    headerVersion;
   2923     uint32_t                        vendorID;
   2924     uint32_t                        deviceID;
   2925     uint8_t                         pipelineCacheUUID[VK_UUID_SIZE];
   2926 } VkPipelineCacheHeaderVersionOne;
   2927 
   2928 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
   2929     void*                                       pUserData,
   2930     size_t                                      size,
   2931     size_t                                      alignment,
   2932     VkSystemAllocationScope                     allocationScope);
   2933 
   2934 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
   2935     void*                                       pUserData,
   2936     void*                                       pMemory);
   2937 
   2938 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
   2939     void*                                       pUserData,
   2940     size_t                                      size,
   2941     VkInternalAllocationType                    allocationType,
   2942     VkSystemAllocationScope                     allocationScope);
   2943 
   2944 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
   2945     void*                                       pUserData,
   2946     size_t                                      size,
   2947     VkInternalAllocationType                    allocationType,
   2948     VkSystemAllocationScope                     allocationScope);
   2949 
   2950 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
   2951     void*                                       pUserData,
   2952     void*                                       pOriginal,
   2953     size_t                                      size,
   2954     size_t                                      alignment,
   2955     VkSystemAllocationScope                     allocationScope);
   2956 
   2957 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
   2958 typedef struct VkAllocationCallbacks {
   2959     void*                                   pUserData;
   2960     PFN_vkAllocationFunction                pfnAllocation;
   2961     PFN_vkReallocationFunction              pfnReallocation;
   2962     PFN_vkFreeFunction                      pfnFree;
   2963     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
   2964     PFN_vkInternalFreeNotification          pfnInternalFree;
   2965 } VkAllocationCallbacks;
   2966 
   2967 typedef struct VkApplicationInfo {
   2968     VkStructureType    sType;
   2969     const void*        pNext;
   2970     const char*        pApplicationName;
   2971     uint32_t           applicationVersion;
   2972     const char*        pEngineName;
   2973     uint32_t           engineVersion;
   2974     uint32_t           apiVersion;
   2975 } VkApplicationInfo;
   2976 
   2977 typedef struct VkFormatProperties {
   2978     VkFormatFeatureFlags    linearTilingFeatures;
   2979     VkFormatFeatureFlags    optimalTilingFeatures;
   2980     VkFormatFeatureFlags    bufferFeatures;
   2981 } VkFormatProperties;
   2982 
   2983 typedef struct VkImageFormatProperties {
   2984     VkExtent3D            maxExtent;
   2985     uint32_t              maxMipLevels;
   2986     uint32_t              maxArrayLayers;
   2987     VkSampleCountFlags    sampleCounts;
   2988     VkDeviceSize          maxResourceSize;
   2989 } VkImageFormatProperties;
   2990 
   2991 typedef struct VkInstanceCreateInfo {
   2992     VkStructureType             sType;
   2993     const void*                 pNext;
   2994     VkInstanceCreateFlags       flags;
   2995     const VkApplicationInfo*    pApplicationInfo;
   2996     uint32_t                    enabledLayerCount;
   2997     const char* const*          ppEnabledLayerNames;
   2998     uint32_t                    enabledExtensionCount;
   2999     const char* const*          ppEnabledExtensionNames;
   3000 } VkInstanceCreateInfo;
   3001 
   3002 typedef struct VkMemoryHeap {
   3003     VkDeviceSize         size;
   3004     VkMemoryHeapFlags    flags;
   3005 } VkMemoryHeap;
   3006 
   3007 typedef struct VkMemoryType {
   3008     VkMemoryPropertyFlags    propertyFlags;
   3009     uint32_t                 heapIndex;
   3010 } VkMemoryType;
   3011 
   3012 typedef struct VkPhysicalDeviceFeatures {
   3013     VkBool32    robustBufferAccess;
   3014     VkBool32    fullDrawIndexUint32;
   3015     VkBool32    imageCubeArray;
   3016     VkBool32    independentBlend;
   3017     VkBool32    geometryShader;
   3018     VkBool32    tessellationShader;
   3019     VkBool32    sampleRateShading;
   3020     VkBool32    dualSrcBlend;
   3021     VkBool32    logicOp;
   3022     VkBool32    multiDrawIndirect;
   3023     VkBool32    drawIndirectFirstInstance;
   3024     VkBool32    depthClamp;
   3025     VkBool32    depthBiasClamp;
   3026     VkBool32    fillModeNonSolid;
   3027     VkBool32    depthBounds;
   3028     VkBool32    wideLines;
   3029     VkBool32    largePoints;
   3030     VkBool32    alphaToOne;
   3031     VkBool32    multiViewport;
   3032     VkBool32    samplerAnisotropy;
   3033     VkBool32    textureCompressionETC2;
   3034     VkBool32    textureCompressionASTC_LDR;
   3035     VkBool32    textureCompressionBC;
   3036     VkBool32    occlusionQueryPrecise;
   3037     VkBool32    pipelineStatisticsQuery;
   3038     VkBool32    vertexPipelineStoresAndAtomics;
   3039     VkBool32    fragmentStoresAndAtomics;
   3040     VkBool32    shaderTessellationAndGeometryPointSize;
   3041     VkBool32    shaderImageGatherExtended;
   3042     VkBool32    shaderStorageImageExtendedFormats;
   3043     VkBool32    shaderStorageImageMultisample;
   3044     VkBool32    shaderStorageImageReadWithoutFormat;
   3045     VkBool32    shaderStorageImageWriteWithoutFormat;
   3046     VkBool32    shaderUniformBufferArrayDynamicIndexing;
   3047     VkBool32    shaderSampledImageArrayDynamicIndexing;
   3048     VkBool32    shaderStorageBufferArrayDynamicIndexing;
   3049     VkBool32    shaderStorageImageArrayDynamicIndexing;
   3050     VkBool32    shaderClipDistance;
   3051     VkBool32    shaderCullDistance;
   3052     VkBool32    shaderFloat64;
   3053     VkBool32    shaderInt64;
   3054     VkBool32    shaderInt16;
   3055     VkBool32    shaderResourceResidency;
   3056     VkBool32    shaderResourceMinLod;
   3057     VkBool32    sparseBinding;
   3058     VkBool32    sparseResidencyBuffer;
   3059     VkBool32    sparseResidencyImage2D;
   3060     VkBool32    sparseResidencyImage3D;
   3061     VkBool32    sparseResidency2Samples;
   3062     VkBool32    sparseResidency4Samples;
   3063     VkBool32    sparseResidency8Samples;
   3064     VkBool32    sparseResidency16Samples;
   3065     VkBool32    sparseResidencyAliased;
   3066     VkBool32    variableMultisampleRate;
   3067     VkBool32    inheritedQueries;
   3068 } VkPhysicalDeviceFeatures;
   3069 
   3070 typedef struct VkPhysicalDeviceLimits {
   3071     uint32_t              maxImageDimension1D;
   3072     uint32_t              maxImageDimension2D;
   3073     uint32_t              maxImageDimension3D;
   3074     uint32_t              maxImageDimensionCube;
   3075     uint32_t              maxImageArrayLayers;
   3076     uint32_t              maxTexelBufferElements;
   3077     uint32_t              maxUniformBufferRange;
   3078     uint32_t              maxStorageBufferRange;
   3079     uint32_t              maxPushConstantsSize;
   3080     uint32_t              maxMemoryAllocationCount;
   3081     uint32_t              maxSamplerAllocationCount;
   3082     VkDeviceSize          bufferImageGranularity;
   3083     VkDeviceSize          sparseAddressSpaceSize;
   3084     uint32_t              maxBoundDescriptorSets;
   3085     uint32_t              maxPerStageDescriptorSamplers;
   3086     uint32_t              maxPerStageDescriptorUniformBuffers;
   3087     uint32_t              maxPerStageDescriptorStorageBuffers;
   3088     uint32_t              maxPerStageDescriptorSampledImages;
   3089     uint32_t              maxPerStageDescriptorStorageImages;
   3090     uint32_t              maxPerStageDescriptorInputAttachments;
   3091     uint32_t              maxPerStageResources;
   3092     uint32_t              maxDescriptorSetSamplers;
   3093     uint32_t              maxDescriptorSetUniformBuffers;
   3094     uint32_t              maxDescriptorSetUniformBuffersDynamic;
   3095     uint32_t              maxDescriptorSetStorageBuffers;
   3096     uint32_t              maxDescriptorSetStorageBuffersDynamic;
   3097     uint32_t              maxDescriptorSetSampledImages;
   3098     uint32_t              maxDescriptorSetStorageImages;
   3099     uint32_t              maxDescriptorSetInputAttachments;
   3100     uint32_t              maxVertexInputAttributes;
   3101     uint32_t              maxVertexInputBindings;
   3102     uint32_t              maxVertexInputAttributeOffset;
   3103     uint32_t              maxVertexInputBindingStride;
   3104     uint32_t              maxVertexOutputComponents;
   3105     uint32_t              maxTessellationGenerationLevel;
   3106     uint32_t              maxTessellationPatchSize;
   3107     uint32_t              maxTessellationControlPerVertexInputComponents;
   3108     uint32_t              maxTessellationControlPerVertexOutputComponents;
   3109     uint32_t              maxTessellationControlPerPatchOutputComponents;
   3110     uint32_t              maxTessellationControlTotalOutputComponents;
   3111     uint32_t              maxTessellationEvaluationInputComponents;
   3112     uint32_t              maxTessellationEvaluationOutputComponents;
   3113     uint32_t              maxGeometryShaderInvocations;
   3114     uint32_t              maxGeometryInputComponents;
   3115     uint32_t              maxGeometryOutputComponents;
   3116     uint32_t              maxGeometryOutputVertices;
   3117     uint32_t              maxGeometryTotalOutputComponents;
   3118     uint32_t              maxFragmentInputComponents;
   3119     uint32_t              maxFragmentOutputAttachments;
   3120     uint32_t              maxFragmentDualSrcAttachments;
   3121     uint32_t              maxFragmentCombinedOutputResources;
   3122     uint32_t              maxComputeSharedMemorySize;
   3123     uint32_t              maxComputeWorkGroupCount[3];
   3124     uint32_t              maxComputeWorkGroupInvocations;
   3125     uint32_t              maxComputeWorkGroupSize[3];
   3126     uint32_t              subPixelPrecisionBits;
   3127     uint32_t              subTexelPrecisionBits;
   3128     uint32_t              mipmapPrecisionBits;
   3129     uint32_t              maxDrawIndexedIndexValue;
   3130     uint32_t              maxDrawIndirectCount;
   3131     float                 maxSamplerLodBias;
   3132     float                 maxSamplerAnisotropy;
   3133     uint32_t              maxViewports;
   3134     uint32_t              maxViewportDimensions[2];
   3135     float                 viewportBoundsRange[2];
   3136     uint32_t              viewportSubPixelBits;
   3137     size_t                minMemoryMapAlignment;
   3138     VkDeviceSize          minTexelBufferOffsetAlignment;
   3139     VkDeviceSize          minUniformBufferOffsetAlignment;
   3140     VkDeviceSize          minStorageBufferOffsetAlignment;
   3141     int32_t               minTexelOffset;
   3142     uint32_t              maxTexelOffset;
   3143     int32_t               minTexelGatherOffset;
   3144     uint32_t              maxTexelGatherOffset;
   3145     float                 minInterpolationOffset;
   3146     float                 maxInterpolationOffset;
   3147     uint32_t              subPixelInterpolationOffsetBits;
   3148     uint32_t              maxFramebufferWidth;
   3149     uint32_t              maxFramebufferHeight;
   3150     uint32_t              maxFramebufferLayers;
   3151     VkSampleCountFlags    framebufferColorSampleCounts;
   3152     VkSampleCountFlags    framebufferDepthSampleCounts;
   3153     VkSampleCountFlags    framebufferStencilSampleCounts;
   3154     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
   3155     uint32_t              maxColorAttachments;
   3156     VkSampleCountFlags    sampledImageColorSampleCounts;
   3157     VkSampleCountFlags    sampledImageIntegerSampleCounts;
   3158     VkSampleCountFlags    sampledImageDepthSampleCounts;
   3159     VkSampleCountFlags    sampledImageStencilSampleCounts;
   3160     VkSampleCountFlags    storageImageSampleCounts;
   3161     uint32_t              maxSampleMaskWords;
   3162     VkBool32              timestampComputeAndGraphics;
   3163     float                 timestampPeriod;
   3164     uint32_t              maxClipDistances;
   3165     uint32_t              maxCullDistances;
   3166     uint32_t              maxCombinedClipAndCullDistances;
   3167     uint32_t              discreteQueuePriorities;
   3168     float                 pointSizeRange[2];
   3169     float                 lineWidthRange[2];
   3170     float                 pointSizeGranularity;
   3171     float                 lineWidthGranularity;
   3172     VkBool32              strictLines;
   3173     VkBool32              standardSampleLocations;
   3174     VkDeviceSize          optimalBufferCopyOffsetAlignment;
   3175     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
   3176     VkDeviceSize          nonCoherentAtomSize;
   3177 } VkPhysicalDeviceLimits;
   3178 
   3179 typedef struct VkPhysicalDeviceMemoryProperties {
   3180     uint32_t        memoryTypeCount;
   3181     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
   3182     uint32_t        memoryHeapCount;
   3183     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
   3184 } VkPhysicalDeviceMemoryProperties;
   3185 
   3186 typedef struct VkPhysicalDeviceSparseProperties {
   3187     VkBool32    residencyStandard2DBlockShape;
   3188     VkBool32    residencyStandard2DMultisampleBlockShape;
   3189     VkBool32    residencyStandard3DBlockShape;
   3190     VkBool32    residencyAlignedMipSize;
   3191     VkBool32    residencyNonResidentStrict;
   3192 } VkPhysicalDeviceSparseProperties;
   3193 
   3194 typedef struct VkPhysicalDeviceProperties {
   3195     uint32_t                            apiVersion;
   3196     uint32_t                            driverVersion;
   3197     uint32_t                            vendorID;
   3198     uint32_t                            deviceID;
   3199     VkPhysicalDeviceType                deviceType;
   3200     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
   3201     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
   3202     VkPhysicalDeviceLimits              limits;
   3203     VkPhysicalDeviceSparseProperties    sparseProperties;
   3204 } VkPhysicalDeviceProperties;
   3205 
   3206 typedef struct VkQueueFamilyProperties {
   3207     VkQueueFlags    queueFlags;
   3208     uint32_t        queueCount;
   3209     uint32_t        timestampValidBits;
   3210     VkExtent3D      minImageTransferGranularity;
   3211 } VkQueueFamilyProperties;
   3212 
   3213 typedef struct VkDeviceQueueCreateInfo {
   3214     VkStructureType             sType;
   3215     const void*                 pNext;
   3216     VkDeviceQueueCreateFlags    flags;
   3217     uint32_t                    queueFamilyIndex;
   3218     uint32_t                    queueCount;
   3219     const float*                pQueuePriorities;
   3220 } VkDeviceQueueCreateInfo;
   3221 
   3222 typedef struct VkDeviceCreateInfo {
   3223     VkStructureType                    sType;
   3224     const void*                        pNext;
   3225     VkDeviceCreateFlags                flags;
   3226     uint32_t                           queueCreateInfoCount;
   3227     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
   3228     uint32_t                           enabledLayerCount;
   3229     const char* const*                 ppEnabledLayerNames;
   3230     uint32_t                           enabledExtensionCount;
   3231     const char* const*                 ppEnabledExtensionNames;
   3232     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
   3233 } VkDeviceCreateInfo;
   3234 
   3235 typedef struct VkExtensionProperties {
   3236     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
   3237     uint32_t    specVersion;
   3238 } VkExtensionProperties;
   3239 
   3240 typedef struct VkLayerProperties {
   3241     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
   3242     uint32_t    specVersion;
   3243     uint32_t    implementationVersion;
   3244     char        description[VK_MAX_DESCRIPTION_SIZE];
   3245 } VkLayerProperties;
   3246 
   3247 typedef struct VkSubmitInfo {
   3248     VkStructureType                sType;
   3249     const void*                    pNext;
   3250     uint32_t                       waitSemaphoreCount;
   3251     const VkSemaphore*             pWaitSemaphores;
   3252     const VkPipelineStageFlags*    pWaitDstStageMask;
   3253     uint32_t                       commandBufferCount;
   3254     const VkCommandBuffer*         pCommandBuffers;
   3255     uint32_t                       signalSemaphoreCount;
   3256     const VkSemaphore*             pSignalSemaphores;
   3257 } VkSubmitInfo;
   3258 
   3259 typedef struct VkMappedMemoryRange {
   3260     VkStructureType    sType;
   3261     const void*        pNext;
   3262     VkDeviceMemory     memory;
   3263     VkDeviceSize       offset;
   3264     VkDeviceSize       size;
   3265 } VkMappedMemoryRange;
   3266 
   3267 typedef struct VkMemoryAllocateInfo {
   3268     VkStructureType    sType;
   3269     const void*        pNext;
   3270     VkDeviceSize       allocationSize;
   3271     uint32_t           memoryTypeIndex;
   3272 } VkMemoryAllocateInfo;
   3273 
   3274 typedef struct VkMemoryRequirements {
   3275     VkDeviceSize    size;
   3276     VkDeviceSize    alignment;
   3277     uint32_t        memoryTypeBits;
   3278 } VkMemoryRequirements;
   3279 
   3280 typedef struct VkSparseMemoryBind {
   3281     VkDeviceSize               resourceOffset;
   3282     VkDeviceSize               size;
   3283     VkDeviceMemory             memory;
   3284     VkDeviceSize               memoryOffset;
   3285     VkSparseMemoryBindFlags    flags;
   3286 } VkSparseMemoryBind;
   3287 
   3288 typedef struct VkSparseBufferMemoryBindInfo {
   3289     VkBuffer                     buffer;
   3290     uint32_t                     bindCount;
   3291     const VkSparseMemoryBind*    pBinds;
   3292 } VkSparseBufferMemoryBindInfo;
   3293 
   3294 typedef struct VkSparseImageOpaqueMemoryBindInfo {
   3295     VkImage                      image;
   3296     uint32_t                     bindCount;
   3297     const VkSparseMemoryBind*    pBinds;
   3298 } VkSparseImageOpaqueMemoryBindInfo;
   3299 
   3300 typedef struct VkImageSubresource {
   3301     VkImageAspectFlags    aspectMask;
   3302     uint32_t              mipLevel;
   3303     uint32_t              arrayLayer;
   3304 } VkImageSubresource;
   3305 
   3306 typedef struct VkSparseImageMemoryBind {
   3307     VkImageSubresource         subresource;
   3308     VkOffset3D                 offset;
   3309     VkExtent3D                 extent;
   3310     VkDeviceMemory             memory;
   3311     VkDeviceSize               memoryOffset;
   3312     VkSparseMemoryBindFlags    flags;
   3313 } VkSparseImageMemoryBind;
   3314 
   3315 typedef struct VkSparseImageMemoryBindInfo {
   3316     VkImage                           image;
   3317     uint32_t                          bindCount;
   3318     const VkSparseImageMemoryBind*    pBinds;
   3319 } VkSparseImageMemoryBindInfo;
   3320 
   3321 typedef struct VkBindSparseInfo {
   3322     VkStructureType                             sType;
   3323     const void*                                 pNext;
   3324     uint32_t                                    waitSemaphoreCount;
   3325     const VkSemaphore*                          pWaitSemaphores;
   3326     uint32_t                                    bufferBindCount;
   3327     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
   3328     uint32_t                                    imageOpaqueBindCount;
   3329     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
   3330     uint32_t                                    imageBindCount;
   3331     const VkSparseImageMemoryBindInfo*          pImageBinds;
   3332     uint32_t                                    signalSemaphoreCount;
   3333     const VkSemaphore*                          pSignalSemaphores;
   3334 } VkBindSparseInfo;
   3335 
   3336 typedef struct VkSparseImageFormatProperties {
   3337     VkImageAspectFlags          aspectMask;
   3338     VkExtent3D                  imageGranularity;
   3339     VkSparseImageFormatFlags    flags;
   3340 } VkSparseImageFormatProperties;
   3341 
   3342 typedef struct VkSparseImageMemoryRequirements {
   3343     VkSparseImageFormatProperties    formatProperties;
   3344     uint32_t                         imageMipTailFirstLod;
   3345     VkDeviceSize                     imageMipTailSize;
   3346     VkDeviceSize                     imageMipTailOffset;
   3347     VkDeviceSize                     imageMipTailStride;
   3348 } VkSparseImageMemoryRequirements;
   3349 
   3350 typedef struct VkFenceCreateInfo {
   3351     VkStructureType       sType;
   3352     const void*           pNext;
   3353     VkFenceCreateFlags    flags;
   3354 } VkFenceCreateInfo;
   3355 
   3356 typedef struct VkSemaphoreCreateInfo {
   3357     VkStructureType           sType;
   3358     const void*               pNext;
   3359     VkSemaphoreCreateFlags    flags;
   3360 } VkSemaphoreCreateInfo;
   3361 
   3362 typedef struct VkEventCreateInfo {
   3363     VkStructureType       sType;
   3364     const void*           pNext;
   3365     VkEventCreateFlags    flags;
   3366 } VkEventCreateInfo;
   3367 
   3368 typedef struct VkQueryPoolCreateInfo {
   3369     VkStructureType                  sType;
   3370     const void*                      pNext;
   3371     VkQueryPoolCreateFlags           flags;
   3372     VkQueryType                      queryType;
   3373     uint32_t                         queryCount;
   3374     VkQueryPipelineStatisticFlags    pipelineStatistics;
   3375 } VkQueryPoolCreateInfo;
   3376 
   3377 typedef struct VkBufferCreateInfo {
   3378     VkStructureType        sType;
   3379     const void*            pNext;
   3380     VkBufferCreateFlags    flags;
   3381     VkDeviceSize           size;
   3382     VkBufferUsageFlags     usage;
   3383     VkSharingMode          sharingMode;
   3384     uint32_t               queueFamilyIndexCount;
   3385     const uint32_t*        pQueueFamilyIndices;
   3386 } VkBufferCreateInfo;
   3387 
   3388 typedef struct VkBufferViewCreateInfo {
   3389     VkStructureType            sType;
   3390     const void*                pNext;
   3391     VkBufferViewCreateFlags    flags;
   3392     VkBuffer                   buffer;
   3393     VkFormat                   format;
   3394     VkDeviceSize               offset;
   3395     VkDeviceSize               range;
   3396 } VkBufferViewCreateInfo;
   3397 
   3398 typedef struct VkImageCreateInfo {
   3399     VkStructureType          sType;
   3400     const void*              pNext;
   3401     VkImageCreateFlags       flags;
   3402     VkImageType              imageType;
   3403     VkFormat                 format;
   3404     VkExtent3D               extent;
   3405     uint32_t                 mipLevels;
   3406     uint32_t                 arrayLayers;
   3407     VkSampleCountFlagBits    samples;
   3408     VkImageTiling            tiling;
   3409     VkImageUsageFlags        usage;
   3410     VkSharingMode            sharingMode;
   3411     uint32_t                 queueFamilyIndexCount;
   3412     const uint32_t*          pQueueFamilyIndices;
   3413     VkImageLayout            initialLayout;
   3414 } VkImageCreateInfo;
   3415 
   3416 typedef struct VkSubresourceLayout {
   3417     VkDeviceSize    offset;
   3418     VkDeviceSize    size;
   3419     VkDeviceSize    rowPitch;
   3420     VkDeviceSize    arrayPitch;
   3421     VkDeviceSize    depthPitch;
   3422 } VkSubresourceLayout;
   3423 
   3424 typedef struct VkComponentMapping {
   3425     VkComponentSwizzle    r;
   3426     VkComponentSwizzle    g;
   3427     VkComponentSwizzle    b;
   3428     VkComponentSwizzle    a;
   3429 } VkComponentMapping;
   3430 
   3431 typedef struct VkImageViewCreateInfo {
   3432     VkStructureType            sType;
   3433     const void*                pNext;
   3434     VkImageViewCreateFlags     flags;
   3435     VkImage                    image;
   3436     VkImageViewType            viewType;
   3437     VkFormat                   format;
   3438     VkComponentMapping         components;
   3439     VkImageSubresourceRange    subresourceRange;
   3440 } VkImageViewCreateInfo;
   3441 
   3442 typedef struct VkShaderModuleCreateInfo {
   3443     VkStructureType              sType;
   3444     const void*                  pNext;
   3445     VkShaderModuleCreateFlags    flags;
   3446     size_t                       codeSize;
   3447     const uint32_t*              pCode;
   3448 } VkShaderModuleCreateInfo;
   3449 
   3450 typedef struct VkPipelineCacheCreateInfo {
   3451     VkStructureType               sType;
   3452     const void*                   pNext;
   3453     VkPipelineCacheCreateFlags    flags;
   3454     size_t                        initialDataSize;
   3455     const void*                   pInitialData;
   3456 } VkPipelineCacheCreateInfo;
   3457 
   3458 typedef struct VkSpecializationMapEntry {
   3459     uint32_t    constantID;
   3460     uint32_t    offset;
   3461     size_t      size;
   3462 } VkSpecializationMapEntry;
   3463 
   3464 typedef struct VkSpecializationInfo {
   3465     uint32_t                           mapEntryCount;
   3466     const VkSpecializationMapEntry*    pMapEntries;
   3467     size_t                             dataSize;
   3468     const void*                        pData;
   3469 } VkSpecializationInfo;
   3470 
   3471 typedef struct VkPipelineShaderStageCreateInfo {
   3472     VkStructureType                     sType;
   3473     const void*                         pNext;
   3474     VkPipelineShaderStageCreateFlags    flags;
   3475     VkShaderStageFlagBits               stage;
   3476     VkShaderModule                      module;
   3477     const char*                         pName;
   3478     const VkSpecializationInfo*         pSpecializationInfo;
   3479 } VkPipelineShaderStageCreateInfo;
   3480 
   3481 typedef struct VkComputePipelineCreateInfo {
   3482     VkStructureType                    sType;
   3483     const void*                        pNext;
   3484     VkPipelineCreateFlags              flags;
   3485     VkPipelineShaderStageCreateInfo    stage;
   3486     VkPipelineLayout                   layout;
   3487     VkPipeline                         basePipelineHandle;
   3488     int32_t                            basePipelineIndex;
   3489 } VkComputePipelineCreateInfo;
   3490 
   3491 typedef struct VkVertexInputBindingDescription {
   3492     uint32_t             binding;
   3493     uint32_t             stride;
   3494     VkVertexInputRate    inputRate;
   3495 } VkVertexInputBindingDescription;
   3496 
   3497 typedef struct VkVertexInputAttributeDescription {
   3498     uint32_t    location;
   3499     uint32_t    binding;
   3500     VkFormat    format;
   3501     uint32_t    offset;
   3502 } VkVertexInputAttributeDescription;
   3503 
   3504 typedef struct VkPipelineVertexInputStateCreateInfo {
   3505     VkStructureType                             sType;
   3506     const void*                                 pNext;
   3507     VkPipelineVertexInputStateCreateFlags       flags;
   3508     uint32_t                                    vertexBindingDescriptionCount;
   3509     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
   3510     uint32_t                                    vertexAttributeDescriptionCount;
   3511     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
   3512 } VkPipelineVertexInputStateCreateInfo;
   3513 
   3514 typedef struct VkPipelineInputAssemblyStateCreateInfo {
   3515     VkStructureType                            sType;
   3516     const void*                                pNext;
   3517     VkPipelineInputAssemblyStateCreateFlags    flags;
   3518     VkPrimitiveTopology                        topology;
   3519     VkBool32                                   primitiveRestartEnable;
   3520 } VkPipelineInputAssemblyStateCreateInfo;
   3521 
   3522 typedef struct VkPipelineTessellationStateCreateInfo {
   3523     VkStructureType                           sType;
   3524     const void*                               pNext;
   3525     VkPipelineTessellationStateCreateFlags    flags;
   3526     uint32_t                                  patchControlPoints;
   3527 } VkPipelineTessellationStateCreateInfo;
   3528 
   3529 typedef struct VkViewport {
   3530     float    x;
   3531     float    y;
   3532     float    width;
   3533     float    height;
   3534     float    minDepth;
   3535     float    maxDepth;
   3536 } VkViewport;
   3537 
   3538 typedef struct VkPipelineViewportStateCreateInfo {
   3539     VkStructureType                       sType;
   3540     const void*                           pNext;
   3541     VkPipelineViewportStateCreateFlags    flags;
   3542     uint32_t                              viewportCount;
   3543     const VkViewport*                     pViewports;
   3544     uint32_t                              scissorCount;
   3545     const VkRect2D*                       pScissors;
   3546 } VkPipelineViewportStateCreateInfo;
   3547 
   3548 typedef struct VkPipelineRasterizationStateCreateInfo {
   3549     VkStructureType                            sType;
   3550     const void*                                pNext;
   3551     VkPipelineRasterizationStateCreateFlags    flags;
   3552     VkBool32                                   depthClampEnable;
   3553     VkBool32                                   rasterizerDiscardEnable;
   3554     VkPolygonMode                              polygonMode;
   3555     VkCullModeFlags                            cullMode;
   3556     VkFrontFace                                frontFace;
   3557     VkBool32                                   depthBiasEnable;
   3558     float                                      depthBiasConstantFactor;
   3559     float                                      depthBiasClamp;
   3560     float                                      depthBiasSlopeFactor;
   3561     float                                      lineWidth;
   3562 } VkPipelineRasterizationStateCreateInfo;
   3563 
   3564 typedef struct VkPipelineMultisampleStateCreateInfo {
   3565     VkStructureType                          sType;
   3566     const void*                              pNext;
   3567     VkPipelineMultisampleStateCreateFlags    flags;
   3568     VkSampleCountFlagBits                    rasterizationSamples;
   3569     VkBool32                                 sampleShadingEnable;
   3570     float                                    minSampleShading;
   3571     const VkSampleMask*                      pSampleMask;
   3572     VkBool32                                 alphaToCoverageEnable;
   3573     VkBool32                                 alphaToOneEnable;
   3574 } VkPipelineMultisampleStateCreateInfo;
   3575 
   3576 typedef struct VkStencilOpState {
   3577     VkStencilOp    failOp;
   3578     VkStencilOp    passOp;
   3579     VkStencilOp    depthFailOp;
   3580     VkCompareOp    compareOp;
   3581     uint32_t       compareMask;
   3582     uint32_t       writeMask;
   3583     uint32_t       reference;
   3584 } VkStencilOpState;
   3585 
   3586 typedef struct VkPipelineDepthStencilStateCreateInfo {
   3587     VkStructureType                           sType;
   3588     const void*                               pNext;
   3589     VkPipelineDepthStencilStateCreateFlags    flags;
   3590     VkBool32                                  depthTestEnable;
   3591     VkBool32                                  depthWriteEnable;
   3592     VkCompareOp                               depthCompareOp;
   3593     VkBool32                                  depthBoundsTestEnable;
   3594     VkBool32                                  stencilTestEnable;
   3595     VkStencilOpState                          front;
   3596     VkStencilOpState                          back;
   3597     float                                     minDepthBounds;
   3598     float                                     maxDepthBounds;
   3599 } VkPipelineDepthStencilStateCreateInfo;
   3600 
   3601 typedef struct VkPipelineColorBlendAttachmentState {
   3602     VkBool32                 blendEnable;
   3603     VkBlendFactor            srcColorBlendFactor;
   3604     VkBlendFactor            dstColorBlendFactor;
   3605     VkBlendOp                colorBlendOp;
   3606     VkBlendFactor            srcAlphaBlendFactor;
   3607     VkBlendFactor            dstAlphaBlendFactor;
   3608     VkBlendOp                alphaBlendOp;
   3609     VkColorComponentFlags    colorWriteMask;
   3610 } VkPipelineColorBlendAttachmentState;
   3611 
   3612 typedef struct VkPipelineColorBlendStateCreateInfo {
   3613     VkStructureType                               sType;
   3614     const void*                                   pNext;
   3615     VkPipelineColorBlendStateCreateFlags          flags;
   3616     VkBool32                                      logicOpEnable;
   3617     VkLogicOp                                     logicOp;
   3618     uint32_t                                      attachmentCount;
   3619     const VkPipelineColorBlendAttachmentState*    pAttachments;
   3620     float                                         blendConstants[4];
   3621 } VkPipelineColorBlendStateCreateInfo;
   3622 
   3623 typedef struct VkPipelineDynamicStateCreateInfo {
   3624     VkStructureType                      sType;
   3625     const void*                          pNext;
   3626     VkPipelineDynamicStateCreateFlags    flags;
   3627     uint32_t                             dynamicStateCount;
   3628     const VkDynamicState*                pDynamicStates;
   3629 } VkPipelineDynamicStateCreateInfo;
   3630 
   3631 typedef struct VkGraphicsPipelineCreateInfo {
   3632     VkStructureType                                  sType;
   3633     const void*                                      pNext;
   3634     VkPipelineCreateFlags                            flags;
   3635     uint32_t                                         stageCount;
   3636     const VkPipelineShaderStageCreateInfo*           pStages;
   3637     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
   3638     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
   3639     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
   3640     const VkPipelineViewportStateCreateInfo*         pViewportState;
   3641     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
   3642     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
   3643     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
   3644     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
   3645     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
   3646     VkPipelineLayout                                 layout;
   3647     VkRenderPass                                     renderPass;
   3648     uint32_t                                         subpass;
   3649     VkPipeline                                       basePipelineHandle;
   3650     int32_t                                          basePipelineIndex;
   3651 } VkGraphicsPipelineCreateInfo;
   3652 
   3653 typedef struct VkPushConstantRange {
   3654     VkShaderStageFlags    stageFlags;
   3655     uint32_t              offset;
   3656     uint32_t              size;
   3657 } VkPushConstantRange;
   3658 
   3659 typedef struct VkPipelineLayoutCreateInfo {
   3660     VkStructureType                 sType;
   3661     const void*                     pNext;
   3662     VkPipelineLayoutCreateFlags     flags;
   3663     uint32_t                        setLayoutCount;
   3664     const VkDescriptorSetLayout*    pSetLayouts;
   3665     uint32_t                        pushConstantRangeCount;
   3666     const VkPushConstantRange*      pPushConstantRanges;
   3667 } VkPipelineLayoutCreateInfo;
   3668 
   3669 typedef struct VkSamplerCreateInfo {
   3670     VkStructureType         sType;
   3671     const void*             pNext;
   3672     VkSamplerCreateFlags    flags;
   3673     VkFilter                magFilter;
   3674     VkFilter                minFilter;
   3675     VkSamplerMipmapMode     mipmapMode;
   3676     VkSamplerAddressMode    addressModeU;
   3677     VkSamplerAddressMode    addressModeV;
   3678     VkSamplerAddressMode    addressModeW;
   3679     float                   mipLodBias;
   3680     VkBool32                anisotropyEnable;
   3681     float                   maxAnisotropy;
   3682     VkBool32                compareEnable;
   3683     VkCompareOp             compareOp;
   3684     float                   minLod;
   3685     float                   maxLod;
   3686     VkBorderColor           borderColor;
   3687     VkBool32                unnormalizedCoordinates;
   3688 } VkSamplerCreateInfo;
   3689 
   3690 typedef struct VkCopyDescriptorSet {
   3691     VkStructureType    sType;
   3692     const void*        pNext;
   3693     VkDescriptorSet    srcSet;
   3694     uint32_t           srcBinding;
   3695     uint32_t           srcArrayElement;
   3696     VkDescriptorSet    dstSet;
   3697     uint32_t           dstBinding;
   3698     uint32_t           dstArrayElement;
   3699     uint32_t           descriptorCount;
   3700 } VkCopyDescriptorSet;
   3701 
   3702 typedef struct VkDescriptorBufferInfo {
   3703     VkBuffer        buffer;
   3704     VkDeviceSize    offset;
   3705     VkDeviceSize    range;
   3706 } VkDescriptorBufferInfo;
   3707 
   3708 typedef struct VkDescriptorImageInfo {
   3709     VkSampler        sampler;
   3710     VkImageView      imageView;
   3711     VkImageLayout    imageLayout;
   3712 } VkDescriptorImageInfo;
   3713 
   3714 typedef struct VkDescriptorPoolSize {
   3715     VkDescriptorType    type;
   3716     uint32_t            descriptorCount;
   3717 } VkDescriptorPoolSize;
   3718 
   3719 typedef struct VkDescriptorPoolCreateInfo {
   3720     VkStructureType                sType;
   3721     const void*                    pNext;
   3722     VkDescriptorPoolCreateFlags    flags;
   3723     uint32_t                       maxSets;
   3724     uint32_t                       poolSizeCount;
   3725     const VkDescriptorPoolSize*    pPoolSizes;
   3726 } VkDescriptorPoolCreateInfo;
   3727 
   3728 typedef struct VkDescriptorSetAllocateInfo {
   3729     VkStructureType                 sType;
   3730     const void*                     pNext;
   3731     VkDescriptorPool                descriptorPool;
   3732     uint32_t                        descriptorSetCount;
   3733     const VkDescriptorSetLayout*    pSetLayouts;
   3734 } VkDescriptorSetAllocateInfo;
   3735 
   3736 typedef struct VkDescriptorSetLayoutBinding {
   3737     uint32_t              binding;
   3738     VkDescriptorType      descriptorType;
   3739     uint32_t              descriptorCount;
   3740     VkShaderStageFlags    stageFlags;
   3741     const VkSampler*      pImmutableSamplers;
   3742 } VkDescriptorSetLayoutBinding;
   3743 
   3744 typedef struct VkDescriptorSetLayoutCreateInfo {
   3745     VkStructureType                        sType;
   3746     const void*                            pNext;
   3747     VkDescriptorSetLayoutCreateFlags       flags;
   3748     uint32_t                               bindingCount;
   3749     const VkDescriptorSetLayoutBinding*    pBindings;
   3750 } VkDescriptorSetLayoutCreateInfo;
   3751 
   3752 typedef struct VkWriteDescriptorSet {
   3753     VkStructureType                  sType;
   3754     const void*                      pNext;
   3755     VkDescriptorSet                  dstSet;
   3756     uint32_t                         dstBinding;
   3757     uint32_t                         dstArrayElement;
   3758     uint32_t                         descriptorCount;
   3759     VkDescriptorType                 descriptorType;
   3760     const VkDescriptorImageInfo*     pImageInfo;
   3761     const VkDescriptorBufferInfo*    pBufferInfo;
   3762     const VkBufferView*              pTexelBufferView;
   3763 } VkWriteDescriptorSet;
   3764 
   3765 typedef struct VkAttachmentDescription {
   3766     VkAttachmentDescriptionFlags    flags;
   3767     VkFormat                        format;
   3768     VkSampleCountFlagBits           samples;
   3769     VkAttachmentLoadOp              loadOp;
   3770     VkAttachmentStoreOp             storeOp;
   3771     VkAttachmentLoadOp              stencilLoadOp;
   3772     VkAttachmentStoreOp             stencilStoreOp;
   3773     VkImageLayout                   initialLayout;
   3774     VkImageLayout                   finalLayout;
   3775 } VkAttachmentDescription;
   3776 
   3777 typedef struct VkAttachmentReference {
   3778     uint32_t         attachment;
   3779     VkImageLayout    layout;
   3780 } VkAttachmentReference;
   3781 
   3782 typedef struct VkFramebufferCreateInfo {
   3783     VkStructureType             sType;
   3784     const void*                 pNext;
   3785     VkFramebufferCreateFlags    flags;
   3786     VkRenderPass                renderPass;
   3787     uint32_t                    attachmentCount;
   3788     const VkImageView*          pAttachments;
   3789     uint32_t                    width;
   3790     uint32_t                    height;
   3791     uint32_t                    layers;
   3792 } VkFramebufferCreateInfo;
   3793 
   3794 typedef struct VkSubpassDescription {
   3795     VkSubpassDescriptionFlags       flags;
   3796     VkPipelineBindPoint             pipelineBindPoint;
   3797     uint32_t                        inputAttachmentCount;
   3798     const VkAttachmentReference*    pInputAttachments;
   3799     uint32_t                        colorAttachmentCount;
   3800     const VkAttachmentReference*    pColorAttachments;
   3801     const VkAttachmentReference*    pResolveAttachments;
   3802     const VkAttachmentReference*    pDepthStencilAttachment;
   3803     uint32_t                        preserveAttachmentCount;
   3804     const uint32_t*                 pPreserveAttachments;
   3805 } VkSubpassDescription;
   3806 
   3807 typedef struct VkSubpassDependency {
   3808     uint32_t                srcSubpass;
   3809     uint32_t                dstSubpass;
   3810     VkPipelineStageFlags    srcStageMask;
   3811     VkPipelineStageFlags    dstStageMask;
   3812     VkAccessFlags           srcAccessMask;
   3813     VkAccessFlags           dstAccessMask;
   3814     VkDependencyFlags       dependencyFlags;
   3815 } VkSubpassDependency;
   3816 
   3817 typedef struct VkRenderPassCreateInfo {
   3818     VkStructureType                   sType;
   3819     const void*                       pNext;
   3820     VkRenderPassCreateFlags           flags;
   3821     uint32_t                          attachmentCount;
   3822     const VkAttachmentDescription*    pAttachments;
   3823     uint32_t                          subpassCount;
   3824     const VkSubpassDescription*       pSubpasses;
   3825     uint32_t                          dependencyCount;
   3826     const VkSubpassDependency*        pDependencies;
   3827 } VkRenderPassCreateInfo;
   3828 
   3829 typedef struct VkCommandPoolCreateInfo {
   3830     VkStructureType             sType;
   3831     const void*                 pNext;
   3832     VkCommandPoolCreateFlags    flags;
   3833     uint32_t                    queueFamilyIndex;
   3834 } VkCommandPoolCreateInfo;
   3835 
   3836 typedef struct VkCommandBufferAllocateInfo {
   3837     VkStructureType         sType;
   3838     const void*             pNext;
   3839     VkCommandPool           commandPool;
   3840     VkCommandBufferLevel    level;
   3841     uint32_t                commandBufferCount;
   3842 } VkCommandBufferAllocateInfo;
   3843 
   3844 typedef struct VkCommandBufferInheritanceInfo {
   3845     VkStructureType                  sType;
   3846     const void*                      pNext;
   3847     VkRenderPass                     renderPass;
   3848     uint32_t                         subpass;
   3849     VkFramebuffer                    framebuffer;
   3850     VkBool32                         occlusionQueryEnable;
   3851     VkQueryControlFlags              queryFlags;
   3852     VkQueryPipelineStatisticFlags    pipelineStatistics;
   3853 } VkCommandBufferInheritanceInfo;
   3854 
   3855 typedef struct VkCommandBufferBeginInfo {
   3856     VkStructureType                          sType;
   3857     const void*                              pNext;
   3858     VkCommandBufferUsageFlags                flags;
   3859     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
   3860 } VkCommandBufferBeginInfo;
   3861 
   3862 typedef struct VkBufferCopy {
   3863     VkDeviceSize    srcOffset;
   3864     VkDeviceSize    dstOffset;
   3865     VkDeviceSize    size;
   3866 } VkBufferCopy;
   3867 
   3868 typedef struct VkImageSubresourceLayers {
   3869     VkImageAspectFlags    aspectMask;
   3870     uint32_t              mipLevel;
   3871     uint32_t              baseArrayLayer;
   3872     uint32_t              layerCount;
   3873 } VkImageSubresourceLayers;
   3874 
   3875 typedef struct VkBufferImageCopy {
   3876     VkDeviceSize                bufferOffset;
   3877     uint32_t                    bufferRowLength;
   3878     uint32_t                    bufferImageHeight;
   3879     VkImageSubresourceLayers    imageSubresource;
   3880     VkOffset3D                  imageOffset;
   3881     VkExtent3D                  imageExtent;
   3882 } VkBufferImageCopy;
   3883 
   3884 typedef union VkClearColorValue {
   3885     float       float32[4];
   3886     int32_t     int32[4];
   3887     uint32_t    uint32[4];
   3888 } VkClearColorValue;
   3889 
   3890 typedef struct VkClearDepthStencilValue {
   3891     float       depth;
   3892     uint32_t    stencil;
   3893 } VkClearDepthStencilValue;
   3894 
   3895 typedef union VkClearValue {
   3896     VkClearColorValue           color;
   3897     VkClearDepthStencilValue    depthStencil;
   3898 } VkClearValue;
   3899 
   3900 typedef struct VkClearAttachment {
   3901     VkImageAspectFlags    aspectMask;
   3902     uint32_t              colorAttachment;
   3903     VkClearValue          clearValue;
   3904 } VkClearAttachment;
   3905 
   3906 typedef struct VkClearRect {
   3907     VkRect2D    rect;
   3908     uint32_t    baseArrayLayer;
   3909     uint32_t    layerCount;
   3910 } VkClearRect;
   3911 
   3912 typedef struct VkImageBlit {
   3913     VkImageSubresourceLayers    srcSubresource;
   3914     VkOffset3D                  srcOffsets[2];
   3915     VkImageSubresourceLayers    dstSubresource;
   3916     VkOffset3D                  dstOffsets[2];
   3917 } VkImageBlit;
   3918 
   3919 typedef struct VkImageCopy {
   3920     VkImageSubresourceLayers    srcSubresource;
   3921     VkOffset3D                  srcOffset;
   3922     VkImageSubresourceLayers    dstSubresource;
   3923     VkOffset3D                  dstOffset;
   3924     VkExtent3D                  extent;
   3925 } VkImageCopy;
   3926 
   3927 typedef struct VkImageResolve {
   3928     VkImageSubresourceLayers    srcSubresource;
   3929     VkOffset3D                  srcOffset;
   3930     VkImageSubresourceLayers    dstSubresource;
   3931     VkOffset3D                  dstOffset;
   3932     VkExtent3D                  extent;
   3933 } VkImageResolve;
   3934 
   3935 typedef struct VkRenderPassBeginInfo {
   3936     VkStructureType        sType;
   3937     const void*            pNext;
   3938     VkRenderPass           renderPass;
   3939     VkFramebuffer          framebuffer;
   3940     VkRect2D               renderArea;
   3941     uint32_t               clearValueCount;
   3942     const VkClearValue*    pClearValues;
   3943 } VkRenderPassBeginInfo;
   3944 
   3945 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
   3946 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
   3947 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
   3948 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
   3949 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
   3950 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
   3951 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
   3952 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
   3953 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
   3954 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
   3955 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
   3956 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
   3957 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
   3958 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
   3959 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
   3960 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
   3961 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
   3962 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
   3963 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
   3964 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
   3965 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
   3966 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
   3967 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
   3968 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
   3969 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
   3970 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
   3971 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
   3972 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
   3973 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   3974 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   3975 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
   3976 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
   3977 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
   3978 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
   3979 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
   3980 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
   3981 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
   3982 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
   3983 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
   3984 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
   3985 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
   3986 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
   3987 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
   3988 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
   3989 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
   3990 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
   3991 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
   3992 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
   3993 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
   3994 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
   3995 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
   3996 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
   3997 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
   3998 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
   3999 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
   4000 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
   4001 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
   4002 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
   4003 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
   4004 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
   4005 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
   4006 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
   4007 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
   4008 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
   4009 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
   4010 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
   4011 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
   4012 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
   4013 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
   4014 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
   4015 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
   4016 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
   4017 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
   4018 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
   4019 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
   4020 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
   4021 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
   4022 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
   4023 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
   4024 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
   4025 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
   4026 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
   4027 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   4028 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
   4029 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
   4030 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
   4031 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
   4032 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
   4033 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
   4034 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
   4035 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
   4036 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
   4037 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
   4038 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
   4039 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
   4040 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
   4041 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
   4042 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
   4043 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
   4044 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
   4045 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
   4046 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
   4047 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
   4048 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
   4049 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
   4050 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
   4051 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
   4052 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
   4053 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   4054 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   4055 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   4056 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
   4057 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
   4058 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
   4059 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
   4060 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
   4061 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
   4062 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
   4063 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
   4064 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
   4065 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
   4066 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
   4067 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
   4068 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   4069 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   4070 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
   4071 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
   4072 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
   4073 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
   4074 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   4075 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
   4076 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
   4077 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
   4078 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
   4079 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
   4080 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
   4081 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
   4082 
   4083 #ifndef VK_NO_PROTOTYPES
   4084 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
   4085     const VkInstanceCreateInfo*                 pCreateInfo,
   4086     const VkAllocationCallbacks*                pAllocator,
   4087     VkInstance*                                 pInstance);
   4088 
   4089 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
   4090     VkInstance                                  instance,
   4091     const VkAllocationCallbacks*                pAllocator);
   4092 
   4093 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
   4094     VkInstance                                  instance,
   4095     uint32_t*                                   pPhysicalDeviceCount,
   4096     VkPhysicalDevice*                           pPhysicalDevices);
   4097 
   4098 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
   4099     VkPhysicalDevice                            physicalDevice,
   4100     VkPhysicalDeviceFeatures*                   pFeatures);
   4101 
   4102 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
   4103     VkPhysicalDevice                            physicalDevice,
   4104     VkFormat                                    format,
   4105     VkFormatProperties*                         pFormatProperties);
   4106 
   4107 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
   4108     VkPhysicalDevice                            physicalDevice,
   4109     VkFormat                                    format,
   4110     VkImageType                                 type,
   4111     VkImageTiling                               tiling,
   4112     VkImageUsageFlags                           usage,
   4113     VkImageCreateFlags                          flags,
   4114     VkImageFormatProperties*                    pImageFormatProperties);
   4115 
   4116 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
   4117     VkPhysicalDevice                            physicalDevice,
   4118     VkPhysicalDeviceProperties*                 pProperties);
   4119 
   4120 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
   4121     VkPhysicalDevice                            physicalDevice,
   4122     uint32_t*                                   pQueueFamilyPropertyCount,
   4123     VkQueueFamilyProperties*                    pQueueFamilyProperties);
   4124 
   4125 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
   4126     VkPhysicalDevice                            physicalDevice,
   4127     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
   4128 
   4129 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
   4130     VkInstance                                  instance,
   4131     const char*                                 pName);
   4132 
   4133 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
   4134     VkDevice                                    device,
   4135     const char*                                 pName);
   4136 
   4137 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
   4138     VkPhysicalDevice                            physicalDevice,
   4139     const VkDeviceCreateInfo*                   pCreateInfo,
   4140     const VkAllocationCallbacks*                pAllocator,
   4141     VkDevice*                                   pDevice);
   4142 
   4143 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
   4144     VkDevice                                    device,
   4145     const VkAllocationCallbacks*                pAllocator);
   4146 
   4147 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
   4148     const char*                                 pLayerName,
   4149     uint32_t*                                   pPropertyCount,
   4150     VkExtensionProperties*                      pProperties);
   4151 
   4152 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
   4153     VkPhysicalDevice                            physicalDevice,
   4154     const char*                                 pLayerName,
   4155     uint32_t*                                   pPropertyCount,
   4156     VkExtensionProperties*                      pProperties);
   4157 
   4158 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
   4159     uint32_t*                                   pPropertyCount,
   4160     VkLayerProperties*                          pProperties);
   4161 
   4162 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
   4163     VkPhysicalDevice                            physicalDevice,
   4164     uint32_t*                                   pPropertyCount,
   4165     VkLayerProperties*                          pProperties);
   4166 
   4167 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
   4168     VkDevice                                    device,
   4169     uint32_t                                    queueFamilyIndex,
   4170     uint32_t                                    queueIndex,
   4171     VkQueue*                                    pQueue);
   4172 
   4173 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
   4174     VkQueue                                     queue,
   4175     uint32_t                                    submitCount,
   4176     const VkSubmitInfo*                         pSubmits,
   4177     VkFence                                     fence);
   4178 
   4179 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
   4180     VkQueue                                     queue);
   4181 
   4182 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
   4183     VkDevice                                    device);
   4184 
   4185 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
   4186     VkDevice                                    device,
   4187     const VkMemoryAllocateInfo*                 pAllocateInfo,
   4188     const VkAllocationCallbacks*                pAllocator,
   4189     VkDeviceMemory*                             pMemory);
   4190 
   4191 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
   4192     VkDevice                                    device,
   4193     VkDeviceMemory                              memory,
   4194     const VkAllocationCallbacks*                pAllocator);
   4195 
   4196 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
   4197     VkDevice                                    device,
   4198     VkDeviceMemory                              memory,
   4199     VkDeviceSize                                offset,
   4200     VkDeviceSize                                size,
   4201     VkMemoryMapFlags                            flags,
   4202     void**                                      ppData);
   4203 
   4204 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
   4205     VkDevice                                    device,
   4206     VkDeviceMemory                              memory);
   4207 
   4208 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
   4209     VkDevice                                    device,
   4210     uint32_t                                    memoryRangeCount,
   4211     const VkMappedMemoryRange*                  pMemoryRanges);
   4212 
   4213 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
   4214     VkDevice                                    device,
   4215     uint32_t                                    memoryRangeCount,
   4216     const VkMappedMemoryRange*                  pMemoryRanges);
   4217 
   4218 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
   4219     VkDevice                                    device,
   4220     VkDeviceMemory                              memory,
   4221     VkDeviceSize*                               pCommittedMemoryInBytes);
   4222 
   4223 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
   4224     VkDevice                                    device,
   4225     VkBuffer                                    buffer,
   4226     VkDeviceMemory                              memory,
   4227     VkDeviceSize                                memoryOffset);
   4228 
   4229 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
   4230     VkDevice                                    device,
   4231     VkImage                                     image,
   4232     VkDeviceMemory                              memory,
   4233     VkDeviceSize                                memoryOffset);
   4234 
   4235 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
   4236     VkDevice                                    device,
   4237     VkBuffer                                    buffer,
   4238     VkMemoryRequirements*                       pMemoryRequirements);
   4239 
   4240 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
   4241     VkDevice                                    device,
   4242     VkImage                                     image,
   4243     VkMemoryRequirements*                       pMemoryRequirements);
   4244 
   4245 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
   4246     VkDevice                                    device,
   4247     VkImage                                     image,
   4248     uint32_t*                                   pSparseMemoryRequirementCount,
   4249     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
   4250 
   4251 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
   4252     VkPhysicalDevice                            physicalDevice,
   4253     VkFormat                                    format,
   4254     VkImageType                                 type,
   4255     VkSampleCountFlagBits                       samples,
   4256     VkImageUsageFlags                           usage,
   4257     VkImageTiling                               tiling,
   4258     uint32_t*                                   pPropertyCount,
   4259     VkSparseImageFormatProperties*              pProperties);
   4260 
   4261 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
   4262     VkQueue                                     queue,
   4263     uint32_t                                    bindInfoCount,
   4264     const VkBindSparseInfo*                     pBindInfo,
   4265     VkFence                                     fence);
   4266 
   4267 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
   4268     VkDevice                                    device,
   4269     const VkFenceCreateInfo*                    pCreateInfo,
   4270     const VkAllocationCallbacks*                pAllocator,
   4271     VkFence*                                    pFence);
   4272 
   4273 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
   4274     VkDevice                                    device,
   4275     VkFence                                     fence,
   4276     const VkAllocationCallbacks*                pAllocator);
   4277 
   4278 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
   4279     VkDevice                                    device,
   4280     uint32_t                                    fenceCount,
   4281     const VkFence*                              pFences);
   4282 
   4283 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
   4284     VkDevice                                    device,
   4285     VkFence                                     fence);
   4286 
   4287 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
   4288     VkDevice                                    device,
   4289     uint32_t                                    fenceCount,
   4290     const VkFence*                              pFences,
   4291     VkBool32                                    waitAll,
   4292     uint64_t                                    timeout);
   4293 
   4294 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
   4295     VkDevice                                    device,
   4296     const VkSemaphoreCreateInfo*                pCreateInfo,
   4297     const VkAllocationCallbacks*                pAllocator,
   4298     VkSemaphore*                                pSemaphore);
   4299 
   4300 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
   4301     VkDevice                                    device,
   4302     VkSemaphore                                 semaphore,
   4303     const VkAllocationCallbacks*                pAllocator);
   4304 
   4305 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
   4306     VkDevice                                    device,
   4307     const VkEventCreateInfo*                    pCreateInfo,
   4308     const VkAllocationCallbacks*                pAllocator,
   4309     VkEvent*                                    pEvent);
   4310 
   4311 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
   4312     VkDevice                                    device,
   4313     VkEvent                                     event,
   4314     const VkAllocationCallbacks*                pAllocator);
   4315 
   4316 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
   4317     VkDevice                                    device,
   4318     VkEvent                                     event);
   4319 
   4320 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
   4321     VkDevice                                    device,
   4322     VkEvent                                     event);
   4323 
   4324 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
   4325     VkDevice                                    device,
   4326     VkEvent                                     event);
   4327 
   4328 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
   4329     VkDevice                                    device,
   4330     const VkQueryPoolCreateInfo*                pCreateInfo,
   4331     const VkAllocationCallbacks*                pAllocator,
   4332     VkQueryPool*                                pQueryPool);
   4333 
   4334 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
   4335     VkDevice                                    device,
   4336     VkQueryPool                                 queryPool,
   4337     const VkAllocationCallbacks*                pAllocator);
   4338 
   4339 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
   4340     VkDevice                                    device,
   4341     VkQueryPool                                 queryPool,
   4342     uint32_t                                    firstQuery,
   4343     uint32_t                                    queryCount,
   4344     size_t                                      dataSize,
   4345     void*                                       pData,
   4346     VkDeviceSize                                stride,
   4347     VkQueryResultFlags                          flags);
   4348 
   4349 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
   4350     VkDevice                                    device,
   4351     const VkBufferCreateInfo*                   pCreateInfo,
   4352     const VkAllocationCallbacks*                pAllocator,
   4353     VkBuffer*                                   pBuffer);
   4354 
   4355 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
   4356     VkDevice                                    device,
   4357     VkBuffer                                    buffer,
   4358     const VkAllocationCallbacks*                pAllocator);
   4359 
   4360 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
   4361     VkDevice                                    device,
   4362     const VkBufferViewCreateInfo*               pCreateInfo,
   4363     const VkAllocationCallbacks*                pAllocator,
   4364     VkBufferView*                               pView);
   4365 
   4366 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
   4367     VkDevice                                    device,
   4368     VkBufferView                                bufferView,
   4369     const VkAllocationCallbacks*                pAllocator);
   4370 
   4371 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
   4372     VkDevice                                    device,
   4373     const VkImageCreateInfo*                    pCreateInfo,
   4374     const VkAllocationCallbacks*                pAllocator,
   4375     VkImage*                                    pImage);
   4376 
   4377 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
   4378     VkDevice                                    device,
   4379     VkImage                                     image,
   4380     const VkAllocationCallbacks*                pAllocator);
   4381 
   4382 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
   4383     VkDevice                                    device,
   4384     VkImage                                     image,
   4385     const VkImageSubresource*                   pSubresource,
   4386     VkSubresourceLayout*                        pLayout);
   4387 
   4388 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
   4389     VkDevice                                    device,
   4390     const VkImageViewCreateInfo*                pCreateInfo,
   4391     const VkAllocationCallbacks*                pAllocator,
   4392     VkImageView*                                pView);
   4393 
   4394 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
   4395     VkDevice                                    device,
   4396     VkImageView                                 imageView,
   4397     const VkAllocationCallbacks*                pAllocator);
   4398 
   4399 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
   4400     VkDevice                                    device,
   4401     const VkShaderModuleCreateInfo*             pCreateInfo,
   4402     const VkAllocationCallbacks*                pAllocator,
   4403     VkShaderModule*                             pShaderModule);
   4404 
   4405 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
   4406     VkDevice                                    device,
   4407     VkShaderModule                              shaderModule,
   4408     const VkAllocationCallbacks*                pAllocator);
   4409 
   4410 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
   4411     VkDevice                                    device,
   4412     const VkPipelineCacheCreateInfo*            pCreateInfo,
   4413     const VkAllocationCallbacks*                pAllocator,
   4414     VkPipelineCache*                            pPipelineCache);
   4415 
   4416 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
   4417     VkDevice                                    device,
   4418     VkPipelineCache                             pipelineCache,
   4419     const VkAllocationCallbacks*                pAllocator);
   4420 
   4421 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
   4422     VkDevice                                    device,
   4423     VkPipelineCache                             pipelineCache,
   4424     size_t*                                     pDataSize,
   4425     void*                                       pData);
   4426 
   4427 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
   4428     VkDevice                                    device,
   4429     VkPipelineCache                             dstCache,
   4430     uint32_t                                    srcCacheCount,
   4431     const VkPipelineCache*                      pSrcCaches);
   4432 
   4433 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
   4434     VkDevice                                    device,
   4435     VkPipelineCache                             pipelineCache,
   4436     uint32_t                                    createInfoCount,
   4437     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
   4438     const VkAllocationCallbacks*                pAllocator,
   4439     VkPipeline*                                 pPipelines);
   4440 
   4441 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
   4442     VkDevice                                    device,
   4443     VkPipelineCache                             pipelineCache,
   4444     uint32_t                                    createInfoCount,
   4445     const VkComputePipelineCreateInfo*          pCreateInfos,
   4446     const VkAllocationCallbacks*                pAllocator,
   4447     VkPipeline*                                 pPipelines);
   4448 
   4449 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
   4450     VkDevice                                    device,
   4451     VkPipeline                                  pipeline,
   4452     const VkAllocationCallbacks*                pAllocator);
   4453 
   4454 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
   4455     VkDevice                                    device,
   4456     const VkPipelineLayoutCreateInfo*           pCreateInfo,
   4457     const VkAllocationCallbacks*                pAllocator,
   4458     VkPipelineLayout*                           pPipelineLayout);
   4459 
   4460 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
   4461     VkDevice                                    device,
   4462     VkPipelineLayout                            pipelineLayout,
   4463     const VkAllocationCallbacks*                pAllocator);
   4464 
   4465 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
   4466     VkDevice                                    device,
   4467     const VkSamplerCreateInfo*                  pCreateInfo,
   4468     const VkAllocationCallbacks*                pAllocator,
   4469     VkSampler*                                  pSampler);
   4470 
   4471 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
   4472     VkDevice                                    device,
   4473     VkSampler                                   sampler,
   4474     const VkAllocationCallbacks*                pAllocator);
   4475 
   4476 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
   4477     VkDevice                                    device,
   4478     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   4479     const VkAllocationCallbacks*                pAllocator,
   4480     VkDescriptorSetLayout*                      pSetLayout);
   4481 
   4482 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
   4483     VkDevice                                    device,
   4484     VkDescriptorSetLayout                       descriptorSetLayout,
   4485     const VkAllocationCallbacks*                pAllocator);
   4486 
   4487 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
   4488     VkDevice                                    device,
   4489     const VkDescriptorPoolCreateInfo*           pCreateInfo,
   4490     const VkAllocationCallbacks*                pAllocator,
   4491     VkDescriptorPool*                           pDescriptorPool);
   4492 
   4493 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
   4494     VkDevice                                    device,
   4495     VkDescriptorPool                            descriptorPool,
   4496     const VkAllocationCallbacks*                pAllocator);
   4497 
   4498 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
   4499     VkDevice                                    device,
   4500     VkDescriptorPool                            descriptorPool,
   4501     VkDescriptorPoolResetFlags                  flags);
   4502 
   4503 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
   4504     VkDevice                                    device,
   4505     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
   4506     VkDescriptorSet*                            pDescriptorSets);
   4507 
   4508 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
   4509     VkDevice                                    device,
   4510     VkDescriptorPool                            descriptorPool,
   4511     uint32_t                                    descriptorSetCount,
   4512     const VkDescriptorSet*                      pDescriptorSets);
   4513 
   4514 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
   4515     VkDevice                                    device,
   4516     uint32_t                                    descriptorWriteCount,
   4517     const VkWriteDescriptorSet*                 pDescriptorWrites,
   4518     uint32_t                                    descriptorCopyCount,
   4519     const VkCopyDescriptorSet*                  pDescriptorCopies);
   4520 
   4521 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
   4522     VkDevice                                    device,
   4523     const VkFramebufferCreateInfo*              pCreateInfo,
   4524     const VkAllocationCallbacks*                pAllocator,
   4525     VkFramebuffer*                              pFramebuffer);
   4526 
   4527 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
   4528     VkDevice                                    device,
   4529     VkFramebuffer                               framebuffer,
   4530     const VkAllocationCallbacks*                pAllocator);
   4531 
   4532 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
   4533     VkDevice                                    device,
   4534     const VkRenderPassCreateInfo*               pCreateInfo,
   4535     const VkAllocationCallbacks*                pAllocator,
   4536     VkRenderPass*                               pRenderPass);
   4537 
   4538 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
   4539     VkDevice                                    device,
   4540     VkRenderPass                                renderPass,
   4541     const VkAllocationCallbacks*                pAllocator);
   4542 
   4543 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
   4544     VkDevice                                    device,
   4545     VkRenderPass                                renderPass,
   4546     VkExtent2D*                                 pGranularity);
   4547 
   4548 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
   4549     VkDevice                                    device,
   4550     const VkCommandPoolCreateInfo*              pCreateInfo,
   4551     const VkAllocationCallbacks*                pAllocator,
   4552     VkCommandPool*                              pCommandPool);
   4553 
   4554 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
   4555     VkDevice                                    device,
   4556     VkCommandPool                               commandPool,
   4557     const VkAllocationCallbacks*                pAllocator);
   4558 
   4559 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
   4560     VkDevice                                    device,
   4561     VkCommandPool                               commandPool,
   4562     VkCommandPoolResetFlags                     flags);
   4563 
   4564 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
   4565     VkDevice                                    device,
   4566     const VkCommandBufferAllocateInfo*          pAllocateInfo,
   4567     VkCommandBuffer*                            pCommandBuffers);
   4568 
   4569 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
   4570     VkDevice                                    device,
   4571     VkCommandPool                               commandPool,
   4572     uint32_t                                    commandBufferCount,
   4573     const VkCommandBuffer*                      pCommandBuffers);
   4574 
   4575 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
   4576     VkCommandBuffer                             commandBuffer,
   4577     const VkCommandBufferBeginInfo*             pBeginInfo);
   4578 
   4579 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
   4580     VkCommandBuffer                             commandBuffer);
   4581 
   4582 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
   4583     VkCommandBuffer                             commandBuffer,
   4584     VkCommandBufferResetFlags                   flags);
   4585 
   4586 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
   4587     VkCommandBuffer                             commandBuffer,
   4588     VkPipelineBindPoint                         pipelineBindPoint,
   4589     VkPipeline                                  pipeline);
   4590 
   4591 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
   4592     VkCommandBuffer                             commandBuffer,
   4593     uint32_t                                    firstViewport,
   4594     uint32_t                                    viewportCount,
   4595     const VkViewport*                           pViewports);
   4596 
   4597 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
   4598     VkCommandBuffer                             commandBuffer,
   4599     uint32_t                                    firstScissor,
   4600     uint32_t                                    scissorCount,
   4601     const VkRect2D*                             pScissors);
   4602 
   4603 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
   4604     VkCommandBuffer                             commandBuffer,
   4605     float                                       lineWidth);
   4606 
   4607 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
   4608     VkCommandBuffer                             commandBuffer,
   4609     float                                       depthBiasConstantFactor,
   4610     float                                       depthBiasClamp,
   4611     float                                       depthBiasSlopeFactor);
   4612 
   4613 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
   4614     VkCommandBuffer                             commandBuffer,
   4615     const float                                 blendConstants[4]);
   4616 
   4617 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
   4618     VkCommandBuffer                             commandBuffer,
   4619     float                                       minDepthBounds,
   4620     float                                       maxDepthBounds);
   4621 
   4622 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
   4623     VkCommandBuffer                             commandBuffer,
   4624     VkStencilFaceFlags                          faceMask,
   4625     uint32_t                                    compareMask);
   4626 
   4627 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
   4628     VkCommandBuffer                             commandBuffer,
   4629     VkStencilFaceFlags                          faceMask,
   4630     uint32_t                                    writeMask);
   4631 
   4632 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
   4633     VkCommandBuffer                             commandBuffer,
   4634     VkStencilFaceFlags                          faceMask,
   4635     uint32_t                                    reference);
   4636 
   4637 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
   4638     VkCommandBuffer                             commandBuffer,
   4639     VkPipelineBindPoint                         pipelineBindPoint,
   4640     VkPipelineLayout                            layout,
   4641     uint32_t                                    firstSet,
   4642     uint32_t                                    descriptorSetCount,
   4643     const VkDescriptorSet*                      pDescriptorSets,
   4644     uint32_t                                    dynamicOffsetCount,
   4645     const uint32_t*                             pDynamicOffsets);
   4646 
   4647 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
   4648     VkCommandBuffer                             commandBuffer,
   4649     VkBuffer                                    buffer,
   4650     VkDeviceSize                                offset,
   4651     VkIndexType                                 indexType);
   4652 
   4653 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
   4654     VkCommandBuffer                             commandBuffer,
   4655     uint32_t                                    firstBinding,
   4656     uint32_t                                    bindingCount,
   4657     const VkBuffer*                             pBuffers,
   4658     const VkDeviceSize*                         pOffsets);
   4659 
   4660 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
   4661     VkCommandBuffer                             commandBuffer,
   4662     uint32_t                                    vertexCount,
   4663     uint32_t                                    instanceCount,
   4664     uint32_t                                    firstVertex,
   4665     uint32_t                                    firstInstance);
   4666 
   4667 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
   4668     VkCommandBuffer                             commandBuffer,
   4669     uint32_t                                    indexCount,
   4670     uint32_t                                    instanceCount,
   4671     uint32_t                                    firstIndex,
   4672     int32_t                                     vertexOffset,
   4673     uint32_t                                    firstInstance);
   4674 
   4675 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
   4676     VkCommandBuffer                             commandBuffer,
   4677     VkBuffer                                    buffer,
   4678     VkDeviceSize                                offset,
   4679     uint32_t                                    drawCount,
   4680     uint32_t                                    stride);
   4681 
   4682 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
   4683     VkCommandBuffer                             commandBuffer,
   4684     VkBuffer                                    buffer,
   4685     VkDeviceSize                                offset,
   4686     uint32_t                                    drawCount,
   4687     uint32_t                                    stride);
   4688 
   4689 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
   4690     VkCommandBuffer                             commandBuffer,
   4691     uint32_t                                    groupCountX,
   4692     uint32_t                                    groupCountY,
   4693     uint32_t                                    groupCountZ);
   4694 
   4695 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
   4696     VkCommandBuffer                             commandBuffer,
   4697     VkBuffer                                    buffer,
   4698     VkDeviceSize                                offset);
   4699 
   4700 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
   4701     VkCommandBuffer                             commandBuffer,
   4702     VkBuffer                                    srcBuffer,
   4703     VkBuffer                                    dstBuffer,
   4704     uint32_t                                    regionCount,
   4705     const VkBufferCopy*                         pRegions);
   4706 
   4707 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
   4708     VkCommandBuffer                             commandBuffer,
   4709     VkImage                                     srcImage,
   4710     VkImageLayout                               srcImageLayout,
   4711     VkImage                                     dstImage,
   4712     VkImageLayout                               dstImageLayout,
   4713     uint32_t                                    regionCount,
   4714     const VkImageCopy*                          pRegions);
   4715 
   4716 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
   4717     VkCommandBuffer                             commandBuffer,
   4718     VkImage                                     srcImage,
   4719     VkImageLayout                               srcImageLayout,
   4720     VkImage                                     dstImage,
   4721     VkImageLayout                               dstImageLayout,
   4722     uint32_t                                    regionCount,
   4723     const VkImageBlit*                          pRegions,
   4724     VkFilter                                    filter);
   4725 
   4726 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
   4727     VkCommandBuffer                             commandBuffer,
   4728     VkBuffer                                    srcBuffer,
   4729     VkImage                                     dstImage,
   4730     VkImageLayout                               dstImageLayout,
   4731     uint32_t                                    regionCount,
   4732     const VkBufferImageCopy*                    pRegions);
   4733 
   4734 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
   4735     VkCommandBuffer                             commandBuffer,
   4736     VkImage                                     srcImage,
   4737     VkImageLayout                               srcImageLayout,
   4738     VkBuffer                                    dstBuffer,
   4739     uint32_t                                    regionCount,
   4740     const VkBufferImageCopy*                    pRegions);
   4741 
   4742 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
   4743     VkCommandBuffer                             commandBuffer,
   4744     VkBuffer                                    dstBuffer,
   4745     VkDeviceSize                                dstOffset,
   4746     VkDeviceSize                                dataSize,
   4747     const void*                                 pData);
   4748 
   4749 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
   4750     VkCommandBuffer                             commandBuffer,
   4751     VkBuffer                                    dstBuffer,
   4752     VkDeviceSize                                dstOffset,
   4753     VkDeviceSize                                size,
   4754     uint32_t                                    data);
   4755 
   4756 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
   4757     VkCommandBuffer                             commandBuffer,
   4758     VkImage                                     image,
   4759     VkImageLayout                               imageLayout,
   4760     const VkClearColorValue*                    pColor,
   4761     uint32_t                                    rangeCount,
   4762     const VkImageSubresourceRange*              pRanges);
   4763 
   4764 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
   4765     VkCommandBuffer                             commandBuffer,
   4766     VkImage                                     image,
   4767     VkImageLayout                               imageLayout,
   4768     const VkClearDepthStencilValue*             pDepthStencil,
   4769     uint32_t                                    rangeCount,
   4770     const VkImageSubresourceRange*              pRanges);
   4771 
   4772 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
   4773     VkCommandBuffer                             commandBuffer,
   4774     uint32_t                                    attachmentCount,
   4775     const VkClearAttachment*                    pAttachments,
   4776     uint32_t                                    rectCount,
   4777     const VkClearRect*                          pRects);
   4778 
   4779 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
   4780     VkCommandBuffer                             commandBuffer,
   4781     VkImage                                     srcImage,
   4782     VkImageLayout                               srcImageLayout,
   4783     VkImage                                     dstImage,
   4784     VkImageLayout                               dstImageLayout,
   4785     uint32_t                                    regionCount,
   4786     const VkImageResolve*                       pRegions);
   4787 
   4788 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
   4789     VkCommandBuffer                             commandBuffer,
   4790     VkEvent                                     event,
   4791     VkPipelineStageFlags                        stageMask);
   4792 
   4793 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
   4794     VkCommandBuffer                             commandBuffer,
   4795     VkEvent                                     event,
   4796     VkPipelineStageFlags                        stageMask);
   4797 
   4798 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
   4799     VkCommandBuffer                             commandBuffer,
   4800     uint32_t                                    eventCount,
   4801     const VkEvent*                              pEvents,
   4802     VkPipelineStageFlags                        srcStageMask,
   4803     VkPipelineStageFlags                        dstStageMask,
   4804     uint32_t                                    memoryBarrierCount,
   4805     const VkMemoryBarrier*                      pMemoryBarriers,
   4806     uint32_t                                    bufferMemoryBarrierCount,
   4807     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
   4808     uint32_t                                    imageMemoryBarrierCount,
   4809     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
   4810 
   4811 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
   4812     VkCommandBuffer                             commandBuffer,
   4813     VkPipelineStageFlags                        srcStageMask,
   4814     VkPipelineStageFlags                        dstStageMask,
   4815     VkDependencyFlags                           dependencyFlags,
   4816     uint32_t                                    memoryBarrierCount,
   4817     const VkMemoryBarrier*                      pMemoryBarriers,
   4818     uint32_t                                    bufferMemoryBarrierCount,
   4819     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
   4820     uint32_t                                    imageMemoryBarrierCount,
   4821     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
   4822 
   4823 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
   4824     VkCommandBuffer                             commandBuffer,
   4825     VkQueryPool                                 queryPool,
   4826     uint32_t                                    query,
   4827     VkQueryControlFlags                         flags);
   4828 
   4829 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
   4830     VkCommandBuffer                             commandBuffer,
   4831     VkQueryPool                                 queryPool,
   4832     uint32_t                                    query);
   4833 
   4834 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
   4835     VkCommandBuffer                             commandBuffer,
   4836     VkQueryPool                                 queryPool,
   4837     uint32_t                                    firstQuery,
   4838     uint32_t                                    queryCount);
   4839 
   4840 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
   4841     VkCommandBuffer                             commandBuffer,
   4842     VkPipelineStageFlagBits                     pipelineStage,
   4843     VkQueryPool                                 queryPool,
   4844     uint32_t                                    query);
   4845 
   4846 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
   4847     VkCommandBuffer                             commandBuffer,
   4848     VkQueryPool                                 queryPool,
   4849     uint32_t                                    firstQuery,
   4850     uint32_t                                    queryCount,
   4851     VkBuffer                                    dstBuffer,
   4852     VkDeviceSize                                dstOffset,
   4853     VkDeviceSize                                stride,
   4854     VkQueryResultFlags                          flags);
   4855 
   4856 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
   4857     VkCommandBuffer                             commandBuffer,
   4858     VkPipelineLayout                            layout,
   4859     VkShaderStageFlags                          stageFlags,
   4860     uint32_t                                    offset,
   4861     uint32_t                                    size,
   4862     const void*                                 pValues);
   4863 
   4864 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
   4865     VkCommandBuffer                             commandBuffer,
   4866     const VkRenderPassBeginInfo*                pRenderPassBegin,
   4867     VkSubpassContents                           contents);
   4868 
   4869 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
   4870     VkCommandBuffer                             commandBuffer,
   4871     VkSubpassContents                           contents);
   4872 
   4873 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
   4874     VkCommandBuffer                             commandBuffer);
   4875 
   4876 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
   4877     VkCommandBuffer                             commandBuffer,
   4878     uint32_t                                    commandBufferCount,
   4879     const VkCommandBuffer*                      pCommandBuffers);
   4880 #endif
   4881 
   4882 
   4883 // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
   4884 #define VK_VERSION_1_1 1
   4885 // Vulkan 1.1 version number
   4886 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
   4887 
   4888 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
   4889 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
   4890 #define VK_MAX_DEVICE_GROUP_SIZE          32U
   4891 #define VK_LUID_SIZE                      8U
   4892 #define VK_QUEUE_FAMILY_EXTERNAL          (~1U)
   4893 
   4894 typedef enum VkPointClippingBehavior {
   4895     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
   4896     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
   4897     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
   4898     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
   4899     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
   4900 } VkPointClippingBehavior;
   4901 
   4902 typedef enum VkTessellationDomainOrigin {
   4903     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
   4904     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
   4905     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
   4906     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
   4907     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
   4908 } VkTessellationDomainOrigin;
   4909 
   4910 typedef enum VkSamplerYcbcrModelConversion {
   4911     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
   4912     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
   4913     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
   4914     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
   4915     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
   4916     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
   4917     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
   4918     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
   4919     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
   4920     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
   4921     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
   4922 } VkSamplerYcbcrModelConversion;
   4923 
   4924 typedef enum VkSamplerYcbcrRange {
   4925     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
   4926     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
   4927     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
   4928     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
   4929     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
   4930 } VkSamplerYcbcrRange;
   4931 
   4932 typedef enum VkChromaLocation {
   4933     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
   4934     VK_CHROMA_LOCATION_MIDPOINT = 1,
   4935     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
   4936     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
   4937     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
   4938 } VkChromaLocation;
   4939 
   4940 typedef enum VkDescriptorUpdateTemplateType {
   4941     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
   4942     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
   4943     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
   4944     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
   4945 } VkDescriptorUpdateTemplateType;
   4946 
   4947 typedef enum VkSubgroupFeatureFlagBits {
   4948     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
   4949     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
   4950     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
   4951     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
   4952     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
   4953     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
   4954     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
   4955     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
   4956     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
   4957     VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x00000200,
   4958     VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x00000400,
   4959     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4960 } VkSubgroupFeatureFlagBits;
   4961 typedef VkFlags VkSubgroupFeatureFlags;
   4962 
   4963 typedef enum VkPeerMemoryFeatureFlagBits {
   4964     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
   4965     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
   4966     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
   4967     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
   4968     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
   4969     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
   4970     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
   4971     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
   4972     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4973 } VkPeerMemoryFeatureFlagBits;
   4974 typedef VkFlags VkPeerMemoryFeatureFlags;
   4975 
   4976 typedef enum VkMemoryAllocateFlagBits {
   4977     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
   4978     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
   4979     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
   4980     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
   4981     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
   4982     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   4983     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4984 } VkMemoryAllocateFlagBits;
   4985 typedef VkFlags VkMemoryAllocateFlags;
   4986 typedef VkFlags VkCommandPoolTrimFlags;
   4987 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
   4988 
   4989 typedef enum VkExternalMemoryHandleTypeFlagBits {
   4990     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   4991     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   4992     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   4993     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
   4994     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
   4995     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
   4996     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
   4997     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
   4998     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
   4999     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
   5000     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
   5001     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
   5002     VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
   5003     VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
   5004     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
   5005     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   5006     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   5007     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
   5008     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
   5009     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
   5010     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
   5011     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5012 } VkExternalMemoryHandleTypeFlagBits;
   5013 typedef VkFlags VkExternalMemoryHandleTypeFlags;
   5014 
   5015 typedef enum VkExternalMemoryFeatureFlagBits {
   5016     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
   5017     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
   5018     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
   5019     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
   5020     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
   5021     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
   5022     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5023 } VkExternalMemoryFeatureFlagBits;
   5024 typedef VkFlags VkExternalMemoryFeatureFlags;
   5025 
   5026 typedef enum VkExternalFenceHandleTypeFlagBits {
   5027     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   5028     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   5029     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   5030     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
   5031     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
   5032     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   5033     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   5034     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
   5035     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5036 } VkExternalFenceHandleTypeFlagBits;
   5037 typedef VkFlags VkExternalFenceHandleTypeFlags;
   5038 
   5039 typedef enum VkExternalFenceFeatureFlagBits {
   5040     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
   5041     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
   5042     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
   5043     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
   5044     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5045 } VkExternalFenceFeatureFlagBits;
   5046 typedef VkFlags VkExternalFenceFeatureFlags;
   5047 
   5048 typedef enum VkFenceImportFlagBits {
   5049     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
   5050     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
   5051     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5052 } VkFenceImportFlagBits;
   5053 typedef VkFlags VkFenceImportFlags;
   5054 
   5055 typedef enum VkSemaphoreImportFlagBits {
   5056     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
   5057     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
   5058     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5059 } VkSemaphoreImportFlagBits;
   5060 typedef VkFlags VkSemaphoreImportFlags;
   5061 
   5062 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
   5063     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   5064     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   5065     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   5066     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
   5067     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
   5068     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
   5069     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
   5070     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
   5071     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   5072     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   5073     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
   5074     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
   5075     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5076 } VkExternalSemaphoreHandleTypeFlagBits;
   5077 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
   5078 
   5079 typedef enum VkExternalSemaphoreFeatureFlagBits {
   5080     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
   5081     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
   5082     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
   5083     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
   5084     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5085 } VkExternalSemaphoreFeatureFlagBits;
   5086 typedef VkFlags VkExternalSemaphoreFeatureFlags;
   5087 typedef struct VkPhysicalDeviceSubgroupProperties {
   5088     VkStructureType           sType;
   5089     void*                     pNext;
   5090     uint32_t                  subgroupSize;
   5091     VkShaderStageFlags        supportedStages;
   5092     VkSubgroupFeatureFlags    supportedOperations;
   5093     VkBool32                  quadOperationsInAllStages;
   5094 } VkPhysicalDeviceSubgroupProperties;
   5095 
   5096 typedef struct VkBindBufferMemoryInfo {
   5097     VkStructureType    sType;
   5098     const void*        pNext;
   5099     VkBuffer           buffer;
   5100     VkDeviceMemory     memory;
   5101     VkDeviceSize       memoryOffset;
   5102 } VkBindBufferMemoryInfo;
   5103 
   5104 typedef struct VkBindImageMemoryInfo {
   5105     VkStructureType    sType;
   5106     const void*        pNext;
   5107     VkImage            image;
   5108     VkDeviceMemory     memory;
   5109     VkDeviceSize       memoryOffset;
   5110 } VkBindImageMemoryInfo;
   5111 
   5112 typedef struct VkPhysicalDevice16BitStorageFeatures {
   5113     VkStructureType    sType;
   5114     void*              pNext;
   5115     VkBool32           storageBuffer16BitAccess;
   5116     VkBool32           uniformAndStorageBuffer16BitAccess;
   5117     VkBool32           storagePushConstant16;
   5118     VkBool32           storageInputOutput16;
   5119 } VkPhysicalDevice16BitStorageFeatures;
   5120 
   5121 typedef struct VkMemoryDedicatedRequirements {
   5122     VkStructureType    sType;
   5123     void*              pNext;
   5124     VkBool32           prefersDedicatedAllocation;
   5125     VkBool32           requiresDedicatedAllocation;
   5126 } VkMemoryDedicatedRequirements;
   5127 
   5128 typedef struct VkMemoryDedicatedAllocateInfo {
   5129     VkStructureType    sType;
   5130     const void*        pNext;
   5131     VkImage            image;
   5132     VkBuffer           buffer;
   5133 } VkMemoryDedicatedAllocateInfo;
   5134 
   5135 typedef struct VkMemoryAllocateFlagsInfo {
   5136     VkStructureType          sType;
   5137     const void*              pNext;
   5138     VkMemoryAllocateFlags    flags;
   5139     uint32_t                 deviceMask;
   5140 } VkMemoryAllocateFlagsInfo;
   5141 
   5142 typedef struct VkDeviceGroupRenderPassBeginInfo {
   5143     VkStructureType    sType;
   5144     const void*        pNext;
   5145     uint32_t           deviceMask;
   5146     uint32_t           deviceRenderAreaCount;
   5147     const VkRect2D*    pDeviceRenderAreas;
   5148 } VkDeviceGroupRenderPassBeginInfo;
   5149 
   5150 typedef struct VkDeviceGroupCommandBufferBeginInfo {
   5151     VkStructureType    sType;
   5152     const void*        pNext;
   5153     uint32_t           deviceMask;
   5154 } VkDeviceGroupCommandBufferBeginInfo;
   5155 
   5156 typedef struct VkDeviceGroupSubmitInfo {
   5157     VkStructureType    sType;
   5158     const void*        pNext;
   5159     uint32_t           waitSemaphoreCount;
   5160     const uint32_t*    pWaitSemaphoreDeviceIndices;
   5161     uint32_t           commandBufferCount;
   5162     const uint32_t*    pCommandBufferDeviceMasks;
   5163     uint32_t           signalSemaphoreCount;
   5164     const uint32_t*    pSignalSemaphoreDeviceIndices;
   5165 } VkDeviceGroupSubmitInfo;
   5166 
   5167 typedef struct VkDeviceGroupBindSparseInfo {
   5168     VkStructureType    sType;
   5169     const void*        pNext;
   5170     uint32_t           resourceDeviceIndex;
   5171     uint32_t           memoryDeviceIndex;
   5172 } VkDeviceGroupBindSparseInfo;
   5173 
   5174 typedef struct VkBindBufferMemoryDeviceGroupInfo {
   5175     VkStructureType    sType;
   5176     const void*        pNext;
   5177     uint32_t           deviceIndexCount;
   5178     const uint32_t*    pDeviceIndices;
   5179 } VkBindBufferMemoryDeviceGroupInfo;
   5180 
   5181 typedef struct VkBindImageMemoryDeviceGroupInfo {
   5182     VkStructureType    sType;
   5183     const void*        pNext;
   5184     uint32_t           deviceIndexCount;
   5185     const uint32_t*    pDeviceIndices;
   5186     uint32_t           splitInstanceBindRegionCount;
   5187     const VkRect2D*    pSplitInstanceBindRegions;
   5188 } VkBindImageMemoryDeviceGroupInfo;
   5189 
   5190 typedef struct VkPhysicalDeviceGroupProperties {
   5191     VkStructureType     sType;
   5192     void*               pNext;
   5193     uint32_t            physicalDeviceCount;
   5194     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
   5195     VkBool32            subsetAllocation;
   5196 } VkPhysicalDeviceGroupProperties;
   5197 
   5198 typedef struct VkDeviceGroupDeviceCreateInfo {
   5199     VkStructureType            sType;
   5200     const void*                pNext;
   5201     uint32_t                   physicalDeviceCount;
   5202     const VkPhysicalDevice*    pPhysicalDevices;
   5203 } VkDeviceGroupDeviceCreateInfo;
   5204 
   5205 typedef struct VkBufferMemoryRequirementsInfo2 {
   5206     VkStructureType    sType;
   5207     const void*        pNext;
   5208     VkBuffer           buffer;
   5209 } VkBufferMemoryRequirementsInfo2;
   5210 
   5211 typedef struct VkImageMemoryRequirementsInfo2 {
   5212     VkStructureType    sType;
   5213     const void*        pNext;
   5214     VkImage            image;
   5215 } VkImageMemoryRequirementsInfo2;
   5216 
   5217 typedef struct VkImageSparseMemoryRequirementsInfo2 {
   5218     VkStructureType    sType;
   5219     const void*        pNext;
   5220     VkImage            image;
   5221 } VkImageSparseMemoryRequirementsInfo2;
   5222 
   5223 typedef struct VkMemoryRequirements2 {
   5224     VkStructureType         sType;
   5225     void*                   pNext;
   5226     VkMemoryRequirements    memoryRequirements;
   5227 } VkMemoryRequirements2;
   5228 
   5229 typedef struct VkSparseImageMemoryRequirements2 {
   5230     VkStructureType                    sType;
   5231     void*                              pNext;
   5232     VkSparseImageMemoryRequirements    memoryRequirements;
   5233 } VkSparseImageMemoryRequirements2;
   5234 
   5235 typedef struct VkPhysicalDeviceFeatures2 {
   5236     VkStructureType             sType;
   5237     void*                       pNext;
   5238     VkPhysicalDeviceFeatures    features;
   5239 } VkPhysicalDeviceFeatures2;
   5240 
   5241 typedef struct VkPhysicalDeviceProperties2 {
   5242     VkStructureType               sType;
   5243     void*                         pNext;
   5244     VkPhysicalDeviceProperties    properties;
   5245 } VkPhysicalDeviceProperties2;
   5246 
   5247 typedef struct VkFormatProperties2 {
   5248     VkStructureType       sType;
   5249     void*                 pNext;
   5250     VkFormatProperties    formatProperties;
   5251 } VkFormatProperties2;
   5252 
   5253 typedef struct VkImageFormatProperties2 {
   5254     VkStructureType            sType;
   5255     void*                      pNext;
   5256     VkImageFormatProperties    imageFormatProperties;
   5257 } VkImageFormatProperties2;
   5258 
   5259 typedef struct VkPhysicalDeviceImageFormatInfo2 {
   5260     VkStructureType       sType;
   5261     const void*           pNext;
   5262     VkFormat              format;
   5263     VkImageType           type;
   5264     VkImageTiling         tiling;
   5265     VkImageUsageFlags     usage;
   5266     VkImageCreateFlags    flags;
   5267 } VkPhysicalDeviceImageFormatInfo2;
   5268 
   5269 typedef struct VkQueueFamilyProperties2 {
   5270     VkStructureType            sType;
   5271     void*                      pNext;
   5272     VkQueueFamilyProperties    queueFamilyProperties;
   5273 } VkQueueFamilyProperties2;
   5274 
   5275 typedef struct VkPhysicalDeviceMemoryProperties2 {
   5276     VkStructureType                     sType;
   5277     void*                               pNext;
   5278     VkPhysicalDeviceMemoryProperties    memoryProperties;
   5279 } VkPhysicalDeviceMemoryProperties2;
   5280 
   5281 typedef struct VkSparseImageFormatProperties2 {
   5282     VkStructureType                  sType;
   5283     void*                            pNext;
   5284     VkSparseImageFormatProperties    properties;
   5285 } VkSparseImageFormatProperties2;
   5286 
   5287 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
   5288     VkStructureType          sType;
   5289     const void*              pNext;
   5290     VkFormat                 format;
   5291     VkImageType              type;
   5292     VkSampleCountFlagBits    samples;
   5293     VkImageUsageFlags        usage;
   5294     VkImageTiling            tiling;
   5295 } VkPhysicalDeviceSparseImageFormatInfo2;
   5296 
   5297 typedef struct VkPhysicalDevicePointClippingProperties {
   5298     VkStructureType            sType;
   5299     void*                      pNext;
   5300     VkPointClippingBehavior    pointClippingBehavior;
   5301 } VkPhysicalDevicePointClippingProperties;
   5302 
   5303 typedef struct VkInputAttachmentAspectReference {
   5304     uint32_t              subpass;
   5305     uint32_t              inputAttachmentIndex;
   5306     VkImageAspectFlags    aspectMask;
   5307 } VkInputAttachmentAspectReference;
   5308 
   5309 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
   5310     VkStructureType                            sType;
   5311     const void*                                pNext;
   5312     uint32_t                                   aspectReferenceCount;
   5313     const VkInputAttachmentAspectReference*    pAspectReferences;
   5314 } VkRenderPassInputAttachmentAspectCreateInfo;
   5315 
   5316 typedef struct VkImageViewUsageCreateInfo {
   5317     VkStructureType      sType;
   5318     const void*          pNext;
   5319     VkImageUsageFlags    usage;
   5320 } VkImageViewUsageCreateInfo;
   5321 
   5322 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
   5323     VkStructureType               sType;
   5324     const void*                   pNext;
   5325     VkTessellationDomainOrigin    domainOrigin;
   5326 } VkPipelineTessellationDomainOriginStateCreateInfo;
   5327 
   5328 typedef struct VkRenderPassMultiviewCreateInfo {
   5329     VkStructureType    sType;
   5330     const void*        pNext;
   5331     uint32_t           subpassCount;
   5332     const uint32_t*    pViewMasks;
   5333     uint32_t           dependencyCount;
   5334     const int32_t*     pViewOffsets;
   5335     uint32_t           correlationMaskCount;
   5336     const uint32_t*    pCorrelationMasks;
   5337 } VkRenderPassMultiviewCreateInfo;
   5338 
   5339 typedef struct VkPhysicalDeviceMultiviewFeatures {
   5340     VkStructureType    sType;
   5341     void*              pNext;
   5342     VkBool32           multiview;
   5343     VkBool32           multiviewGeometryShader;
   5344     VkBool32           multiviewTessellationShader;
   5345 } VkPhysicalDeviceMultiviewFeatures;
   5346 
   5347 typedef struct VkPhysicalDeviceMultiviewProperties {
   5348     VkStructureType    sType;
   5349     void*              pNext;
   5350     uint32_t           maxMultiviewViewCount;
   5351     uint32_t           maxMultiviewInstanceIndex;
   5352 } VkPhysicalDeviceMultiviewProperties;
   5353 
   5354 typedef struct VkPhysicalDeviceVariablePointersFeatures {
   5355     VkStructureType    sType;
   5356     void*              pNext;
   5357     VkBool32           variablePointersStorageBuffer;
   5358     VkBool32           variablePointers;
   5359 } VkPhysicalDeviceVariablePointersFeatures;
   5360 
   5361 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
   5362 
   5363 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
   5364     VkStructureType    sType;
   5365     void*              pNext;
   5366     VkBool32           protectedMemory;
   5367 } VkPhysicalDeviceProtectedMemoryFeatures;
   5368 
   5369 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
   5370     VkStructureType    sType;
   5371     void*              pNext;
   5372     VkBool32           protectedNoFault;
   5373 } VkPhysicalDeviceProtectedMemoryProperties;
   5374 
   5375 typedef struct VkDeviceQueueInfo2 {
   5376     VkStructureType             sType;
   5377     const void*                 pNext;
   5378     VkDeviceQueueCreateFlags    flags;
   5379     uint32_t                    queueFamilyIndex;
   5380     uint32_t                    queueIndex;
   5381 } VkDeviceQueueInfo2;
   5382 
   5383 typedef struct VkProtectedSubmitInfo {
   5384     VkStructureType    sType;
   5385     const void*        pNext;
   5386     VkBool32           protectedSubmit;
   5387 } VkProtectedSubmitInfo;
   5388 
   5389 typedef struct VkSamplerYcbcrConversionCreateInfo {
   5390     VkStructureType                  sType;
   5391     const void*                      pNext;
   5392     VkFormat                         format;
   5393     VkSamplerYcbcrModelConversion    ycbcrModel;
   5394     VkSamplerYcbcrRange              ycbcrRange;
   5395     VkComponentMapping               components;
   5396     VkChromaLocation                 xChromaOffset;
   5397     VkChromaLocation                 yChromaOffset;
   5398     VkFilter                         chromaFilter;
   5399     VkBool32                         forceExplicitReconstruction;
   5400 } VkSamplerYcbcrConversionCreateInfo;
   5401 
   5402 typedef struct VkSamplerYcbcrConversionInfo {
   5403     VkStructureType             sType;
   5404     const void*                 pNext;
   5405     VkSamplerYcbcrConversion    conversion;
   5406 } VkSamplerYcbcrConversionInfo;
   5407 
   5408 typedef struct VkBindImagePlaneMemoryInfo {
   5409     VkStructureType          sType;
   5410     const void*              pNext;
   5411     VkImageAspectFlagBits    planeAspect;
   5412 } VkBindImagePlaneMemoryInfo;
   5413 
   5414 typedef struct VkImagePlaneMemoryRequirementsInfo {
   5415     VkStructureType          sType;
   5416     const void*              pNext;
   5417     VkImageAspectFlagBits    planeAspect;
   5418 } VkImagePlaneMemoryRequirementsInfo;
   5419 
   5420 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
   5421     VkStructureType    sType;
   5422     void*              pNext;
   5423     VkBool32           samplerYcbcrConversion;
   5424 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
   5425 
   5426 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
   5427     VkStructureType    sType;
   5428     void*              pNext;
   5429     uint32_t           combinedImageSamplerDescriptorCount;
   5430 } VkSamplerYcbcrConversionImageFormatProperties;
   5431 
   5432 typedef struct VkDescriptorUpdateTemplateEntry {
   5433     uint32_t            dstBinding;
   5434     uint32_t            dstArrayElement;
   5435     uint32_t            descriptorCount;
   5436     VkDescriptorType    descriptorType;
   5437     size_t              offset;
   5438     size_t              stride;
   5439 } VkDescriptorUpdateTemplateEntry;
   5440 
   5441 typedef struct VkDescriptorUpdateTemplateCreateInfo {
   5442     VkStructureType                           sType;
   5443     const void*                               pNext;
   5444     VkDescriptorUpdateTemplateCreateFlags     flags;
   5445     uint32_t                                  descriptorUpdateEntryCount;
   5446     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
   5447     VkDescriptorUpdateTemplateType            templateType;
   5448     VkDescriptorSetLayout                     descriptorSetLayout;
   5449     VkPipelineBindPoint                       pipelineBindPoint;
   5450     VkPipelineLayout                          pipelineLayout;
   5451     uint32_t                                  set;
   5452 } VkDescriptorUpdateTemplateCreateInfo;
   5453 
   5454 typedef struct VkExternalMemoryProperties {
   5455     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
   5456     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
   5457     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
   5458 } VkExternalMemoryProperties;
   5459 
   5460 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
   5461     VkStructureType                       sType;
   5462     const void*                           pNext;
   5463     VkExternalMemoryHandleTypeFlagBits    handleType;
   5464 } VkPhysicalDeviceExternalImageFormatInfo;
   5465 
   5466 typedef struct VkExternalImageFormatProperties {
   5467     VkStructureType               sType;
   5468     void*                         pNext;
   5469     VkExternalMemoryProperties    externalMemoryProperties;
   5470 } VkExternalImageFormatProperties;
   5471 
   5472 typedef struct VkPhysicalDeviceExternalBufferInfo {
   5473     VkStructureType                       sType;
   5474     const void*                           pNext;
   5475     VkBufferCreateFlags                   flags;
   5476     VkBufferUsageFlags                    usage;
   5477     VkExternalMemoryHandleTypeFlagBits    handleType;
   5478 } VkPhysicalDeviceExternalBufferInfo;
   5479 
   5480 typedef struct VkExternalBufferProperties {
   5481     VkStructureType               sType;
   5482     void*                         pNext;
   5483     VkExternalMemoryProperties    externalMemoryProperties;
   5484 } VkExternalBufferProperties;
   5485 
   5486 typedef struct VkPhysicalDeviceIDProperties {
   5487     VkStructureType    sType;
   5488     void*              pNext;
   5489     uint8_t            deviceUUID[VK_UUID_SIZE];
   5490     uint8_t            driverUUID[VK_UUID_SIZE];
   5491     uint8_t            deviceLUID[VK_LUID_SIZE];
   5492     uint32_t           deviceNodeMask;
   5493     VkBool32           deviceLUIDValid;
   5494 } VkPhysicalDeviceIDProperties;
   5495 
   5496 typedef struct VkExternalMemoryImageCreateInfo {
   5497     VkStructureType                    sType;
   5498     const void*                        pNext;
   5499     VkExternalMemoryHandleTypeFlags    handleTypes;
   5500 } VkExternalMemoryImageCreateInfo;
   5501 
   5502 typedef struct VkExternalMemoryBufferCreateInfo {
   5503     VkStructureType                    sType;
   5504     const void*                        pNext;
   5505     VkExternalMemoryHandleTypeFlags    handleTypes;
   5506 } VkExternalMemoryBufferCreateInfo;
   5507 
   5508 typedef struct VkExportMemoryAllocateInfo {
   5509     VkStructureType                    sType;
   5510     const void*                        pNext;
   5511     VkExternalMemoryHandleTypeFlags    handleTypes;
   5512 } VkExportMemoryAllocateInfo;
   5513 
   5514 typedef struct VkPhysicalDeviceExternalFenceInfo {
   5515     VkStructureType                      sType;
   5516     const void*                          pNext;
   5517     VkExternalFenceHandleTypeFlagBits    handleType;
   5518 } VkPhysicalDeviceExternalFenceInfo;
   5519 
   5520 typedef struct VkExternalFenceProperties {
   5521     VkStructureType                   sType;
   5522     void*                             pNext;
   5523     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
   5524     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
   5525     VkExternalFenceFeatureFlags       externalFenceFeatures;
   5526 } VkExternalFenceProperties;
   5527 
   5528 typedef struct VkExportFenceCreateInfo {
   5529     VkStructureType                   sType;
   5530     const void*                       pNext;
   5531     VkExternalFenceHandleTypeFlags    handleTypes;
   5532 } VkExportFenceCreateInfo;
   5533 
   5534 typedef struct VkExportSemaphoreCreateInfo {
   5535     VkStructureType                       sType;
   5536     const void*                           pNext;
   5537     VkExternalSemaphoreHandleTypeFlags    handleTypes;
   5538 } VkExportSemaphoreCreateInfo;
   5539 
   5540 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
   5541     VkStructureType                          sType;
   5542     const void*                              pNext;
   5543     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   5544 } VkPhysicalDeviceExternalSemaphoreInfo;
   5545 
   5546 typedef struct VkExternalSemaphoreProperties {
   5547     VkStructureType                       sType;
   5548     void*                                 pNext;
   5549     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
   5550     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
   5551     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
   5552 } VkExternalSemaphoreProperties;
   5553 
   5554 typedef struct VkPhysicalDeviceMaintenance3Properties {
   5555     VkStructureType    sType;
   5556     void*              pNext;
   5557     uint32_t           maxPerSetDescriptors;
   5558     VkDeviceSize       maxMemoryAllocationSize;
   5559 } VkPhysicalDeviceMaintenance3Properties;
   5560 
   5561 typedef struct VkDescriptorSetLayoutSupport {
   5562     VkStructureType    sType;
   5563     void*              pNext;
   5564     VkBool32           supported;
   5565 } VkDescriptorSetLayoutSupport;
   5566 
   5567 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
   5568     VkStructureType    sType;
   5569     void*              pNext;
   5570     VkBool32           shaderDrawParameters;
   5571 } VkPhysicalDeviceShaderDrawParametersFeatures;
   5572 
   5573 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
   5574 
   5575 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
   5576 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
   5577 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
   5578 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
   5579 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
   5580 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   5581 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
   5582 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   5583 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   5584 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
   5585 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
   5586 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
   5587 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
   5588 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
   5589 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
   5590 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
   5591 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
   5592 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
   5593 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
   5594 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
   5595 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
   5596 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
   5597 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
   5598 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
   5599 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
   5600 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
   5601 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
   5602 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
   5603 
   5604 #ifndef VK_NO_PROTOTYPES
   5605 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
   5606     uint32_t*                                   pApiVersion);
   5607 
   5608 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
   5609     VkDevice                                    device,
   5610     uint32_t                                    bindInfoCount,
   5611     const VkBindBufferMemoryInfo*               pBindInfos);
   5612 
   5613 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
   5614     VkDevice                                    device,
   5615     uint32_t                                    bindInfoCount,
   5616     const VkBindImageMemoryInfo*                pBindInfos);
   5617 
   5618 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
   5619     VkDevice                                    device,
   5620     uint32_t                                    heapIndex,
   5621     uint32_t                                    localDeviceIndex,
   5622     uint32_t                                    remoteDeviceIndex,
   5623     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
   5624 
   5625 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
   5626     VkCommandBuffer                             commandBuffer,
   5627     uint32_t                                    deviceMask);
   5628 
   5629 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
   5630     VkCommandBuffer                             commandBuffer,
   5631     uint32_t                                    baseGroupX,
   5632     uint32_t                                    baseGroupY,
   5633     uint32_t                                    baseGroupZ,
   5634     uint32_t                                    groupCountX,
   5635     uint32_t                                    groupCountY,
   5636     uint32_t                                    groupCountZ);
   5637 
   5638 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
   5639     VkInstance                                  instance,
   5640     uint32_t*                                   pPhysicalDeviceGroupCount,
   5641     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
   5642 
   5643 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
   5644     VkDevice                                    device,
   5645     const VkImageMemoryRequirementsInfo2*       pInfo,
   5646     VkMemoryRequirements2*                      pMemoryRequirements);
   5647 
   5648 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
   5649     VkDevice                                    device,
   5650     const VkBufferMemoryRequirementsInfo2*      pInfo,
   5651     VkMemoryRequirements2*                      pMemoryRequirements);
   5652 
   5653 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
   5654     VkDevice                                    device,
   5655     const VkImageSparseMemoryRequirementsInfo2* pInfo,
   5656     uint32_t*                                   pSparseMemoryRequirementCount,
   5657     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
   5658 
   5659 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
   5660     VkPhysicalDevice                            physicalDevice,
   5661     VkPhysicalDeviceFeatures2*                  pFeatures);
   5662 
   5663 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
   5664     VkPhysicalDevice                            physicalDevice,
   5665     VkPhysicalDeviceProperties2*                pProperties);
   5666 
   5667 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
   5668     VkPhysicalDevice                            physicalDevice,
   5669     VkFormat                                    format,
   5670     VkFormatProperties2*                        pFormatProperties);
   5671 
   5672 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
   5673     VkPhysicalDevice                            physicalDevice,
   5674     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
   5675     VkImageFormatProperties2*                   pImageFormatProperties);
   5676 
   5677 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
   5678     VkPhysicalDevice                            physicalDevice,
   5679     uint32_t*                                   pQueueFamilyPropertyCount,
   5680     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
   5681 
   5682 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
   5683     VkPhysicalDevice                            physicalDevice,
   5684     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
   5685 
   5686 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
   5687     VkPhysicalDevice                            physicalDevice,
   5688     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
   5689     uint32_t*                                   pPropertyCount,
   5690     VkSparseImageFormatProperties2*             pProperties);
   5691 
   5692 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
   5693     VkDevice                                    device,
   5694     VkCommandPool                               commandPool,
   5695     VkCommandPoolTrimFlags                      flags);
   5696 
   5697 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
   5698     VkDevice                                    device,
   5699     const VkDeviceQueueInfo2*                   pQueueInfo,
   5700     VkQueue*                                    pQueue);
   5701 
   5702 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
   5703     VkDevice                                    device,
   5704     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
   5705     const VkAllocationCallbacks*                pAllocator,
   5706     VkSamplerYcbcrConversion*                   pYcbcrConversion);
   5707 
   5708 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
   5709     VkDevice                                    device,
   5710     VkSamplerYcbcrConversion                    ycbcrConversion,
   5711     const VkAllocationCallbacks*                pAllocator);
   5712 
   5713 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
   5714     VkDevice                                    device,
   5715     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
   5716     const VkAllocationCallbacks*                pAllocator,
   5717     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
   5718 
   5719 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
   5720     VkDevice                                    device,
   5721     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   5722     const VkAllocationCallbacks*                pAllocator);
   5723 
   5724 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
   5725     VkDevice                                    device,
   5726     VkDescriptorSet                             descriptorSet,
   5727     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   5728     const void*                                 pData);
   5729 
   5730 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
   5731     VkPhysicalDevice                            physicalDevice,
   5732     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
   5733     VkExternalBufferProperties*                 pExternalBufferProperties);
   5734 
   5735 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
   5736     VkPhysicalDevice                            physicalDevice,
   5737     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
   5738     VkExternalFenceProperties*                  pExternalFenceProperties);
   5739 
   5740 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
   5741     VkPhysicalDevice                            physicalDevice,
   5742     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
   5743     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
   5744 
   5745 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
   5746     VkDevice                                    device,
   5747     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   5748     VkDescriptorSetLayoutSupport*               pSupport);
   5749 #endif
   5750 
   5751 
   5752 // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
   5753 #define VK_VERSION_1_2 1
   5754 // Vulkan 1.2 version number
   5755 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
   5756 
   5757 #define VK_MAX_DRIVER_NAME_SIZE           256U
   5758 #define VK_MAX_DRIVER_INFO_SIZE           256U
   5759 
   5760 typedef enum VkDriverId {
   5761     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
   5762     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
   5763     VK_DRIVER_ID_MESA_RADV = 3,
   5764     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
   5765     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
   5766     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
   5767     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
   5768     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
   5769     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
   5770     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
   5771     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
   5772     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
   5773     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
   5774     VK_DRIVER_ID_MOLTENVK = 14,
   5775     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
   5776     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
   5777     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
   5778     VK_DRIVER_ID_MESA_TURNIP = 18,
   5779     VK_DRIVER_ID_MESA_V3DV = 19,
   5780     VK_DRIVER_ID_MESA_PANVK = 20,
   5781     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
   5782     VK_DRIVER_ID_MESA_VENUS = 22,
   5783     VK_DRIVER_ID_MESA_DOZEN = 23,
   5784     VK_DRIVER_ID_MESA_NVK = 24,
   5785     VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
   5786     VK_DRIVER_ID_MESA_AGXV = 26,
   5787     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
   5788     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
   5789     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
   5790     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
   5791     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
   5792     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
   5793     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
   5794     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
   5795     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
   5796     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
   5797     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
   5798     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
   5799     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
   5800 } VkDriverId;
   5801 
   5802 typedef enum VkShaderFloatControlsIndependence {
   5803     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
   5804     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
   5805     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
   5806     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
   5807     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
   5808     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
   5809     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
   5810 } VkShaderFloatControlsIndependence;
   5811 
   5812 typedef enum VkSamplerReductionMode {
   5813     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
   5814     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
   5815     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
   5816     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
   5817     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
   5818     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
   5819     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
   5820     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
   5821 } VkSamplerReductionMode;
   5822 
   5823 typedef enum VkSemaphoreType {
   5824     VK_SEMAPHORE_TYPE_BINARY = 0,
   5825     VK_SEMAPHORE_TYPE_TIMELINE = 1,
   5826     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
   5827     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
   5828     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
   5829 } VkSemaphoreType;
   5830 
   5831 typedef enum VkResolveModeFlagBits {
   5832     VK_RESOLVE_MODE_NONE = 0,
   5833     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
   5834     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
   5835     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
   5836     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
   5837     VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
   5838     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
   5839     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
   5840     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
   5841     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
   5842     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
   5843     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5844 } VkResolveModeFlagBits;
   5845 typedef VkFlags VkResolveModeFlags;
   5846 
   5847 typedef enum VkDescriptorBindingFlagBits {
   5848     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
   5849     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
   5850     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
   5851     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
   5852     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
   5853     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
   5854     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
   5855     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
   5856     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5857 } VkDescriptorBindingFlagBits;
   5858 typedef VkFlags VkDescriptorBindingFlags;
   5859 
   5860 typedef enum VkSemaphoreWaitFlagBits {
   5861     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
   5862     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
   5863     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5864 } VkSemaphoreWaitFlagBits;
   5865 typedef VkFlags VkSemaphoreWaitFlags;
   5866 typedef struct VkPhysicalDeviceVulkan11Features {
   5867     VkStructureType    sType;
   5868     void*              pNext;
   5869     VkBool32           storageBuffer16BitAccess;
   5870     VkBool32           uniformAndStorageBuffer16BitAccess;
   5871     VkBool32           storagePushConstant16;
   5872     VkBool32           storageInputOutput16;
   5873     VkBool32           multiview;
   5874     VkBool32           multiviewGeometryShader;
   5875     VkBool32           multiviewTessellationShader;
   5876     VkBool32           variablePointersStorageBuffer;
   5877     VkBool32           variablePointers;
   5878     VkBool32           protectedMemory;
   5879     VkBool32           samplerYcbcrConversion;
   5880     VkBool32           shaderDrawParameters;
   5881 } VkPhysicalDeviceVulkan11Features;
   5882 
   5883 typedef struct VkPhysicalDeviceVulkan11Properties {
   5884     VkStructureType            sType;
   5885     void*                      pNext;
   5886     uint8_t                    deviceUUID[VK_UUID_SIZE];
   5887     uint8_t                    driverUUID[VK_UUID_SIZE];
   5888     uint8_t                    deviceLUID[VK_LUID_SIZE];
   5889     uint32_t                   deviceNodeMask;
   5890     VkBool32                   deviceLUIDValid;
   5891     uint32_t                   subgroupSize;
   5892     VkShaderStageFlags         subgroupSupportedStages;
   5893     VkSubgroupFeatureFlags     subgroupSupportedOperations;
   5894     VkBool32                   subgroupQuadOperationsInAllStages;
   5895     VkPointClippingBehavior    pointClippingBehavior;
   5896     uint32_t                   maxMultiviewViewCount;
   5897     uint32_t                   maxMultiviewInstanceIndex;
   5898     VkBool32                   protectedNoFault;
   5899     uint32_t                   maxPerSetDescriptors;
   5900     VkDeviceSize               maxMemoryAllocationSize;
   5901 } VkPhysicalDeviceVulkan11Properties;
   5902 
   5903 typedef struct VkPhysicalDeviceVulkan12Features {
   5904     VkStructureType    sType;
   5905     void*              pNext;
   5906     VkBool32           samplerMirrorClampToEdge;
   5907     VkBool32           drawIndirectCount;
   5908     VkBool32           storageBuffer8BitAccess;
   5909     VkBool32           uniformAndStorageBuffer8BitAccess;
   5910     VkBool32           storagePushConstant8;
   5911     VkBool32           shaderBufferInt64Atomics;
   5912     VkBool32           shaderSharedInt64Atomics;
   5913     VkBool32           shaderFloat16;
   5914     VkBool32           shaderInt8;
   5915     VkBool32           descriptorIndexing;
   5916     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
   5917     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
   5918     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
   5919     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
   5920     VkBool32           shaderSampledImageArrayNonUniformIndexing;
   5921     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
   5922     VkBool32           shaderStorageImageArrayNonUniformIndexing;
   5923     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
   5924     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
   5925     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
   5926     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
   5927     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
   5928     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
   5929     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
   5930     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
   5931     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
   5932     VkBool32           descriptorBindingUpdateUnusedWhilePending;
   5933     VkBool32           descriptorBindingPartiallyBound;
   5934     VkBool32           descriptorBindingVariableDescriptorCount;
   5935     VkBool32           runtimeDescriptorArray;
   5936     VkBool32           samplerFilterMinmax;
   5937     VkBool32           scalarBlockLayout;
   5938     VkBool32           imagelessFramebuffer;
   5939     VkBool32           uniformBufferStandardLayout;
   5940     VkBool32           shaderSubgroupExtendedTypes;
   5941     VkBool32           separateDepthStencilLayouts;
   5942     VkBool32           hostQueryReset;
   5943     VkBool32           timelineSemaphore;
   5944     VkBool32           bufferDeviceAddress;
   5945     VkBool32           bufferDeviceAddressCaptureReplay;
   5946     VkBool32           bufferDeviceAddressMultiDevice;
   5947     VkBool32           vulkanMemoryModel;
   5948     VkBool32           vulkanMemoryModelDeviceScope;
   5949     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
   5950     VkBool32           shaderOutputViewportIndex;
   5951     VkBool32           shaderOutputLayer;
   5952     VkBool32           subgroupBroadcastDynamicId;
   5953 } VkPhysicalDeviceVulkan12Features;
   5954 
   5955 typedef struct VkConformanceVersion {
   5956     uint8_t    major;
   5957     uint8_t    minor;
   5958     uint8_t    subminor;
   5959     uint8_t    patch;
   5960 } VkConformanceVersion;
   5961 
   5962 typedef struct VkPhysicalDeviceVulkan12Properties {
   5963     VkStructureType                      sType;
   5964     void*                                pNext;
   5965     VkDriverId                           driverID;
   5966     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
   5967     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
   5968     VkConformanceVersion                 conformanceVersion;
   5969     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
   5970     VkShaderFloatControlsIndependence    roundingModeIndependence;
   5971     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
   5972     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
   5973     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
   5974     VkBool32                             shaderDenormPreserveFloat16;
   5975     VkBool32                             shaderDenormPreserveFloat32;
   5976     VkBool32                             shaderDenormPreserveFloat64;
   5977     VkBool32                             shaderDenormFlushToZeroFloat16;
   5978     VkBool32                             shaderDenormFlushToZeroFloat32;
   5979     VkBool32                             shaderDenormFlushToZeroFloat64;
   5980     VkBool32                             shaderRoundingModeRTEFloat16;
   5981     VkBool32                             shaderRoundingModeRTEFloat32;
   5982     VkBool32                             shaderRoundingModeRTEFloat64;
   5983     VkBool32                             shaderRoundingModeRTZFloat16;
   5984     VkBool32                             shaderRoundingModeRTZFloat32;
   5985     VkBool32                             shaderRoundingModeRTZFloat64;
   5986     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
   5987     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
   5988     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
   5989     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
   5990     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
   5991     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
   5992     VkBool32                             robustBufferAccessUpdateAfterBind;
   5993     VkBool32                             quadDivergentImplicitLod;
   5994     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
   5995     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   5996     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   5997     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
   5998     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
   5999     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
   6000     uint32_t                             maxPerStageUpdateAfterBindResources;
   6001     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
   6002     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
   6003     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   6004     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
   6005     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   6006     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
   6007     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
   6008     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
   6009     VkResolveModeFlags                   supportedDepthResolveModes;
   6010     VkResolveModeFlags                   supportedStencilResolveModes;
   6011     VkBool32                             independentResolveNone;
   6012     VkBool32                             independentResolve;
   6013     VkBool32                             filterMinmaxSingleComponentFormats;
   6014     VkBool32                             filterMinmaxImageComponentMapping;
   6015     uint64_t                             maxTimelineSemaphoreValueDifference;
   6016     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
   6017 } VkPhysicalDeviceVulkan12Properties;
   6018 
   6019 typedef struct VkImageFormatListCreateInfo {
   6020     VkStructureType    sType;
   6021     const void*        pNext;
   6022     uint32_t           viewFormatCount;
   6023     const VkFormat*    pViewFormats;
   6024 } VkImageFormatListCreateInfo;
   6025 
   6026 typedef struct VkAttachmentDescription2 {
   6027     VkStructureType                 sType;
   6028     const void*                     pNext;
   6029     VkAttachmentDescriptionFlags    flags;
   6030     VkFormat                        format;
   6031     VkSampleCountFlagBits           samples;
   6032     VkAttachmentLoadOp              loadOp;
   6033     VkAttachmentStoreOp             storeOp;
   6034     VkAttachmentLoadOp              stencilLoadOp;
   6035     VkAttachmentStoreOp             stencilStoreOp;
   6036     VkImageLayout                   initialLayout;
   6037     VkImageLayout                   finalLayout;
   6038 } VkAttachmentDescription2;
   6039 
   6040 typedef struct VkAttachmentReference2 {
   6041     VkStructureType       sType;
   6042     const void*           pNext;
   6043     uint32_t              attachment;
   6044     VkImageLayout         layout;
   6045     VkImageAspectFlags    aspectMask;
   6046 } VkAttachmentReference2;
   6047 
   6048 typedef struct VkSubpassDescription2 {
   6049     VkStructureType                  sType;
   6050     const void*                      pNext;
   6051     VkSubpassDescriptionFlags        flags;
   6052     VkPipelineBindPoint              pipelineBindPoint;
   6053     uint32_t                         viewMask;
   6054     uint32_t                         inputAttachmentCount;
   6055     const VkAttachmentReference2*    pInputAttachments;
   6056     uint32_t                         colorAttachmentCount;
   6057     const VkAttachmentReference2*    pColorAttachments;
   6058     const VkAttachmentReference2*    pResolveAttachments;
   6059     const VkAttachmentReference2*    pDepthStencilAttachment;
   6060     uint32_t                         preserveAttachmentCount;
   6061     const uint32_t*                  pPreserveAttachments;
   6062 } VkSubpassDescription2;
   6063 
   6064 typedef struct VkSubpassDependency2 {
   6065     VkStructureType         sType;
   6066     const void*             pNext;
   6067     uint32_t                srcSubpass;
   6068     uint32_t                dstSubpass;
   6069     VkPipelineStageFlags    srcStageMask;
   6070     VkPipelineStageFlags    dstStageMask;
   6071     VkAccessFlags           srcAccessMask;
   6072     VkAccessFlags           dstAccessMask;
   6073     VkDependencyFlags       dependencyFlags;
   6074     int32_t                 viewOffset;
   6075 } VkSubpassDependency2;
   6076 
   6077 typedef struct VkRenderPassCreateInfo2 {
   6078     VkStructureType                    sType;
   6079     const void*                        pNext;
   6080     VkRenderPassCreateFlags            flags;
   6081     uint32_t                           attachmentCount;
   6082     const VkAttachmentDescription2*    pAttachments;
   6083     uint32_t                           subpassCount;
   6084     const VkSubpassDescription2*       pSubpasses;
   6085     uint32_t                           dependencyCount;
   6086     const VkSubpassDependency2*        pDependencies;
   6087     uint32_t                           correlatedViewMaskCount;
   6088     const uint32_t*                    pCorrelatedViewMasks;
   6089 } VkRenderPassCreateInfo2;
   6090 
   6091 typedef struct VkSubpassBeginInfo {
   6092     VkStructureType      sType;
   6093     const void*          pNext;
   6094     VkSubpassContents    contents;
   6095 } VkSubpassBeginInfo;
   6096 
   6097 typedef struct VkSubpassEndInfo {
   6098     VkStructureType    sType;
   6099     const void*        pNext;
   6100 } VkSubpassEndInfo;
   6101 
   6102 typedef struct VkPhysicalDevice8BitStorageFeatures {
   6103     VkStructureType    sType;
   6104     void*              pNext;
   6105     VkBool32           storageBuffer8BitAccess;
   6106     VkBool32           uniformAndStorageBuffer8BitAccess;
   6107     VkBool32           storagePushConstant8;
   6108 } VkPhysicalDevice8BitStorageFeatures;
   6109 
   6110 typedef struct VkPhysicalDeviceDriverProperties {
   6111     VkStructureType         sType;
   6112     void*                   pNext;
   6113     VkDriverId              driverID;
   6114     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
   6115     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
   6116     VkConformanceVersion    conformanceVersion;
   6117 } VkPhysicalDeviceDriverProperties;
   6118 
   6119 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
   6120     VkStructureType    sType;
   6121     void*              pNext;
   6122     VkBool32           shaderBufferInt64Atomics;
   6123     VkBool32           shaderSharedInt64Atomics;
   6124 } VkPhysicalDeviceShaderAtomicInt64Features;
   6125 
   6126 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
   6127     VkStructureType    sType;
   6128     void*              pNext;
   6129     VkBool32           shaderFloat16;
   6130     VkBool32           shaderInt8;
   6131 } VkPhysicalDeviceShaderFloat16Int8Features;
   6132 
   6133 typedef struct VkPhysicalDeviceFloatControlsProperties {
   6134     VkStructureType                      sType;
   6135     void*                                pNext;
   6136     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
   6137     VkShaderFloatControlsIndependence    roundingModeIndependence;
   6138     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
   6139     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
   6140     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
   6141     VkBool32                             shaderDenormPreserveFloat16;
   6142     VkBool32                             shaderDenormPreserveFloat32;
   6143     VkBool32                             shaderDenormPreserveFloat64;
   6144     VkBool32                             shaderDenormFlushToZeroFloat16;
   6145     VkBool32                             shaderDenormFlushToZeroFloat32;
   6146     VkBool32                             shaderDenormFlushToZeroFloat64;
   6147     VkBool32                             shaderRoundingModeRTEFloat16;
   6148     VkBool32                             shaderRoundingModeRTEFloat32;
   6149     VkBool32                             shaderRoundingModeRTEFloat64;
   6150     VkBool32                             shaderRoundingModeRTZFloat16;
   6151     VkBool32                             shaderRoundingModeRTZFloat32;
   6152     VkBool32                             shaderRoundingModeRTZFloat64;
   6153 } VkPhysicalDeviceFloatControlsProperties;
   6154 
   6155 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
   6156     VkStructureType                    sType;
   6157     const void*                        pNext;
   6158     uint32_t                           bindingCount;
   6159     const VkDescriptorBindingFlags*    pBindingFlags;
   6160 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
   6161 
   6162 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
   6163     VkStructureType    sType;
   6164     void*              pNext;
   6165     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
   6166     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
   6167     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
   6168     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
   6169     VkBool32           shaderSampledImageArrayNonUniformIndexing;
   6170     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
   6171     VkBool32           shaderStorageImageArrayNonUniformIndexing;
   6172     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
   6173     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
   6174     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
   6175     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
   6176     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
   6177     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
   6178     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
   6179     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
   6180     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
   6181     VkBool32           descriptorBindingUpdateUnusedWhilePending;
   6182     VkBool32           descriptorBindingPartiallyBound;
   6183     VkBool32           descriptorBindingVariableDescriptorCount;
   6184     VkBool32           runtimeDescriptorArray;
   6185 } VkPhysicalDeviceDescriptorIndexingFeatures;
   6186 
   6187 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
   6188     VkStructureType    sType;
   6189     void*              pNext;
   6190     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
   6191     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
   6192     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
   6193     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
   6194     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
   6195     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
   6196     VkBool32           robustBufferAccessUpdateAfterBind;
   6197     VkBool32           quadDivergentImplicitLod;
   6198     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
   6199     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   6200     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   6201     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
   6202     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
   6203     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
   6204     uint32_t           maxPerStageUpdateAfterBindResources;
   6205     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
   6206     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
   6207     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   6208     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
   6209     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   6210     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
   6211     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
   6212     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
   6213 } VkPhysicalDeviceDescriptorIndexingProperties;
   6214 
   6215 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
   6216     VkStructureType    sType;
   6217     const void*        pNext;
   6218     uint32_t           descriptorSetCount;
   6219     const uint32_t*    pDescriptorCounts;
   6220 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
   6221 
   6222 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
   6223     VkStructureType    sType;
   6224     void*              pNext;
   6225     uint32_t           maxVariableDescriptorCount;
   6226 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
   6227 
   6228 typedef struct VkSubpassDescriptionDepthStencilResolve {
   6229     VkStructureType                  sType;
   6230     const void*                      pNext;
   6231     VkResolveModeFlagBits            depthResolveMode;
   6232     VkResolveModeFlagBits            stencilResolveMode;
   6233     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
   6234 } VkSubpassDescriptionDepthStencilResolve;
   6235 
   6236 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
   6237     VkStructureType       sType;
   6238     void*                 pNext;
   6239     VkResolveModeFlags    supportedDepthResolveModes;
   6240     VkResolveModeFlags    supportedStencilResolveModes;
   6241     VkBool32              independentResolveNone;
   6242     VkBool32              independentResolve;
   6243 } VkPhysicalDeviceDepthStencilResolveProperties;
   6244 
   6245 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
   6246     VkStructureType    sType;
   6247     void*              pNext;
   6248     VkBool32           scalarBlockLayout;
   6249 } VkPhysicalDeviceScalarBlockLayoutFeatures;
   6250 
   6251 typedef struct VkImageStencilUsageCreateInfo {
   6252     VkStructureType      sType;
   6253     const void*          pNext;
   6254     VkImageUsageFlags    stencilUsage;
   6255 } VkImageStencilUsageCreateInfo;
   6256 
   6257 typedef struct VkSamplerReductionModeCreateInfo {
   6258     VkStructureType           sType;
   6259     const void*               pNext;
   6260     VkSamplerReductionMode    reductionMode;
   6261 } VkSamplerReductionModeCreateInfo;
   6262 
   6263 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
   6264     VkStructureType    sType;
   6265     void*              pNext;
   6266     VkBool32           filterMinmaxSingleComponentFormats;
   6267     VkBool32           filterMinmaxImageComponentMapping;
   6268 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
   6269 
   6270 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
   6271     VkStructureType    sType;
   6272     void*              pNext;
   6273     VkBool32           vulkanMemoryModel;
   6274     VkBool32           vulkanMemoryModelDeviceScope;
   6275     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
   6276 } VkPhysicalDeviceVulkanMemoryModelFeatures;
   6277 
   6278 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
   6279     VkStructureType    sType;
   6280     void*              pNext;
   6281     VkBool32           imagelessFramebuffer;
   6282 } VkPhysicalDeviceImagelessFramebufferFeatures;
   6283 
   6284 typedef struct VkFramebufferAttachmentImageInfo {
   6285     VkStructureType       sType;
   6286     const void*           pNext;
   6287     VkImageCreateFlags    flags;
   6288     VkImageUsageFlags     usage;
   6289     uint32_t              width;
   6290     uint32_t              height;
   6291     uint32_t              layerCount;
   6292     uint32_t              viewFormatCount;
   6293     const VkFormat*       pViewFormats;
   6294 } VkFramebufferAttachmentImageInfo;
   6295 
   6296 typedef struct VkFramebufferAttachmentsCreateInfo {
   6297     VkStructureType                            sType;
   6298     const void*                                pNext;
   6299     uint32_t                                   attachmentImageInfoCount;
   6300     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
   6301 } VkFramebufferAttachmentsCreateInfo;
   6302 
   6303 typedef struct VkRenderPassAttachmentBeginInfo {
   6304     VkStructureType       sType;
   6305     const void*           pNext;
   6306     uint32_t              attachmentCount;
   6307     const VkImageView*    pAttachments;
   6308 } VkRenderPassAttachmentBeginInfo;
   6309 
   6310 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
   6311     VkStructureType    sType;
   6312     void*              pNext;
   6313     VkBool32           uniformBufferStandardLayout;
   6314 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
   6315 
   6316 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
   6317     VkStructureType    sType;
   6318     void*              pNext;
   6319     VkBool32           shaderSubgroupExtendedTypes;
   6320 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
   6321 
   6322 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
   6323     VkStructureType    sType;
   6324     void*              pNext;
   6325     VkBool32           separateDepthStencilLayouts;
   6326 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
   6327 
   6328 typedef struct VkAttachmentReferenceStencilLayout {
   6329     VkStructureType    sType;
   6330     void*              pNext;
   6331     VkImageLayout      stencilLayout;
   6332 } VkAttachmentReferenceStencilLayout;
   6333 
   6334 typedef struct VkAttachmentDescriptionStencilLayout {
   6335     VkStructureType    sType;
   6336     void*              pNext;
   6337     VkImageLayout      stencilInitialLayout;
   6338     VkImageLayout      stencilFinalLayout;
   6339 } VkAttachmentDescriptionStencilLayout;
   6340 
   6341 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
   6342     VkStructureType    sType;
   6343     void*              pNext;
   6344     VkBool32           hostQueryReset;
   6345 } VkPhysicalDeviceHostQueryResetFeatures;
   6346 
   6347 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
   6348     VkStructureType    sType;
   6349     void*              pNext;
   6350     VkBool32           timelineSemaphore;
   6351 } VkPhysicalDeviceTimelineSemaphoreFeatures;
   6352 
   6353 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
   6354     VkStructureType    sType;
   6355     void*              pNext;
   6356     uint64_t           maxTimelineSemaphoreValueDifference;
   6357 } VkPhysicalDeviceTimelineSemaphoreProperties;
   6358 
   6359 typedef struct VkSemaphoreTypeCreateInfo {
   6360     VkStructureType    sType;
   6361     const void*        pNext;
   6362     VkSemaphoreType    semaphoreType;
   6363     uint64_t           initialValue;
   6364 } VkSemaphoreTypeCreateInfo;
   6365 
   6366 typedef struct VkTimelineSemaphoreSubmitInfo {
   6367     VkStructureType    sType;
   6368     const void*        pNext;
   6369     uint32_t           waitSemaphoreValueCount;
   6370     const uint64_t*    pWaitSemaphoreValues;
   6371     uint32_t           signalSemaphoreValueCount;
   6372     const uint64_t*    pSignalSemaphoreValues;
   6373 } VkTimelineSemaphoreSubmitInfo;
   6374 
   6375 typedef struct VkSemaphoreWaitInfo {
   6376     VkStructureType         sType;
   6377     const void*             pNext;
   6378     VkSemaphoreWaitFlags    flags;
   6379     uint32_t                semaphoreCount;
   6380     const VkSemaphore*      pSemaphores;
   6381     const uint64_t*         pValues;
   6382 } VkSemaphoreWaitInfo;
   6383 
   6384 typedef struct VkSemaphoreSignalInfo {
   6385     VkStructureType    sType;
   6386     const void*        pNext;
   6387     VkSemaphore        semaphore;
   6388     uint64_t           value;
   6389 } VkSemaphoreSignalInfo;
   6390 
   6391 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
   6392     VkStructureType    sType;
   6393     void*              pNext;
   6394     VkBool32           bufferDeviceAddress;
   6395     VkBool32           bufferDeviceAddressCaptureReplay;
   6396     VkBool32           bufferDeviceAddressMultiDevice;
   6397 } VkPhysicalDeviceBufferDeviceAddressFeatures;
   6398 
   6399 typedef struct VkBufferDeviceAddressInfo {
   6400     VkStructureType    sType;
   6401     const void*        pNext;
   6402     VkBuffer           buffer;
   6403 } VkBufferDeviceAddressInfo;
   6404 
   6405 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
   6406     VkStructureType    sType;
   6407     const void*        pNext;
   6408     uint64_t           opaqueCaptureAddress;
   6409 } VkBufferOpaqueCaptureAddressCreateInfo;
   6410 
   6411 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
   6412     VkStructureType    sType;
   6413     const void*        pNext;
   6414     uint64_t           opaqueCaptureAddress;
   6415 } VkMemoryOpaqueCaptureAddressAllocateInfo;
   6416 
   6417 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
   6418     VkStructureType    sType;
   6419     const void*        pNext;
   6420     VkDeviceMemory     memory;
   6421 } VkDeviceMemoryOpaqueCaptureAddressInfo;
   6422 
   6423 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   6424 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   6425 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   6426 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
   6427 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
   6428 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
   6429 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   6430 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
   6431 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
   6432 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
   6433 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   6434 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   6435 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   6436 
   6437 #ifndef VK_NO_PROTOTYPES
   6438 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
   6439     VkCommandBuffer                             commandBuffer,
   6440     VkBuffer                                    buffer,
   6441     VkDeviceSize                                offset,
   6442     VkBuffer                                    countBuffer,
   6443     VkDeviceSize                                countBufferOffset,
   6444     uint32_t                                    maxDrawCount,
   6445     uint32_t                                    stride);
   6446 
   6447 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
   6448     VkCommandBuffer                             commandBuffer,
   6449     VkBuffer                                    buffer,
   6450     VkDeviceSize                                offset,
   6451     VkBuffer                                    countBuffer,
   6452     VkDeviceSize                                countBufferOffset,
   6453     uint32_t                                    maxDrawCount,
   6454     uint32_t                                    stride);
   6455 
   6456 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
   6457     VkDevice                                    device,
   6458     const VkRenderPassCreateInfo2*              pCreateInfo,
   6459     const VkAllocationCallbacks*                pAllocator,
   6460     VkRenderPass*                               pRenderPass);
   6461 
   6462 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
   6463     VkCommandBuffer                             commandBuffer,
   6464     const VkRenderPassBeginInfo*                pRenderPassBegin,
   6465     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
   6466 
   6467 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
   6468     VkCommandBuffer                             commandBuffer,
   6469     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
   6470     const VkSubpassEndInfo*                     pSubpassEndInfo);
   6471 
   6472 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
   6473     VkCommandBuffer                             commandBuffer,
   6474     const VkSubpassEndInfo*                     pSubpassEndInfo);
   6475 
   6476 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
   6477     VkDevice                                    device,
   6478     VkQueryPool                                 queryPool,
   6479     uint32_t                                    firstQuery,
   6480     uint32_t                                    queryCount);
   6481 
   6482 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
   6483     VkDevice                                    device,
   6484     VkSemaphore                                 semaphore,
   6485     uint64_t*                                   pValue);
   6486 
   6487 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
   6488     VkDevice                                    device,
   6489     const VkSemaphoreWaitInfo*                  pWaitInfo,
   6490     uint64_t                                    timeout);
   6491 
   6492 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
   6493     VkDevice                                    device,
   6494     const VkSemaphoreSignalInfo*                pSignalInfo);
   6495 
   6496 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
   6497     VkDevice                                    device,
   6498     const VkBufferDeviceAddressInfo*            pInfo);
   6499 
   6500 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
   6501     VkDevice                                    device,
   6502     const VkBufferDeviceAddressInfo*            pInfo);
   6503 
   6504 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
   6505     VkDevice                                    device,
   6506     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   6507 #endif
   6508 
   6509 
   6510 // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
   6511 #define VK_VERSION_1_3 1
   6512 // Vulkan 1.3 version number
   6513 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
   6514 
   6515 typedef uint64_t VkFlags64;
   6516 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
   6517 
   6518 typedef enum VkPipelineCreationFeedbackFlagBits {
   6519     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
   6520     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
   6521     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
   6522     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
   6523     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
   6524     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
   6525     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   6526 } VkPipelineCreationFeedbackFlagBits;
   6527 typedef VkFlags VkPipelineCreationFeedbackFlags;
   6528 
   6529 typedef enum VkToolPurposeFlagBits {
   6530     VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
   6531     VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
   6532     VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
   6533     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
   6534     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
   6535     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
   6536     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
   6537     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
   6538     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
   6539     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
   6540     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
   6541     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
   6542     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   6543 } VkToolPurposeFlagBits;
   6544 typedef VkFlags VkToolPurposeFlags;
   6545 typedef VkFlags VkPrivateDataSlotCreateFlags;
   6546 typedef VkFlags64 VkPipelineStageFlags2;
   6547 
   6548 // Flag bits for VkPipelineStageFlagBits2
   6549 typedef VkFlags64 VkPipelineStageFlagBits2;
   6550 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
   6551 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
   6552 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
   6553 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
   6554 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
   6555 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
   6556 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
   6557 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
   6558 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
   6559 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
   6560 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
   6561 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
   6562 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
   6563 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
   6564 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
   6565 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
   6566 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
   6567 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
   6568 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
   6569 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
   6570 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
   6571 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
   6572 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
   6573 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
   6574 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
   6575 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
   6576 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
   6577 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
   6578 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
   6579 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
   6580 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
   6581 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
   6582 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
   6583 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
   6584 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
   6585 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
   6586 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
   6587 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
   6588 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
   6589 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
   6590 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
   6591 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
   6592 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
   6593 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
   6594 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
   6595 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
   6596 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
   6597 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
   6598 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
   6599 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
   6600 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
   6601 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
   6602 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
   6603 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
   6604 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
   6605 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
   6606 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
   6607 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
   6608 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
   6609 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
   6610 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
   6611 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
   6612 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
   6613 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
   6614 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
   6615 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
   6616 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
   6617 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
   6618 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
   6619 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
   6620 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
   6621 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
   6622 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
   6623 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
   6624 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
   6625 
   6626 typedef VkFlags64 VkAccessFlags2;
   6627 
   6628 // Flag bits for VkAccessFlagBits2
   6629 typedef VkFlags64 VkAccessFlagBits2;
   6630 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
   6631 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
   6632 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
   6633 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
   6634 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
   6635 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
   6636 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
   6637 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
   6638 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
   6639 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
   6640 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
   6641 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
   6642 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
   6643 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
   6644 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
   6645 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
   6646 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
   6647 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
   6648 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
   6649 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
   6650 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
   6651 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
   6652 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
   6653 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
   6654 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
   6655 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
   6656 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
   6657 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
   6658 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
   6659 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
   6660 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
   6661 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
   6662 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
   6663 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
   6664 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
   6665 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
   6666 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
   6667 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
   6668 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
   6669 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
   6670 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
   6671 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
   6672 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
   6673 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
   6674 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
   6675 static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
   6676 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
   6677 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
   6678 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
   6679 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
   6680 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
   6681 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
   6682 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
   6683 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
   6684 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
   6685 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
   6686 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
   6687 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
   6688 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
   6689 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
   6690 static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
   6691 static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
   6692 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
   6693 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
   6694 static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
   6695 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
   6696 static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
   6697 
   6698 
   6699 typedef enum VkSubmitFlagBits {
   6700     VK_SUBMIT_PROTECTED_BIT = 0x00000001,
   6701     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
   6702     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   6703 } VkSubmitFlagBits;
   6704 typedef VkFlags VkSubmitFlags;
   6705 
   6706 typedef enum VkRenderingFlagBits {
   6707     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
   6708     VK_RENDERING_SUSPENDING_BIT = 0x00000002,
   6709     VK_RENDERING_RESUMING_BIT = 0x00000004,
   6710     VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010,
   6711     VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
   6712     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
   6713     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
   6714     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
   6715     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   6716 } VkRenderingFlagBits;
   6717 typedef VkFlags VkRenderingFlags;
   6718 typedef VkFlags64 VkFormatFeatureFlags2;
   6719 
   6720 // Flag bits for VkFormatFeatureFlagBits2
   6721 typedef VkFlags64 VkFormatFeatureFlagBits2;
   6722 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
   6723 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
   6724 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
   6725 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
   6726 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
   6727 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
   6728 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
   6729 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
   6730 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
   6731 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
   6732 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
   6733 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
   6734 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
   6735 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
   6736 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
   6737 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
   6738 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
   6739 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
   6740 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
   6741 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
   6742 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
   6743 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
   6744 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
   6745 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
   6746 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
   6747 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
   6748 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
   6749 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
   6750 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
   6751 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
   6752 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
   6753 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
   6754 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
   6755 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
   6756 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
   6757 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
   6758 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
   6759 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
   6760 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
   6761 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
   6762 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
   6763 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
   6764 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
   6765 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
   6766 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
   6767 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
   6768 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
   6769 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
   6770 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
   6771 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
   6772 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
   6773 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
   6774 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
   6775 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
   6776 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
   6777 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
   6778 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
   6779 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
   6780 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
   6781 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
   6782 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
   6783 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
   6784 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
   6785 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
   6786 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
   6787 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
   6788 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
   6789 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
   6790 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
   6791 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
   6792 
   6793 typedef struct VkPhysicalDeviceVulkan13Features {
   6794     VkStructureType    sType;
   6795     void*              pNext;
   6796     VkBool32           robustImageAccess;
   6797     VkBool32           inlineUniformBlock;
   6798     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
   6799     VkBool32           pipelineCreationCacheControl;
   6800     VkBool32           privateData;
   6801     VkBool32           shaderDemoteToHelperInvocation;
   6802     VkBool32           shaderTerminateInvocation;
   6803     VkBool32           subgroupSizeControl;
   6804     VkBool32           computeFullSubgroups;
   6805     VkBool32           synchronization2;
   6806     VkBool32           textureCompressionASTC_HDR;
   6807     VkBool32           shaderZeroInitializeWorkgroupMemory;
   6808     VkBool32           dynamicRendering;
   6809     VkBool32           shaderIntegerDotProduct;
   6810     VkBool32           maintenance4;
   6811 } VkPhysicalDeviceVulkan13Features;
   6812 
   6813 typedef struct VkPhysicalDeviceVulkan13Properties {
   6814     VkStructureType       sType;
   6815     void*                 pNext;
   6816     uint32_t              minSubgroupSize;
   6817     uint32_t              maxSubgroupSize;
   6818     uint32_t              maxComputeWorkgroupSubgroups;
   6819     VkShaderStageFlags    requiredSubgroupSizeStages;
   6820     uint32_t              maxInlineUniformBlockSize;
   6821     uint32_t              maxPerStageDescriptorInlineUniformBlocks;
   6822     uint32_t              maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
   6823     uint32_t              maxDescriptorSetInlineUniformBlocks;
   6824     uint32_t              maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
   6825     uint32_t              maxInlineUniformTotalSize;
   6826     VkBool32              integerDotProduct8BitUnsignedAccelerated;
   6827     VkBool32              integerDotProduct8BitSignedAccelerated;
   6828     VkBool32              integerDotProduct8BitMixedSignednessAccelerated;
   6829     VkBool32              integerDotProduct4x8BitPackedUnsignedAccelerated;
   6830     VkBool32              integerDotProduct4x8BitPackedSignedAccelerated;
   6831     VkBool32              integerDotProduct4x8BitPackedMixedSignednessAccelerated;
   6832     VkBool32              integerDotProduct16BitUnsignedAccelerated;
   6833     VkBool32              integerDotProduct16BitSignedAccelerated;
   6834     VkBool32              integerDotProduct16BitMixedSignednessAccelerated;
   6835     VkBool32              integerDotProduct32BitUnsignedAccelerated;
   6836     VkBool32              integerDotProduct32BitSignedAccelerated;
   6837     VkBool32              integerDotProduct32BitMixedSignednessAccelerated;
   6838     VkBool32              integerDotProduct64BitUnsignedAccelerated;
   6839     VkBool32              integerDotProduct64BitSignedAccelerated;
   6840     VkBool32              integerDotProduct64BitMixedSignednessAccelerated;
   6841     VkBool32              integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
   6842     VkBool32              integerDotProductAccumulatingSaturating8BitSignedAccelerated;
   6843     VkBool32              integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
   6844     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
   6845     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
   6846     VkBool32              integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
   6847     VkBool32              integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
   6848     VkBool32              integerDotProductAccumulatingSaturating16BitSignedAccelerated;
   6849     VkBool32              integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
   6850     VkBool32              integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
   6851     VkBool32              integerDotProductAccumulatingSaturating32BitSignedAccelerated;
   6852     VkBool32              integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
   6853     VkBool32              integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
   6854     VkBool32              integerDotProductAccumulatingSaturating64BitSignedAccelerated;
   6855     VkBool32              integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
   6856     VkDeviceSize          storageTexelBufferOffsetAlignmentBytes;
   6857     VkBool32              storageTexelBufferOffsetSingleTexelAlignment;
   6858     VkDeviceSize          uniformTexelBufferOffsetAlignmentBytes;
   6859     VkBool32              uniformTexelBufferOffsetSingleTexelAlignment;
   6860     VkDeviceSize          maxBufferSize;
   6861 } VkPhysicalDeviceVulkan13Properties;
   6862 
   6863 typedef struct VkPipelineCreationFeedback {
   6864     VkPipelineCreationFeedbackFlags    flags;
   6865     uint64_t                           duration;
   6866 } VkPipelineCreationFeedback;
   6867 
   6868 typedef struct VkPipelineCreationFeedbackCreateInfo {
   6869     VkStructureType                sType;
   6870     const void*                    pNext;
   6871     VkPipelineCreationFeedback*    pPipelineCreationFeedback;
   6872     uint32_t                       pipelineStageCreationFeedbackCount;
   6873     VkPipelineCreationFeedback*    pPipelineStageCreationFeedbacks;
   6874 } VkPipelineCreationFeedbackCreateInfo;
   6875 
   6876 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
   6877     VkStructureType    sType;
   6878     void*              pNext;
   6879     VkBool32           shaderTerminateInvocation;
   6880 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
   6881 
   6882 typedef struct VkPhysicalDeviceToolProperties {
   6883     VkStructureType       sType;
   6884     void*                 pNext;
   6885     char                  name[VK_MAX_EXTENSION_NAME_SIZE];
   6886     char                  version[VK_MAX_EXTENSION_NAME_SIZE];
   6887     VkToolPurposeFlags    purposes;
   6888     char                  description[VK_MAX_DESCRIPTION_SIZE];
   6889     char                  layer[VK_MAX_EXTENSION_NAME_SIZE];
   6890 } VkPhysicalDeviceToolProperties;
   6891 
   6892 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
   6893     VkStructureType    sType;
   6894     void*              pNext;
   6895     VkBool32           shaderDemoteToHelperInvocation;
   6896 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
   6897 
   6898 typedef struct VkPhysicalDevicePrivateDataFeatures {
   6899     VkStructureType    sType;
   6900     void*              pNext;
   6901     VkBool32           privateData;
   6902 } VkPhysicalDevicePrivateDataFeatures;
   6903 
   6904 typedef struct VkDevicePrivateDataCreateInfo {
   6905     VkStructureType    sType;
   6906     const void*        pNext;
   6907     uint32_t           privateDataSlotRequestCount;
   6908 } VkDevicePrivateDataCreateInfo;
   6909 
   6910 typedef struct VkPrivateDataSlotCreateInfo {
   6911     VkStructureType                 sType;
   6912     const void*                     pNext;
   6913     VkPrivateDataSlotCreateFlags    flags;
   6914 } VkPrivateDataSlotCreateInfo;
   6915 
   6916 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
   6917     VkStructureType    sType;
   6918     void*              pNext;
   6919     VkBool32           pipelineCreationCacheControl;
   6920 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
   6921 
   6922 typedef struct VkMemoryBarrier2 {
   6923     VkStructureType          sType;
   6924     const void*              pNext;
   6925     VkPipelineStageFlags2    srcStageMask;
   6926     VkAccessFlags2           srcAccessMask;
   6927     VkPipelineStageFlags2    dstStageMask;
   6928     VkAccessFlags2           dstAccessMask;
   6929 } VkMemoryBarrier2;
   6930 
   6931 typedef struct VkBufferMemoryBarrier2 {
   6932     VkStructureType          sType;
   6933     const void*              pNext;
   6934     VkPipelineStageFlags2    srcStageMask;
   6935     VkAccessFlags2           srcAccessMask;
   6936     VkPipelineStageFlags2    dstStageMask;
   6937     VkAccessFlags2           dstAccessMask;
   6938     uint32_t                 srcQueueFamilyIndex;
   6939     uint32_t                 dstQueueFamilyIndex;
   6940     VkBuffer                 buffer;
   6941     VkDeviceSize             offset;
   6942     VkDeviceSize             size;
   6943 } VkBufferMemoryBarrier2;
   6944 
   6945 typedef struct VkImageMemoryBarrier2 {
   6946     VkStructureType            sType;
   6947     const void*                pNext;
   6948     VkPipelineStageFlags2      srcStageMask;
   6949     VkAccessFlags2             srcAccessMask;
   6950     VkPipelineStageFlags2      dstStageMask;
   6951     VkAccessFlags2             dstAccessMask;
   6952     VkImageLayout              oldLayout;
   6953     VkImageLayout              newLayout;
   6954     uint32_t                   srcQueueFamilyIndex;
   6955     uint32_t                   dstQueueFamilyIndex;
   6956     VkImage                    image;
   6957     VkImageSubresourceRange    subresourceRange;
   6958 } VkImageMemoryBarrier2;
   6959 
   6960 typedef struct VkDependencyInfo {
   6961     VkStructureType                  sType;
   6962     const void*                      pNext;
   6963     VkDependencyFlags                dependencyFlags;
   6964     uint32_t                         memoryBarrierCount;
   6965     const VkMemoryBarrier2*          pMemoryBarriers;
   6966     uint32_t                         bufferMemoryBarrierCount;
   6967     const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
   6968     uint32_t                         imageMemoryBarrierCount;
   6969     const VkImageMemoryBarrier2*     pImageMemoryBarriers;
   6970 } VkDependencyInfo;
   6971 
   6972 typedef struct VkSemaphoreSubmitInfo {
   6973     VkStructureType          sType;
   6974     const void*              pNext;
   6975     VkSemaphore              semaphore;
   6976     uint64_t                 value;
   6977     VkPipelineStageFlags2    stageMask;
   6978     uint32_t                 deviceIndex;
   6979 } VkSemaphoreSubmitInfo;
   6980 
   6981 typedef struct VkCommandBufferSubmitInfo {
   6982     VkStructureType    sType;
   6983     const void*        pNext;
   6984     VkCommandBuffer    commandBuffer;
   6985     uint32_t           deviceMask;
   6986 } VkCommandBufferSubmitInfo;
   6987 
   6988 typedef struct VkSubmitInfo2 {
   6989     VkStructureType                     sType;
   6990     const void*                         pNext;
   6991     VkSubmitFlags                       flags;
   6992     uint32_t                            waitSemaphoreInfoCount;
   6993     const VkSemaphoreSubmitInfo*        pWaitSemaphoreInfos;
   6994     uint32_t                            commandBufferInfoCount;
   6995     const VkCommandBufferSubmitInfo*    pCommandBufferInfos;
   6996     uint32_t                            signalSemaphoreInfoCount;
   6997     const VkSemaphoreSubmitInfo*        pSignalSemaphoreInfos;
   6998 } VkSubmitInfo2;
   6999 
   7000 typedef struct VkPhysicalDeviceSynchronization2Features {
   7001     VkStructureType    sType;
   7002     void*              pNext;
   7003     VkBool32           synchronization2;
   7004 } VkPhysicalDeviceSynchronization2Features;
   7005 
   7006 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
   7007     VkStructureType    sType;
   7008     void*              pNext;
   7009     VkBool32           shaderZeroInitializeWorkgroupMemory;
   7010 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
   7011 
   7012 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
   7013     VkStructureType    sType;
   7014     void*              pNext;
   7015     VkBool32           robustImageAccess;
   7016 } VkPhysicalDeviceImageRobustnessFeatures;
   7017 
   7018 typedef struct VkBufferCopy2 {
   7019     VkStructureType    sType;
   7020     const void*        pNext;
   7021     VkDeviceSize       srcOffset;
   7022     VkDeviceSize       dstOffset;
   7023     VkDeviceSize       size;
   7024 } VkBufferCopy2;
   7025 
   7026 typedef struct VkCopyBufferInfo2 {
   7027     VkStructureType         sType;
   7028     const void*             pNext;
   7029     VkBuffer                srcBuffer;
   7030     VkBuffer                dstBuffer;
   7031     uint32_t                regionCount;
   7032     const VkBufferCopy2*    pRegions;
   7033 } VkCopyBufferInfo2;
   7034 
   7035 typedef struct VkImageCopy2 {
   7036     VkStructureType             sType;
   7037     const void*                 pNext;
   7038     VkImageSubresourceLayers    srcSubresource;
   7039     VkOffset3D                  srcOffset;
   7040     VkImageSubresourceLayers    dstSubresource;
   7041     VkOffset3D                  dstOffset;
   7042     VkExtent3D                  extent;
   7043 } VkImageCopy2;
   7044 
   7045 typedef struct VkCopyImageInfo2 {
   7046     VkStructureType        sType;
   7047     const void*            pNext;
   7048     VkImage                srcImage;
   7049     VkImageLayout          srcImageLayout;
   7050     VkImage                dstImage;
   7051     VkImageLayout          dstImageLayout;
   7052     uint32_t               regionCount;
   7053     const VkImageCopy2*    pRegions;
   7054 } VkCopyImageInfo2;
   7055 
   7056 typedef struct VkBufferImageCopy2 {
   7057     VkStructureType             sType;
   7058     const void*                 pNext;
   7059     VkDeviceSize                bufferOffset;
   7060     uint32_t                    bufferRowLength;
   7061     uint32_t                    bufferImageHeight;
   7062     VkImageSubresourceLayers    imageSubresource;
   7063     VkOffset3D                  imageOffset;
   7064     VkExtent3D                  imageExtent;
   7065 } VkBufferImageCopy2;
   7066 
   7067 typedef struct VkCopyBufferToImageInfo2 {
   7068     VkStructureType              sType;
   7069     const void*                  pNext;
   7070     VkBuffer                     srcBuffer;
   7071     VkImage                      dstImage;
   7072     VkImageLayout                dstImageLayout;
   7073     uint32_t                     regionCount;
   7074     const VkBufferImageCopy2*    pRegions;
   7075 } VkCopyBufferToImageInfo2;
   7076 
   7077 typedef struct VkCopyImageToBufferInfo2 {
   7078     VkStructureType              sType;
   7079     const void*                  pNext;
   7080     VkImage                      srcImage;
   7081     VkImageLayout                srcImageLayout;
   7082     VkBuffer                     dstBuffer;
   7083     uint32_t                     regionCount;
   7084     const VkBufferImageCopy2*    pRegions;
   7085 } VkCopyImageToBufferInfo2;
   7086 
   7087 typedef struct VkImageBlit2 {
   7088     VkStructureType             sType;
   7089     const void*                 pNext;
   7090     VkImageSubresourceLayers    srcSubresource;
   7091     VkOffset3D                  srcOffsets[2];
   7092     VkImageSubresourceLayers    dstSubresource;
   7093     VkOffset3D                  dstOffsets[2];
   7094 } VkImageBlit2;
   7095 
   7096 typedef struct VkBlitImageInfo2 {
   7097     VkStructureType        sType;
   7098     const void*            pNext;
   7099     VkImage                srcImage;
   7100     VkImageLayout          srcImageLayout;
   7101     VkImage                dstImage;
   7102     VkImageLayout          dstImageLayout;
   7103     uint32_t               regionCount;
   7104     const VkImageBlit2*    pRegions;
   7105     VkFilter               filter;
   7106 } VkBlitImageInfo2;
   7107 
   7108 typedef struct VkImageResolve2 {
   7109     VkStructureType             sType;
   7110     const void*                 pNext;
   7111     VkImageSubresourceLayers    srcSubresource;
   7112     VkOffset3D                  srcOffset;
   7113     VkImageSubresourceLayers    dstSubresource;
   7114     VkOffset3D                  dstOffset;
   7115     VkExtent3D                  extent;
   7116 } VkImageResolve2;
   7117 
   7118 typedef struct VkResolveImageInfo2 {
   7119     VkStructureType           sType;
   7120     const void*               pNext;
   7121     VkImage                   srcImage;
   7122     VkImageLayout             srcImageLayout;
   7123     VkImage                   dstImage;
   7124     VkImageLayout             dstImageLayout;
   7125     uint32_t                  regionCount;
   7126     const VkImageResolve2*    pRegions;
   7127 } VkResolveImageInfo2;
   7128 
   7129 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
   7130     VkStructureType    sType;
   7131     void*              pNext;
   7132     VkBool32           subgroupSizeControl;
   7133     VkBool32           computeFullSubgroups;
   7134 } VkPhysicalDeviceSubgroupSizeControlFeatures;
   7135 
   7136 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
   7137     VkStructureType       sType;
   7138     void*                 pNext;
   7139     uint32_t              minSubgroupSize;
   7140     uint32_t              maxSubgroupSize;
   7141     uint32_t              maxComputeWorkgroupSubgroups;
   7142     VkShaderStageFlags    requiredSubgroupSizeStages;
   7143 } VkPhysicalDeviceSubgroupSizeControlProperties;
   7144 
   7145 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
   7146     VkStructureType    sType;
   7147     void*              pNext;
   7148     uint32_t           requiredSubgroupSize;
   7149 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
   7150 
   7151 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
   7152     VkStructureType    sType;
   7153     void*              pNext;
   7154     VkBool32           inlineUniformBlock;
   7155     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
   7156 } VkPhysicalDeviceInlineUniformBlockFeatures;
   7157 
   7158 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
   7159     VkStructureType    sType;
   7160     void*              pNext;
   7161     uint32_t           maxInlineUniformBlockSize;
   7162     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
   7163     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
   7164     uint32_t           maxDescriptorSetInlineUniformBlocks;
   7165     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
   7166 } VkPhysicalDeviceInlineUniformBlockProperties;
   7167 
   7168 typedef struct VkWriteDescriptorSetInlineUniformBlock {
   7169     VkStructureType    sType;
   7170     const void*        pNext;
   7171     uint32_t           dataSize;
   7172     const void*        pData;
   7173 } VkWriteDescriptorSetInlineUniformBlock;
   7174 
   7175 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
   7176     VkStructureType    sType;
   7177     const void*        pNext;
   7178     uint32_t           maxInlineUniformBlockBindings;
   7179 } VkDescriptorPoolInlineUniformBlockCreateInfo;
   7180 
   7181 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
   7182     VkStructureType    sType;
   7183     void*              pNext;
   7184     VkBool32           textureCompressionASTC_HDR;
   7185 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
   7186 
   7187 typedef struct VkRenderingAttachmentInfo {
   7188     VkStructureType          sType;
   7189     const void*              pNext;
   7190     VkImageView              imageView;
   7191     VkImageLayout            imageLayout;
   7192     VkResolveModeFlagBits    resolveMode;
   7193     VkImageView              resolveImageView;
   7194     VkImageLayout            resolveImageLayout;
   7195     VkAttachmentLoadOp       loadOp;
   7196     VkAttachmentStoreOp      storeOp;
   7197     VkClearValue             clearValue;
   7198 } VkRenderingAttachmentInfo;
   7199 
   7200 typedef struct VkRenderingInfo {
   7201     VkStructureType                     sType;
   7202     const void*                         pNext;
   7203     VkRenderingFlags                    flags;
   7204     VkRect2D                            renderArea;
   7205     uint32_t                            layerCount;
   7206     uint32_t                            viewMask;
   7207     uint32_t                            colorAttachmentCount;
   7208     const VkRenderingAttachmentInfo*    pColorAttachments;
   7209     const VkRenderingAttachmentInfo*    pDepthAttachment;
   7210     const VkRenderingAttachmentInfo*    pStencilAttachment;
   7211 } VkRenderingInfo;
   7212 
   7213 typedef struct VkPipelineRenderingCreateInfo {
   7214     VkStructureType    sType;
   7215     const void*        pNext;
   7216     uint32_t           viewMask;
   7217     uint32_t           colorAttachmentCount;
   7218     const VkFormat*    pColorAttachmentFormats;
   7219     VkFormat           depthAttachmentFormat;
   7220     VkFormat           stencilAttachmentFormat;
   7221 } VkPipelineRenderingCreateInfo;
   7222 
   7223 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
   7224     VkStructureType    sType;
   7225     void*              pNext;
   7226     VkBool32           dynamicRendering;
   7227 } VkPhysicalDeviceDynamicRenderingFeatures;
   7228 
   7229 typedef struct VkCommandBufferInheritanceRenderingInfo {
   7230     VkStructureType          sType;
   7231     const void*              pNext;
   7232     VkRenderingFlags         flags;
   7233     uint32_t                 viewMask;
   7234     uint32_t                 colorAttachmentCount;
   7235     const VkFormat*          pColorAttachmentFormats;
   7236     VkFormat                 depthAttachmentFormat;
   7237     VkFormat                 stencilAttachmentFormat;
   7238     VkSampleCountFlagBits    rasterizationSamples;
   7239 } VkCommandBufferInheritanceRenderingInfo;
   7240 
   7241 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
   7242     VkStructureType    sType;
   7243     void*              pNext;
   7244     VkBool32           shaderIntegerDotProduct;
   7245 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
   7246 
   7247 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
   7248     VkStructureType    sType;
   7249     void*              pNext;
   7250     VkBool32           integerDotProduct8BitUnsignedAccelerated;
   7251     VkBool32           integerDotProduct8BitSignedAccelerated;
   7252     VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
   7253     VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
   7254     VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
   7255     VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
   7256     VkBool32           integerDotProduct16BitUnsignedAccelerated;
   7257     VkBool32           integerDotProduct16BitSignedAccelerated;
   7258     VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
   7259     VkBool32           integerDotProduct32BitUnsignedAccelerated;
   7260     VkBool32           integerDotProduct32BitSignedAccelerated;
   7261     VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
   7262     VkBool32           integerDotProduct64BitUnsignedAccelerated;
   7263     VkBool32           integerDotProduct64BitSignedAccelerated;
   7264     VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
   7265     VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
   7266     VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
   7267     VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
   7268     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
   7269     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
   7270     VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
   7271     VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
   7272     VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
   7273     VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
   7274     VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
   7275     VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
   7276     VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
   7277     VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
   7278     VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
   7279     VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
   7280 } VkPhysicalDeviceShaderIntegerDotProductProperties;
   7281 
   7282 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
   7283     VkStructureType    sType;
   7284     void*              pNext;
   7285     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
   7286     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
   7287     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
   7288     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
   7289 } VkPhysicalDeviceTexelBufferAlignmentProperties;
   7290 
   7291 typedef struct VkFormatProperties3 {
   7292     VkStructureType          sType;
   7293     void*                    pNext;
   7294     VkFormatFeatureFlags2    linearTilingFeatures;
   7295     VkFormatFeatureFlags2    optimalTilingFeatures;
   7296     VkFormatFeatureFlags2    bufferFeatures;
   7297 } VkFormatProperties3;
   7298 
   7299 typedef struct VkPhysicalDeviceMaintenance4Features {
   7300     VkStructureType    sType;
   7301     void*              pNext;
   7302     VkBool32           maintenance4;
   7303 } VkPhysicalDeviceMaintenance4Features;
   7304 
   7305 typedef struct VkPhysicalDeviceMaintenance4Properties {
   7306     VkStructureType    sType;
   7307     void*              pNext;
   7308     VkDeviceSize       maxBufferSize;
   7309 } VkPhysicalDeviceMaintenance4Properties;
   7310 
   7311 typedef struct VkDeviceBufferMemoryRequirements {
   7312     VkStructureType              sType;
   7313     const void*                  pNext;
   7314     const VkBufferCreateInfo*    pCreateInfo;
   7315 } VkDeviceBufferMemoryRequirements;
   7316 
   7317 typedef struct VkDeviceImageMemoryRequirements {
   7318     VkStructureType             sType;
   7319     const void*                 pNext;
   7320     const VkImageCreateInfo*    pCreateInfo;
   7321     VkImageAspectFlagBits       planeAspect;
   7322 } VkDeviceImageMemoryRequirements;
   7323 
   7324 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
   7325 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
   7326 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
   7327 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
   7328 typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
   7329 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
   7330 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
   7331 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
   7332 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
   7333 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
   7334 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
   7335 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
   7336 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
   7337 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
   7338 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
   7339 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
   7340 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
   7341 typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
   7342 typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer                   commandBuffer);
   7343 typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
   7344 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
   7345 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
   7346 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
   7347 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
   7348 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
   7349 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
   7350 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
   7351 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
   7352 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
   7353 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
   7354 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
   7355 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
   7356 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
   7357 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
   7358 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   7359 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   7360 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
   7361 
   7362 #ifndef VK_NO_PROTOTYPES
   7363 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
   7364     VkPhysicalDevice                            physicalDevice,
   7365     uint32_t*                                   pToolCount,
   7366     VkPhysicalDeviceToolProperties*             pToolProperties);
   7367 
   7368 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
   7369     VkDevice                                    device,
   7370     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
   7371     const VkAllocationCallbacks*                pAllocator,
   7372     VkPrivateDataSlot*                          pPrivateDataSlot);
   7373 
   7374 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
   7375     VkDevice                                    device,
   7376     VkPrivateDataSlot                           privateDataSlot,
   7377     const VkAllocationCallbacks*                pAllocator);
   7378 
   7379 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
   7380     VkDevice                                    device,
   7381     VkObjectType                                objectType,
   7382     uint64_t                                    objectHandle,
   7383     VkPrivateDataSlot                           privateDataSlot,
   7384     uint64_t                                    data);
   7385 
   7386 VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
   7387     VkDevice                                    device,
   7388     VkObjectType                                objectType,
   7389     uint64_t                                    objectHandle,
   7390     VkPrivateDataSlot                           privateDataSlot,
   7391     uint64_t*                                   pData);
   7392 
   7393 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
   7394     VkCommandBuffer                             commandBuffer,
   7395     VkEvent                                     event,
   7396     const VkDependencyInfo*                     pDependencyInfo);
   7397 
   7398 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
   7399     VkCommandBuffer                             commandBuffer,
   7400     VkEvent                                     event,
   7401     VkPipelineStageFlags2                       stageMask);
   7402 
   7403 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
   7404     VkCommandBuffer                             commandBuffer,
   7405     uint32_t                                    eventCount,
   7406     const VkEvent*                              pEvents,
   7407     const VkDependencyInfo*                     pDependencyInfos);
   7408 
   7409 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
   7410     VkCommandBuffer                             commandBuffer,
   7411     const VkDependencyInfo*                     pDependencyInfo);
   7412 
   7413 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
   7414     VkCommandBuffer                             commandBuffer,
   7415     VkPipelineStageFlags2                       stage,
   7416     VkQueryPool                                 queryPool,
   7417     uint32_t                                    query);
   7418 
   7419 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
   7420     VkQueue                                     queue,
   7421     uint32_t                                    submitCount,
   7422     const VkSubmitInfo2*                        pSubmits,
   7423     VkFence                                     fence);
   7424 
   7425 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
   7426     VkCommandBuffer                             commandBuffer,
   7427     const VkCopyBufferInfo2*                    pCopyBufferInfo);
   7428 
   7429 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
   7430     VkCommandBuffer                             commandBuffer,
   7431     const VkCopyImageInfo2*                     pCopyImageInfo);
   7432 
   7433 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
   7434     VkCommandBuffer                             commandBuffer,
   7435     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
   7436 
   7437 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
   7438     VkCommandBuffer                             commandBuffer,
   7439     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
   7440 
   7441 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
   7442     VkCommandBuffer                             commandBuffer,
   7443     const VkBlitImageInfo2*                     pBlitImageInfo);
   7444 
   7445 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
   7446     VkCommandBuffer                             commandBuffer,
   7447     const VkResolveImageInfo2*                  pResolveImageInfo);
   7448 
   7449 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
   7450     VkCommandBuffer                             commandBuffer,
   7451     const VkRenderingInfo*                      pRenderingInfo);
   7452 
   7453 VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
   7454     VkCommandBuffer                             commandBuffer);
   7455 
   7456 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
   7457     VkCommandBuffer                             commandBuffer,
   7458     VkCullModeFlags                             cullMode);
   7459 
   7460 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
   7461     VkCommandBuffer                             commandBuffer,
   7462     VkFrontFace                                 frontFace);
   7463 
   7464 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
   7465     VkCommandBuffer                             commandBuffer,
   7466     VkPrimitiveTopology                         primitiveTopology);
   7467 
   7468 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
   7469     VkCommandBuffer                             commandBuffer,
   7470     uint32_t                                    viewportCount,
   7471     const VkViewport*                           pViewports);
   7472 
   7473 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
   7474     VkCommandBuffer                             commandBuffer,
   7475     uint32_t                                    scissorCount,
   7476     const VkRect2D*                             pScissors);
   7477 
   7478 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
   7479     VkCommandBuffer                             commandBuffer,
   7480     uint32_t                                    firstBinding,
   7481     uint32_t                                    bindingCount,
   7482     const VkBuffer*                             pBuffers,
   7483     const VkDeviceSize*                         pOffsets,
   7484     const VkDeviceSize*                         pSizes,
   7485     const VkDeviceSize*                         pStrides);
   7486 
   7487 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
   7488     VkCommandBuffer                             commandBuffer,
   7489     VkBool32                                    depthTestEnable);
   7490 
   7491 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
   7492     VkCommandBuffer                             commandBuffer,
   7493     VkBool32                                    depthWriteEnable);
   7494 
   7495 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
   7496     VkCommandBuffer                             commandBuffer,
   7497     VkCompareOp                                 depthCompareOp);
   7498 
   7499 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
   7500     VkCommandBuffer                             commandBuffer,
   7501     VkBool32                                    depthBoundsTestEnable);
   7502 
   7503 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
   7504     VkCommandBuffer                             commandBuffer,
   7505     VkBool32                                    stencilTestEnable);
   7506 
   7507 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
   7508     VkCommandBuffer                             commandBuffer,
   7509     VkStencilFaceFlags                          faceMask,
   7510     VkStencilOp                                 failOp,
   7511     VkStencilOp                                 passOp,
   7512     VkStencilOp                                 depthFailOp,
   7513     VkCompareOp                                 compareOp);
   7514 
   7515 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
   7516     VkCommandBuffer                             commandBuffer,
   7517     VkBool32                                    rasterizerDiscardEnable);
   7518 
   7519 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
   7520     VkCommandBuffer                             commandBuffer,
   7521     VkBool32                                    depthBiasEnable);
   7522 
   7523 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
   7524     VkCommandBuffer                             commandBuffer,
   7525     VkBool32                                    primitiveRestartEnable);
   7526 
   7527 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
   7528     VkDevice                                    device,
   7529     const VkDeviceBufferMemoryRequirements*     pInfo,
   7530     VkMemoryRequirements2*                      pMemoryRequirements);
   7531 
   7532 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
   7533     VkDevice                                    device,
   7534     const VkDeviceImageMemoryRequirements*      pInfo,
   7535     VkMemoryRequirements2*                      pMemoryRequirements);
   7536 
   7537 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
   7538     VkDevice                                    device,
   7539     const VkDeviceImageMemoryRequirements*      pInfo,
   7540     uint32_t*                                   pSparseMemoryRequirementCount,
   7541     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
   7542 #endif
   7543 
   7544 
   7545 // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
   7546 #define VK_KHR_surface 1
   7547 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
   7548 #define VK_KHR_SURFACE_SPEC_VERSION       25
   7549 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
   7550 
   7551 typedef enum VkPresentModeKHR {
   7552     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
   7553     VK_PRESENT_MODE_MAILBOX_KHR = 1,
   7554     VK_PRESENT_MODE_FIFO_KHR = 2,
   7555     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
   7556     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
   7557     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
   7558     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
   7559 } VkPresentModeKHR;
   7560 
   7561 typedef enum VkColorSpaceKHR {
   7562     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
   7563     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
   7564     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
   7565     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
   7566     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
   7567     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
   7568     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
   7569     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
   7570     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
   7571     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
   7572     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
   7573     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
   7574     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
   7575     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
   7576     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
   7577     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
   7578     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
   7579     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
   7580     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
   7581 } VkColorSpaceKHR;
   7582 
   7583 typedef enum VkSurfaceTransformFlagBitsKHR {
   7584     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
   7585     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
   7586     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
   7587     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
   7588     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
   7589     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
   7590     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
   7591     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
   7592     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
   7593     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   7594 } VkSurfaceTransformFlagBitsKHR;
   7595 
   7596 typedef enum VkCompositeAlphaFlagBitsKHR {
   7597     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
   7598     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
   7599     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
   7600     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
   7601     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   7602 } VkCompositeAlphaFlagBitsKHR;
   7603 typedef VkFlags VkCompositeAlphaFlagsKHR;
   7604 typedef VkFlags VkSurfaceTransformFlagsKHR;
   7605 typedef struct VkSurfaceCapabilitiesKHR {
   7606     uint32_t                         minImageCount;
   7607     uint32_t                         maxImageCount;
   7608     VkExtent2D                       currentExtent;
   7609     VkExtent2D                       minImageExtent;
   7610     VkExtent2D                       maxImageExtent;
   7611     uint32_t                         maxImageArrayLayers;
   7612     VkSurfaceTransformFlagsKHR       supportedTransforms;
   7613     VkSurfaceTransformFlagBitsKHR    currentTransform;
   7614     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
   7615     VkImageUsageFlags                supportedUsageFlags;
   7616 } VkSurfaceCapabilitiesKHR;
   7617 
   7618 typedef struct VkSurfaceFormatKHR {
   7619     VkFormat           format;
   7620     VkColorSpaceKHR    colorSpace;
   7621 } VkSurfaceFormatKHR;
   7622 
   7623 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
   7624 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
   7625 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
   7626 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
   7627 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
   7628 
   7629 #ifndef VK_NO_PROTOTYPES
   7630 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
   7631     VkInstance                                  instance,
   7632     VkSurfaceKHR                                surface,
   7633     const VkAllocationCallbacks*                pAllocator);
   7634 
   7635 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
   7636     VkPhysicalDevice                            physicalDevice,
   7637     uint32_t                                    queueFamilyIndex,
   7638     VkSurfaceKHR                                surface,
   7639     VkBool32*                                   pSupported);
   7640 
   7641 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
   7642     VkPhysicalDevice                            physicalDevice,
   7643     VkSurfaceKHR                                surface,
   7644     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
   7645 
   7646 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
   7647     VkPhysicalDevice                            physicalDevice,
   7648     VkSurfaceKHR                                surface,
   7649     uint32_t*                                   pSurfaceFormatCount,
   7650     VkSurfaceFormatKHR*                         pSurfaceFormats);
   7651 
   7652 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
   7653     VkPhysicalDevice                            physicalDevice,
   7654     VkSurfaceKHR                                surface,
   7655     uint32_t*                                   pPresentModeCount,
   7656     VkPresentModeKHR*                           pPresentModes);
   7657 #endif
   7658 
   7659 
   7660 // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
   7661 #define VK_KHR_swapchain 1
   7662 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
   7663 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
   7664 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
   7665 
   7666 typedef enum VkSwapchainCreateFlagBitsKHR {
   7667     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
   7668     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
   7669     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
   7670     VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
   7671     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   7672 } VkSwapchainCreateFlagBitsKHR;
   7673 typedef VkFlags VkSwapchainCreateFlagsKHR;
   7674 
   7675 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
   7676     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
   7677     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
   7678     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
   7679     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
   7680     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   7681 } VkDeviceGroupPresentModeFlagBitsKHR;
   7682 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
   7683 typedef struct VkSwapchainCreateInfoKHR {
   7684     VkStructureType                  sType;
   7685     const void*                      pNext;
   7686     VkSwapchainCreateFlagsKHR        flags;
   7687     VkSurfaceKHR                     surface;
   7688     uint32_t                         minImageCount;
   7689     VkFormat                         imageFormat;
   7690     VkColorSpaceKHR                  imageColorSpace;
   7691     VkExtent2D                       imageExtent;
   7692     uint32_t                         imageArrayLayers;
   7693     VkImageUsageFlags                imageUsage;
   7694     VkSharingMode                    imageSharingMode;
   7695     uint32_t                         queueFamilyIndexCount;
   7696     const uint32_t*                  pQueueFamilyIndices;
   7697     VkSurfaceTransformFlagBitsKHR    preTransform;
   7698     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
   7699     VkPresentModeKHR                 presentMode;
   7700     VkBool32                         clipped;
   7701     VkSwapchainKHR                   oldSwapchain;
   7702 } VkSwapchainCreateInfoKHR;
   7703 
   7704 typedef struct VkPresentInfoKHR {
   7705     VkStructureType          sType;
   7706     const void*              pNext;
   7707     uint32_t                 waitSemaphoreCount;
   7708     const VkSemaphore*       pWaitSemaphores;
   7709     uint32_t                 swapchainCount;
   7710     const VkSwapchainKHR*    pSwapchains;
   7711     const uint32_t*          pImageIndices;
   7712     VkResult*                pResults;
   7713 } VkPresentInfoKHR;
   7714 
   7715 typedef struct VkImageSwapchainCreateInfoKHR {
   7716     VkStructureType    sType;
   7717     const void*        pNext;
   7718     VkSwapchainKHR     swapchain;
   7719 } VkImageSwapchainCreateInfoKHR;
   7720 
   7721 typedef struct VkBindImageMemorySwapchainInfoKHR {
   7722     VkStructureType    sType;
   7723     const void*        pNext;
   7724     VkSwapchainKHR     swapchain;
   7725     uint32_t           imageIndex;
   7726 } VkBindImageMemorySwapchainInfoKHR;
   7727 
   7728 typedef struct VkAcquireNextImageInfoKHR {
   7729     VkStructureType    sType;
   7730     const void*        pNext;
   7731     VkSwapchainKHR     swapchain;
   7732     uint64_t           timeout;
   7733     VkSemaphore        semaphore;
   7734     VkFence            fence;
   7735     uint32_t           deviceMask;
   7736 } VkAcquireNextImageInfoKHR;
   7737 
   7738 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
   7739     VkStructureType                     sType;
   7740     void*                               pNext;
   7741     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
   7742     VkDeviceGroupPresentModeFlagsKHR    modes;
   7743 } VkDeviceGroupPresentCapabilitiesKHR;
   7744 
   7745 typedef struct VkDeviceGroupPresentInfoKHR {
   7746     VkStructureType                        sType;
   7747     const void*                            pNext;
   7748     uint32_t                               swapchainCount;
   7749     const uint32_t*                        pDeviceMasks;
   7750     VkDeviceGroupPresentModeFlagBitsKHR    mode;
   7751 } VkDeviceGroupPresentInfoKHR;
   7752 
   7753 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
   7754     VkStructureType                     sType;
   7755     const void*                         pNext;
   7756     VkDeviceGroupPresentModeFlagsKHR    modes;
   7757 } VkDeviceGroupSwapchainCreateInfoKHR;
   7758 
   7759 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
   7760 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
   7761 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
   7762 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
   7763 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
   7764 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
   7765 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
   7766 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
   7767 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
   7768 
   7769 #ifndef VK_NO_PROTOTYPES
   7770 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
   7771     VkDevice                                    device,
   7772     const VkSwapchainCreateInfoKHR*             pCreateInfo,
   7773     const VkAllocationCallbacks*                pAllocator,
   7774     VkSwapchainKHR*                             pSwapchain);
   7775 
   7776 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
   7777     VkDevice                                    device,
   7778     VkSwapchainKHR                              swapchain,
   7779     const VkAllocationCallbacks*                pAllocator);
   7780 
   7781 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
   7782     VkDevice                                    device,
   7783     VkSwapchainKHR                              swapchain,
   7784     uint32_t*                                   pSwapchainImageCount,
   7785     VkImage*                                    pSwapchainImages);
   7786 
   7787 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
   7788     VkDevice                                    device,
   7789     VkSwapchainKHR                              swapchain,
   7790     uint64_t                                    timeout,
   7791     VkSemaphore                                 semaphore,
   7792     VkFence                                     fence,
   7793     uint32_t*                                   pImageIndex);
   7794 
   7795 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
   7796     VkQueue                                     queue,
   7797     const VkPresentInfoKHR*                     pPresentInfo);
   7798 
   7799 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
   7800     VkDevice                                    device,
   7801     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
   7802 
   7803 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
   7804     VkDevice                                    device,
   7805     VkSurfaceKHR                                surface,
   7806     VkDeviceGroupPresentModeFlagsKHR*           pModes);
   7807 
   7808 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
   7809     VkPhysicalDevice                            physicalDevice,
   7810     VkSurfaceKHR                                surface,
   7811     uint32_t*                                   pRectCount,
   7812     VkRect2D*                                   pRects);
   7813 
   7814 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
   7815     VkDevice                                    device,
   7816     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
   7817     uint32_t*                                   pImageIndex);
   7818 #endif
   7819 
   7820 
   7821 // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
   7822 #define VK_KHR_display 1
   7823 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
   7824 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
   7825 #define VK_KHR_DISPLAY_SPEC_VERSION       23
   7826 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
   7827 typedef VkFlags VkDisplayModeCreateFlagsKHR;
   7828 
   7829 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
   7830     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
   7831     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
   7832     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
   7833     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
   7834     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   7835 } VkDisplayPlaneAlphaFlagBitsKHR;
   7836 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
   7837 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
   7838 typedef struct VkDisplayModeParametersKHR {
   7839     VkExtent2D    visibleRegion;
   7840     uint32_t      refreshRate;
   7841 } VkDisplayModeParametersKHR;
   7842 
   7843 typedef struct VkDisplayModeCreateInfoKHR {
   7844     VkStructureType                sType;
   7845     const void*                    pNext;
   7846     VkDisplayModeCreateFlagsKHR    flags;
   7847     VkDisplayModeParametersKHR     parameters;
   7848 } VkDisplayModeCreateInfoKHR;
   7849 
   7850 typedef struct VkDisplayModePropertiesKHR {
   7851     VkDisplayModeKHR              displayMode;
   7852     VkDisplayModeParametersKHR    parameters;
   7853 } VkDisplayModePropertiesKHR;
   7854 
   7855 typedef struct VkDisplayPlaneCapabilitiesKHR {
   7856     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
   7857     VkOffset2D                     minSrcPosition;
   7858     VkOffset2D                     maxSrcPosition;
   7859     VkExtent2D                     minSrcExtent;
   7860     VkExtent2D                     maxSrcExtent;
   7861     VkOffset2D                     minDstPosition;
   7862     VkOffset2D                     maxDstPosition;
   7863     VkExtent2D                     minDstExtent;
   7864     VkExtent2D                     maxDstExtent;
   7865 } VkDisplayPlaneCapabilitiesKHR;
   7866 
   7867 typedef struct VkDisplayPlanePropertiesKHR {
   7868     VkDisplayKHR    currentDisplay;
   7869     uint32_t        currentStackIndex;
   7870 } VkDisplayPlanePropertiesKHR;
   7871 
   7872 typedef struct VkDisplayPropertiesKHR {
   7873     VkDisplayKHR                  display;
   7874     const char*                   displayName;
   7875     VkExtent2D                    physicalDimensions;
   7876     VkExtent2D                    physicalResolution;
   7877     VkSurfaceTransformFlagsKHR    supportedTransforms;
   7878     VkBool32                      planeReorderPossible;
   7879     VkBool32                      persistentContent;
   7880 } VkDisplayPropertiesKHR;
   7881 
   7882 typedef struct VkDisplaySurfaceCreateInfoKHR {
   7883     VkStructureType                   sType;
   7884     const void*                       pNext;
   7885     VkDisplaySurfaceCreateFlagsKHR    flags;
   7886     VkDisplayModeKHR                  displayMode;
   7887     uint32_t                          planeIndex;
   7888     uint32_t                          planeStackIndex;
   7889     VkSurfaceTransformFlagBitsKHR     transform;
   7890     float                             globalAlpha;
   7891     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
   7892     VkExtent2D                        imageExtent;
   7893 } VkDisplaySurfaceCreateInfoKHR;
   7894 
   7895 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
   7896 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
   7897 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
   7898 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
   7899 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
   7900 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
   7901 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
   7902 
   7903 #ifndef VK_NO_PROTOTYPES
   7904 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
   7905     VkPhysicalDevice                            physicalDevice,
   7906     uint32_t*                                   pPropertyCount,
   7907     VkDisplayPropertiesKHR*                     pProperties);
   7908 
   7909 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
   7910     VkPhysicalDevice                            physicalDevice,
   7911     uint32_t*                                   pPropertyCount,
   7912     VkDisplayPlanePropertiesKHR*                pProperties);
   7913 
   7914 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
   7915     VkPhysicalDevice                            physicalDevice,
   7916     uint32_t                                    planeIndex,
   7917     uint32_t*                                   pDisplayCount,
   7918     VkDisplayKHR*                               pDisplays);
   7919 
   7920 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
   7921     VkPhysicalDevice                            physicalDevice,
   7922     VkDisplayKHR                                display,
   7923     uint32_t*                                   pPropertyCount,
   7924     VkDisplayModePropertiesKHR*                 pProperties);
   7925 
   7926 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
   7927     VkPhysicalDevice                            physicalDevice,
   7928     VkDisplayKHR                                display,
   7929     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
   7930     const VkAllocationCallbacks*                pAllocator,
   7931     VkDisplayModeKHR*                           pMode);
   7932 
   7933 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
   7934     VkPhysicalDevice                            physicalDevice,
   7935     VkDisplayModeKHR                            mode,
   7936     uint32_t                                    planeIndex,
   7937     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
   7938 
   7939 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
   7940     VkInstance                                  instance,
   7941     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
   7942     const VkAllocationCallbacks*                pAllocator,
   7943     VkSurfaceKHR*                               pSurface);
   7944 #endif
   7945 
   7946 
   7947 // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
   7948 #define VK_KHR_display_swapchain 1
   7949 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
   7950 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
   7951 typedef struct VkDisplayPresentInfoKHR {
   7952     VkStructureType    sType;
   7953     const void*        pNext;
   7954     VkRect2D           srcRect;
   7955     VkRect2D           dstRect;
   7956     VkBool32           persistent;
   7957 } VkDisplayPresentInfoKHR;
   7958 
   7959 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
   7960 
   7961 #ifndef VK_NO_PROTOTYPES
   7962 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
   7963     VkDevice                                    device,
   7964     uint32_t                                    swapchainCount,
   7965     const VkSwapchainCreateInfoKHR*             pCreateInfos,
   7966     const VkAllocationCallbacks*                pAllocator,
   7967     VkSwapchainKHR*                             pSwapchains);
   7968 #endif
   7969 
   7970 
   7971 // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
   7972 #define VK_KHR_sampler_mirror_clamp_to_edge 1
   7973 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
   7974 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
   7975 
   7976 
   7977 // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
   7978 #define VK_KHR_video_queue 1
   7979 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
   7980 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
   7981 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION   8
   7982 #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
   7983 
   7984 typedef enum VkQueryResultStatusKHR {
   7985     VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
   7986     VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
   7987     VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
   7988     VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
   7989     VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
   7990 } VkQueryResultStatusKHR;
   7991 
   7992 typedef enum VkVideoCodecOperationFlagBitsKHR {
   7993     VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
   7994     VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
   7995     VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
   7996     VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
   7997     VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
   7998     VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
   7999     VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8000 } VkVideoCodecOperationFlagBitsKHR;
   8001 typedef VkFlags VkVideoCodecOperationFlagsKHR;
   8002 
   8003 typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
   8004     VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
   8005     VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
   8006     VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
   8007     VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
   8008     VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
   8009     VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8010 } VkVideoChromaSubsamplingFlagBitsKHR;
   8011 typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
   8012 
   8013 typedef enum VkVideoComponentBitDepthFlagBitsKHR {
   8014     VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
   8015     VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
   8016     VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
   8017     VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
   8018     VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8019 } VkVideoComponentBitDepthFlagBitsKHR;
   8020 typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
   8021 
   8022 typedef enum VkVideoCapabilityFlagBitsKHR {
   8023     VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
   8024     VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
   8025     VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8026 } VkVideoCapabilityFlagBitsKHR;
   8027 typedef VkFlags VkVideoCapabilityFlagsKHR;
   8028 
   8029 typedef enum VkVideoSessionCreateFlagBitsKHR {
   8030     VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
   8031     VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
   8032     VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
   8033     VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8034 } VkVideoSessionCreateFlagBitsKHR;
   8035 typedef VkFlags VkVideoSessionCreateFlagsKHR;
   8036 typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
   8037 typedef VkFlags VkVideoBeginCodingFlagsKHR;
   8038 typedef VkFlags VkVideoEndCodingFlagsKHR;
   8039 
   8040 typedef enum VkVideoCodingControlFlagBitsKHR {
   8041     VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
   8042     VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
   8043     VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
   8044     VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8045 } VkVideoCodingControlFlagBitsKHR;
   8046 typedef VkFlags VkVideoCodingControlFlagsKHR;
   8047 typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
   8048     VkStructureType    sType;
   8049     void*              pNext;
   8050     VkBool32           queryResultStatusSupport;
   8051 } VkQueueFamilyQueryResultStatusPropertiesKHR;
   8052 
   8053 typedef struct VkQueueFamilyVideoPropertiesKHR {
   8054     VkStructureType                  sType;
   8055     void*                            pNext;
   8056     VkVideoCodecOperationFlagsKHR    videoCodecOperations;
   8057 } VkQueueFamilyVideoPropertiesKHR;
   8058 
   8059 typedef struct VkVideoProfileInfoKHR {
   8060     VkStructureType                     sType;
   8061     const void*                         pNext;
   8062     VkVideoCodecOperationFlagBitsKHR    videoCodecOperation;
   8063     VkVideoChromaSubsamplingFlagsKHR    chromaSubsampling;
   8064     VkVideoComponentBitDepthFlagsKHR    lumaBitDepth;
   8065     VkVideoComponentBitDepthFlagsKHR    chromaBitDepth;
   8066 } VkVideoProfileInfoKHR;
   8067 
   8068 typedef struct VkVideoProfileListInfoKHR {
   8069     VkStructureType                 sType;
   8070     const void*                     pNext;
   8071     uint32_t                        profileCount;
   8072     const VkVideoProfileInfoKHR*    pProfiles;
   8073 } VkVideoProfileListInfoKHR;
   8074 
   8075 typedef struct VkVideoCapabilitiesKHR {
   8076     VkStructureType              sType;
   8077     void*                        pNext;
   8078     VkVideoCapabilityFlagsKHR    flags;
   8079     VkDeviceSize                 minBitstreamBufferOffsetAlignment;
   8080     VkDeviceSize                 minBitstreamBufferSizeAlignment;
   8081     VkExtent2D                   pictureAccessGranularity;
   8082     VkExtent2D                   minCodedExtent;
   8083     VkExtent2D                   maxCodedExtent;
   8084     uint32_t                     maxDpbSlots;
   8085     uint32_t                     maxActiveReferencePictures;
   8086     VkExtensionProperties        stdHeaderVersion;
   8087 } VkVideoCapabilitiesKHR;
   8088 
   8089 typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
   8090     VkStructureType      sType;
   8091     const void*          pNext;
   8092     VkImageUsageFlags    imageUsage;
   8093 } VkPhysicalDeviceVideoFormatInfoKHR;
   8094 
   8095 typedef struct VkVideoFormatPropertiesKHR {
   8096     VkStructureType       sType;
   8097     void*                 pNext;
   8098     VkFormat              format;
   8099     VkComponentMapping    componentMapping;
   8100     VkImageCreateFlags    imageCreateFlags;
   8101     VkImageType           imageType;
   8102     VkImageTiling         imageTiling;
   8103     VkImageUsageFlags     imageUsageFlags;
   8104 } VkVideoFormatPropertiesKHR;
   8105 
   8106 typedef struct VkVideoPictureResourceInfoKHR {
   8107     VkStructureType    sType;
   8108     const void*        pNext;
   8109     VkOffset2D         codedOffset;
   8110     VkExtent2D         codedExtent;
   8111     uint32_t           baseArrayLayer;
   8112     VkImageView        imageViewBinding;
   8113 } VkVideoPictureResourceInfoKHR;
   8114 
   8115 typedef struct VkVideoReferenceSlotInfoKHR {
   8116     VkStructureType                         sType;
   8117     const void*                             pNext;
   8118     int32_t                                 slotIndex;
   8119     const VkVideoPictureResourceInfoKHR*    pPictureResource;
   8120 } VkVideoReferenceSlotInfoKHR;
   8121 
   8122 typedef struct VkVideoSessionMemoryRequirementsKHR {
   8123     VkStructureType         sType;
   8124     void*                   pNext;
   8125     uint32_t                memoryBindIndex;
   8126     VkMemoryRequirements    memoryRequirements;
   8127 } VkVideoSessionMemoryRequirementsKHR;
   8128 
   8129 typedef struct VkBindVideoSessionMemoryInfoKHR {
   8130     VkStructureType    sType;
   8131     const void*        pNext;
   8132     uint32_t           memoryBindIndex;
   8133     VkDeviceMemory     memory;
   8134     VkDeviceSize       memoryOffset;
   8135     VkDeviceSize       memorySize;
   8136 } VkBindVideoSessionMemoryInfoKHR;
   8137 
   8138 typedef struct VkVideoSessionCreateInfoKHR {
   8139     VkStructureType                 sType;
   8140     const void*                     pNext;
   8141     uint32_t                        queueFamilyIndex;
   8142     VkVideoSessionCreateFlagsKHR    flags;
   8143     const VkVideoProfileInfoKHR*    pVideoProfile;
   8144     VkFormat                        pictureFormat;
   8145     VkExtent2D                      maxCodedExtent;
   8146     VkFormat                        referencePictureFormat;
   8147     uint32_t                        maxDpbSlots;
   8148     uint32_t                        maxActiveReferencePictures;
   8149     const VkExtensionProperties*    pStdHeaderVersion;
   8150 } VkVideoSessionCreateInfoKHR;
   8151 
   8152 typedef struct VkVideoSessionParametersCreateInfoKHR {
   8153     VkStructureType                           sType;
   8154     const void*                               pNext;
   8155     VkVideoSessionParametersCreateFlagsKHR    flags;
   8156     VkVideoSessionParametersKHR               videoSessionParametersTemplate;
   8157     VkVideoSessionKHR                         videoSession;
   8158 } VkVideoSessionParametersCreateInfoKHR;
   8159 
   8160 typedef struct VkVideoSessionParametersUpdateInfoKHR {
   8161     VkStructureType    sType;
   8162     const void*        pNext;
   8163     uint32_t           updateSequenceCount;
   8164 } VkVideoSessionParametersUpdateInfoKHR;
   8165 
   8166 typedef struct VkVideoBeginCodingInfoKHR {
   8167     VkStructureType                       sType;
   8168     const void*                           pNext;
   8169     VkVideoBeginCodingFlagsKHR            flags;
   8170     VkVideoSessionKHR                     videoSession;
   8171     VkVideoSessionParametersKHR           videoSessionParameters;
   8172     uint32_t                              referenceSlotCount;
   8173     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
   8174 } VkVideoBeginCodingInfoKHR;
   8175 
   8176 typedef struct VkVideoEndCodingInfoKHR {
   8177     VkStructureType             sType;
   8178     const void*                 pNext;
   8179     VkVideoEndCodingFlagsKHR    flags;
   8180 } VkVideoEndCodingInfoKHR;
   8181 
   8182 typedef struct VkVideoCodingControlInfoKHR {
   8183     VkStructureType                 sType;
   8184     const void*                     pNext;
   8185     VkVideoCodingControlFlagsKHR    flags;
   8186 } VkVideoCodingControlInfoKHR;
   8187 
   8188 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
   8189 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
   8190 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
   8191 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
   8192 typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
   8193 typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
   8194 typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
   8195 typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
   8196 typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
   8197 typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
   8198 typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
   8199 typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
   8200 
   8201 #ifndef VK_NO_PROTOTYPES
   8202 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
   8203     VkPhysicalDevice                            physicalDevice,
   8204     const VkVideoProfileInfoKHR*                pVideoProfile,
   8205     VkVideoCapabilitiesKHR*                     pCapabilities);
   8206 
   8207 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
   8208     VkPhysicalDevice                            physicalDevice,
   8209     const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
   8210     uint32_t*                                   pVideoFormatPropertyCount,
   8211     VkVideoFormatPropertiesKHR*                 pVideoFormatProperties);
   8212 
   8213 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
   8214     VkDevice                                    device,
   8215     const VkVideoSessionCreateInfoKHR*          pCreateInfo,
   8216     const VkAllocationCallbacks*                pAllocator,
   8217     VkVideoSessionKHR*                          pVideoSession);
   8218 
   8219 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
   8220     VkDevice                                    device,
   8221     VkVideoSessionKHR                           videoSession,
   8222     const VkAllocationCallbacks*                pAllocator);
   8223 
   8224 VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
   8225     VkDevice                                    device,
   8226     VkVideoSessionKHR                           videoSession,
   8227     uint32_t*                                   pMemoryRequirementsCount,
   8228     VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements);
   8229 
   8230 VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
   8231     VkDevice                                    device,
   8232     VkVideoSessionKHR                           videoSession,
   8233     uint32_t                                    bindSessionMemoryInfoCount,
   8234     const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos);
   8235 
   8236 VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
   8237     VkDevice                                    device,
   8238     const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
   8239     const VkAllocationCallbacks*                pAllocator,
   8240     VkVideoSessionParametersKHR*                pVideoSessionParameters);
   8241 
   8242 VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
   8243     VkDevice                                    device,
   8244     VkVideoSessionParametersKHR                 videoSessionParameters,
   8245     const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
   8246 
   8247 VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
   8248     VkDevice                                    device,
   8249     VkVideoSessionParametersKHR                 videoSessionParameters,
   8250     const VkAllocationCallbacks*                pAllocator);
   8251 
   8252 VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
   8253     VkCommandBuffer                             commandBuffer,
   8254     const VkVideoBeginCodingInfoKHR*            pBeginInfo);
   8255 
   8256 VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
   8257     VkCommandBuffer                             commandBuffer,
   8258     const VkVideoEndCodingInfoKHR*              pEndCodingInfo);
   8259 
   8260 VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
   8261     VkCommandBuffer                             commandBuffer,
   8262     const VkVideoCodingControlInfoKHR*          pCodingControlInfo);
   8263 #endif
   8264 
   8265 
   8266 // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
   8267 #define VK_KHR_video_decode_queue 1
   8268 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
   8269 #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
   8270 
   8271 typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
   8272     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
   8273     VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
   8274     VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8275 } VkVideoDecodeCapabilityFlagBitsKHR;
   8276 typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
   8277 
   8278 typedef enum VkVideoDecodeUsageFlagBitsKHR {
   8279     VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
   8280     VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
   8281     VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
   8282     VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
   8283     VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8284 } VkVideoDecodeUsageFlagBitsKHR;
   8285 typedef VkFlags VkVideoDecodeUsageFlagsKHR;
   8286 typedef VkFlags VkVideoDecodeFlagsKHR;
   8287 typedef struct VkVideoDecodeCapabilitiesKHR {
   8288     VkStructureType                    sType;
   8289     void*                              pNext;
   8290     VkVideoDecodeCapabilityFlagsKHR    flags;
   8291 } VkVideoDecodeCapabilitiesKHR;
   8292 
   8293 typedef struct VkVideoDecodeUsageInfoKHR {
   8294     VkStructureType               sType;
   8295     const void*                   pNext;
   8296     VkVideoDecodeUsageFlagsKHR    videoUsageHints;
   8297 } VkVideoDecodeUsageInfoKHR;
   8298 
   8299 typedef struct VkVideoDecodeInfoKHR {
   8300     VkStructureType                       sType;
   8301     const void*                           pNext;
   8302     VkVideoDecodeFlagsKHR                 flags;
   8303     VkBuffer                              srcBuffer;
   8304     VkDeviceSize                          srcBufferOffset;
   8305     VkDeviceSize                          srcBufferRange;
   8306     VkVideoPictureResourceInfoKHR         dstPictureResource;
   8307     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
   8308     uint32_t                              referenceSlotCount;
   8309     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
   8310 } VkVideoDecodeInfoKHR;
   8311 
   8312 typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
   8313 
   8314 #ifndef VK_NO_PROTOTYPES
   8315 VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
   8316     VkCommandBuffer                             commandBuffer,
   8317     const VkVideoDecodeInfoKHR*                 pDecodeInfo);
   8318 #endif
   8319 
   8320 
   8321 // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
   8322 #define VK_KHR_video_encode_h264 1
   8323 #include "vk_video/vulkan_video_codec_h264std.h"
   8324 #include "vk_video/vulkan_video_codec_h264std_encode.h"
   8325 #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
   8326 #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
   8327 
   8328 typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
   8329     VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
   8330     VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
   8331     VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
   8332     VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
   8333     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
   8334     VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
   8335     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
   8336     VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
   8337     VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
   8338     VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8339 } VkVideoEncodeH264CapabilityFlagBitsKHR;
   8340 typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
   8341 
   8342 typedef enum VkVideoEncodeH264StdFlagBitsKHR {
   8343     VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
   8344     VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
   8345     VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
   8346     VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
   8347     VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
   8348     VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
   8349     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
   8350     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
   8351     VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
   8352     VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
   8353     VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
   8354     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
   8355     VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
   8356     VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
   8357     VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
   8358     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
   8359     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
   8360     VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
   8361     VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
   8362     VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
   8363     VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8364 } VkVideoEncodeH264StdFlagBitsKHR;
   8365 typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
   8366 
   8367 typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
   8368     VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
   8369     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
   8370     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
   8371     VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
   8372     VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
   8373     VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8374 } VkVideoEncodeH264RateControlFlagBitsKHR;
   8375 typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
   8376 typedef struct VkVideoEncodeH264CapabilitiesKHR {
   8377     VkStructureType                        sType;
   8378     void*                                  pNext;
   8379     VkVideoEncodeH264CapabilityFlagsKHR    flags;
   8380     StdVideoH264LevelIdc                   maxLevelIdc;
   8381     uint32_t                               maxSliceCount;
   8382     uint32_t                               maxPPictureL0ReferenceCount;
   8383     uint32_t                               maxBPictureL0ReferenceCount;
   8384     uint32_t                               maxL1ReferenceCount;
   8385     uint32_t                               maxTemporalLayerCount;
   8386     VkBool32                               expectDyadicTemporalLayerPattern;
   8387     int32_t                                minQp;
   8388     int32_t                                maxQp;
   8389     VkBool32                               prefersGopRemainingFrames;
   8390     VkBool32                               requiresGopRemainingFrames;
   8391     VkVideoEncodeH264StdFlagsKHR           stdSyntaxFlags;
   8392 } VkVideoEncodeH264CapabilitiesKHR;
   8393 
   8394 typedef struct VkVideoEncodeH264QpKHR {
   8395     int32_t    qpI;
   8396     int32_t    qpP;
   8397     int32_t    qpB;
   8398 } VkVideoEncodeH264QpKHR;
   8399 
   8400 typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
   8401     VkStructureType                         sType;
   8402     void*                                   pNext;
   8403     VkVideoEncodeH264RateControlFlagsKHR    preferredRateControlFlags;
   8404     uint32_t                                preferredGopFrameCount;
   8405     uint32_t                                preferredIdrPeriod;
   8406     uint32_t                                preferredConsecutiveBFrameCount;
   8407     uint32_t                                preferredTemporalLayerCount;
   8408     VkVideoEncodeH264QpKHR                  preferredConstantQp;
   8409     uint32_t                                preferredMaxL0ReferenceCount;
   8410     uint32_t                                preferredMaxL1ReferenceCount;
   8411     VkBool32                                preferredStdEntropyCodingModeFlag;
   8412 } VkVideoEncodeH264QualityLevelPropertiesKHR;
   8413 
   8414 typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
   8415     VkStructureType         sType;
   8416     const void*             pNext;
   8417     VkBool32                useMaxLevelIdc;
   8418     StdVideoH264LevelIdc    maxLevelIdc;
   8419 } VkVideoEncodeH264SessionCreateInfoKHR;
   8420 
   8421 typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
   8422     VkStructureType                            sType;
   8423     const void*                                pNext;
   8424     uint32_t                                   stdSPSCount;
   8425     const StdVideoH264SequenceParameterSet*    pStdSPSs;
   8426     uint32_t                                   stdPPSCount;
   8427     const StdVideoH264PictureParameterSet*     pStdPPSs;
   8428 } VkVideoEncodeH264SessionParametersAddInfoKHR;
   8429 
   8430 typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
   8431     VkStructureType                                        sType;
   8432     const void*                                            pNext;
   8433     uint32_t                                               maxStdSPSCount;
   8434     uint32_t                                               maxStdPPSCount;
   8435     const VkVideoEncodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
   8436 } VkVideoEncodeH264SessionParametersCreateInfoKHR;
   8437 
   8438 typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
   8439     VkStructureType    sType;
   8440     const void*        pNext;
   8441     VkBool32           writeStdSPS;
   8442     VkBool32           writeStdPPS;
   8443     uint32_t           stdSPSId;
   8444     uint32_t           stdPPSId;
   8445 } VkVideoEncodeH264SessionParametersGetInfoKHR;
   8446 
   8447 typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
   8448     VkStructureType    sType;
   8449     void*              pNext;
   8450     VkBool32           hasStdSPSOverrides;
   8451     VkBool32           hasStdPPSOverrides;
   8452 } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
   8453 
   8454 typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
   8455     VkStructureType                         sType;
   8456     const void*                             pNext;
   8457     int32_t                                 constantQp;
   8458     const StdVideoEncodeH264SliceHeader*    pStdSliceHeader;
   8459 } VkVideoEncodeH264NaluSliceInfoKHR;
   8460 
   8461 typedef struct VkVideoEncodeH264PictureInfoKHR {
   8462     VkStructureType                             sType;
   8463     const void*                                 pNext;
   8464     uint32_t                                    naluSliceEntryCount;
   8465     const VkVideoEncodeH264NaluSliceInfoKHR*    pNaluSliceEntries;
   8466     const StdVideoEncodeH264PictureInfo*        pStdPictureInfo;
   8467     VkBool32                                    generatePrefixNalu;
   8468 } VkVideoEncodeH264PictureInfoKHR;
   8469 
   8470 typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
   8471     VkStructureType                           sType;
   8472     const void*                               pNext;
   8473     const StdVideoEncodeH264ReferenceInfo*    pStdReferenceInfo;
   8474 } VkVideoEncodeH264DpbSlotInfoKHR;
   8475 
   8476 typedef struct VkVideoEncodeH264ProfileInfoKHR {
   8477     VkStructureType           sType;
   8478     const void*               pNext;
   8479     StdVideoH264ProfileIdc    stdProfileIdc;
   8480 } VkVideoEncodeH264ProfileInfoKHR;
   8481 
   8482 typedef struct VkVideoEncodeH264RateControlInfoKHR {
   8483     VkStructureType                         sType;
   8484     const void*                             pNext;
   8485     VkVideoEncodeH264RateControlFlagsKHR    flags;
   8486     uint32_t                                gopFrameCount;
   8487     uint32_t                                idrPeriod;
   8488     uint32_t                                consecutiveBFrameCount;
   8489     uint32_t                                temporalLayerCount;
   8490 } VkVideoEncodeH264RateControlInfoKHR;
   8491 
   8492 typedef struct VkVideoEncodeH264FrameSizeKHR {
   8493     uint32_t    frameISize;
   8494     uint32_t    framePSize;
   8495     uint32_t    frameBSize;
   8496 } VkVideoEncodeH264FrameSizeKHR;
   8497 
   8498 typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
   8499     VkStructureType                  sType;
   8500     const void*                      pNext;
   8501     VkBool32                         useMinQp;
   8502     VkVideoEncodeH264QpKHR           minQp;
   8503     VkBool32                         useMaxQp;
   8504     VkVideoEncodeH264QpKHR           maxQp;
   8505     VkBool32                         useMaxFrameSize;
   8506     VkVideoEncodeH264FrameSizeKHR    maxFrameSize;
   8507 } VkVideoEncodeH264RateControlLayerInfoKHR;
   8508 
   8509 typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
   8510     VkStructureType    sType;
   8511     const void*        pNext;
   8512     VkBool32           useGopRemainingFrames;
   8513     uint32_t           gopRemainingI;
   8514     uint32_t           gopRemainingP;
   8515     uint32_t           gopRemainingB;
   8516 } VkVideoEncodeH264GopRemainingFrameInfoKHR;
   8517 
   8518 
   8519 
   8520 // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
   8521 #define VK_KHR_video_encode_h265 1
   8522 #include "vk_video/vulkan_video_codec_h265std.h"
   8523 #include "vk_video/vulkan_video_codec_h265std_encode.h"
   8524 #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
   8525 #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
   8526 
   8527 typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
   8528     VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
   8529     VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
   8530     VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
   8531     VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
   8532     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
   8533     VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
   8534     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
   8535     VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
   8536     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
   8537     VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
   8538     VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8539 } VkVideoEncodeH265CapabilityFlagBitsKHR;
   8540 typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
   8541 
   8542 typedef enum VkVideoEncodeH265StdFlagBitsKHR {
   8543     VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
   8544     VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
   8545     VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
   8546     VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
   8547     VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
   8548     VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
   8549     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
   8550     VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
   8551     VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
   8552     VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
   8553     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
   8554     VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
   8555     VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
   8556     VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
   8557     VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
   8558     VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
   8559     VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
   8560     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
   8561     VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
   8562     VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
   8563     VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
   8564     VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8565 } VkVideoEncodeH265StdFlagBitsKHR;
   8566 typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
   8567 
   8568 typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
   8569     VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
   8570     VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
   8571     VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
   8572     VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8573 } VkVideoEncodeH265CtbSizeFlagBitsKHR;
   8574 typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
   8575 
   8576 typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
   8577     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
   8578     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
   8579     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
   8580     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
   8581     VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8582 } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
   8583 typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
   8584 
   8585 typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
   8586     VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
   8587     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
   8588     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
   8589     VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
   8590     VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
   8591     VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8592 } VkVideoEncodeH265RateControlFlagBitsKHR;
   8593 typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
   8594 typedef struct VkVideoEncodeH265CapabilitiesKHR {
   8595     VkStructureType                                sType;
   8596     void*                                          pNext;
   8597     VkVideoEncodeH265CapabilityFlagsKHR            flags;
   8598     StdVideoH265LevelIdc                           maxLevelIdc;
   8599     uint32_t                                       maxSliceSegmentCount;
   8600     VkExtent2D                                     maxTiles;
   8601     VkVideoEncodeH265CtbSizeFlagsKHR               ctbSizes;
   8602     VkVideoEncodeH265TransformBlockSizeFlagsKHR    transformBlockSizes;
   8603     uint32_t                                       maxPPictureL0ReferenceCount;
   8604     uint32_t                                       maxBPictureL0ReferenceCount;
   8605     uint32_t                                       maxL1ReferenceCount;
   8606     uint32_t                                       maxSubLayerCount;
   8607     VkBool32                                       expectDyadicTemporalSubLayerPattern;
   8608     int32_t                                        minQp;
   8609     int32_t                                        maxQp;
   8610     VkBool32                                       prefersGopRemainingFrames;
   8611     VkBool32                                       requiresGopRemainingFrames;
   8612     VkVideoEncodeH265StdFlagsKHR                   stdSyntaxFlags;
   8613 } VkVideoEncodeH265CapabilitiesKHR;
   8614 
   8615 typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
   8616     VkStructureType         sType;
   8617     const void*             pNext;
   8618     VkBool32                useMaxLevelIdc;
   8619     StdVideoH265LevelIdc    maxLevelIdc;
   8620 } VkVideoEncodeH265SessionCreateInfoKHR;
   8621 
   8622 typedef struct VkVideoEncodeH265QpKHR {
   8623     int32_t    qpI;
   8624     int32_t    qpP;
   8625     int32_t    qpB;
   8626 } VkVideoEncodeH265QpKHR;
   8627 
   8628 typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
   8629     VkStructureType                         sType;
   8630     void*                                   pNext;
   8631     VkVideoEncodeH265RateControlFlagsKHR    preferredRateControlFlags;
   8632     uint32_t                                preferredGopFrameCount;
   8633     uint32_t                                preferredIdrPeriod;
   8634     uint32_t                                preferredConsecutiveBFrameCount;
   8635     uint32_t                                preferredSubLayerCount;
   8636     VkVideoEncodeH265QpKHR                  preferredConstantQp;
   8637     uint32_t                                preferredMaxL0ReferenceCount;
   8638     uint32_t                                preferredMaxL1ReferenceCount;
   8639 } VkVideoEncodeH265QualityLevelPropertiesKHR;
   8640 
   8641 typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
   8642     VkStructureType                            sType;
   8643     const void*                                pNext;
   8644     uint32_t                                   stdVPSCount;
   8645     const StdVideoH265VideoParameterSet*       pStdVPSs;
   8646     uint32_t                                   stdSPSCount;
   8647     const StdVideoH265SequenceParameterSet*    pStdSPSs;
   8648     uint32_t                                   stdPPSCount;
   8649     const StdVideoH265PictureParameterSet*     pStdPPSs;
   8650 } VkVideoEncodeH265SessionParametersAddInfoKHR;
   8651 
   8652 typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
   8653     VkStructureType                                        sType;
   8654     const void*                                            pNext;
   8655     uint32_t                                               maxStdVPSCount;
   8656     uint32_t                                               maxStdSPSCount;
   8657     uint32_t                                               maxStdPPSCount;
   8658     const VkVideoEncodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
   8659 } VkVideoEncodeH265SessionParametersCreateInfoKHR;
   8660 
   8661 typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
   8662     VkStructureType    sType;
   8663     const void*        pNext;
   8664     VkBool32           writeStdVPS;
   8665     VkBool32           writeStdSPS;
   8666     VkBool32           writeStdPPS;
   8667     uint32_t           stdVPSId;
   8668     uint32_t           stdSPSId;
   8669     uint32_t           stdPPSId;
   8670 } VkVideoEncodeH265SessionParametersGetInfoKHR;
   8671 
   8672 typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
   8673     VkStructureType    sType;
   8674     void*              pNext;
   8675     VkBool32           hasStdVPSOverrides;
   8676     VkBool32           hasStdSPSOverrides;
   8677     VkBool32           hasStdPPSOverrides;
   8678 } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
   8679 
   8680 typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
   8681     VkStructureType                                sType;
   8682     const void*                                    pNext;
   8683     int32_t                                        constantQp;
   8684     const StdVideoEncodeH265SliceSegmentHeader*    pStdSliceSegmentHeader;
   8685 } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
   8686 
   8687 typedef struct VkVideoEncodeH265PictureInfoKHR {
   8688     VkStructureType                                    sType;
   8689     const void*                                        pNext;
   8690     uint32_t                                           naluSliceSegmentEntryCount;
   8691     const VkVideoEncodeH265NaluSliceSegmentInfoKHR*    pNaluSliceSegmentEntries;
   8692     const StdVideoEncodeH265PictureInfo*               pStdPictureInfo;
   8693 } VkVideoEncodeH265PictureInfoKHR;
   8694 
   8695 typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
   8696     VkStructureType                           sType;
   8697     const void*                               pNext;
   8698     const StdVideoEncodeH265ReferenceInfo*    pStdReferenceInfo;
   8699 } VkVideoEncodeH265DpbSlotInfoKHR;
   8700 
   8701 typedef struct VkVideoEncodeH265ProfileInfoKHR {
   8702     VkStructureType           sType;
   8703     const void*               pNext;
   8704     StdVideoH265ProfileIdc    stdProfileIdc;
   8705 } VkVideoEncodeH265ProfileInfoKHR;
   8706 
   8707 typedef struct VkVideoEncodeH265RateControlInfoKHR {
   8708     VkStructureType                         sType;
   8709     const void*                             pNext;
   8710     VkVideoEncodeH265RateControlFlagsKHR    flags;
   8711     uint32_t                                gopFrameCount;
   8712     uint32_t                                idrPeriod;
   8713     uint32_t                                consecutiveBFrameCount;
   8714     uint32_t                                subLayerCount;
   8715 } VkVideoEncodeH265RateControlInfoKHR;
   8716 
   8717 typedef struct VkVideoEncodeH265FrameSizeKHR {
   8718     uint32_t    frameISize;
   8719     uint32_t    framePSize;
   8720     uint32_t    frameBSize;
   8721 } VkVideoEncodeH265FrameSizeKHR;
   8722 
   8723 typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
   8724     VkStructureType                  sType;
   8725     const void*                      pNext;
   8726     VkBool32                         useMinQp;
   8727     VkVideoEncodeH265QpKHR           minQp;
   8728     VkBool32                         useMaxQp;
   8729     VkVideoEncodeH265QpKHR           maxQp;
   8730     VkBool32                         useMaxFrameSize;
   8731     VkVideoEncodeH265FrameSizeKHR    maxFrameSize;
   8732 } VkVideoEncodeH265RateControlLayerInfoKHR;
   8733 
   8734 typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
   8735     VkStructureType    sType;
   8736     const void*        pNext;
   8737     VkBool32           useGopRemainingFrames;
   8738     uint32_t           gopRemainingI;
   8739     uint32_t           gopRemainingP;
   8740     uint32_t           gopRemainingB;
   8741 } VkVideoEncodeH265GopRemainingFrameInfoKHR;
   8742 
   8743 
   8744 
   8745 // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
   8746 #define VK_KHR_video_decode_h264 1
   8747 #include "vk_video/vulkan_video_codec_h264std_decode.h"
   8748 #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
   8749 #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
   8750 
   8751 typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
   8752     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
   8753     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
   8754     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
   8755     VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   8756 } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
   8757 typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
   8758 typedef struct VkVideoDecodeH264ProfileInfoKHR {
   8759     VkStructureType                              sType;
   8760     const void*                                  pNext;
   8761     StdVideoH264ProfileIdc                       stdProfileIdc;
   8762     VkVideoDecodeH264PictureLayoutFlagBitsKHR    pictureLayout;
   8763 } VkVideoDecodeH264ProfileInfoKHR;
   8764 
   8765 typedef struct VkVideoDecodeH264CapabilitiesKHR {
   8766     VkStructureType         sType;
   8767     void*                   pNext;
   8768     StdVideoH264LevelIdc    maxLevelIdc;
   8769     VkOffset2D              fieldOffsetGranularity;
   8770 } VkVideoDecodeH264CapabilitiesKHR;
   8771 
   8772 typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
   8773     VkStructureType                            sType;
   8774     const void*                                pNext;
   8775     uint32_t                                   stdSPSCount;
   8776     const StdVideoH264SequenceParameterSet*    pStdSPSs;
   8777     uint32_t                                   stdPPSCount;
   8778     const StdVideoH264PictureParameterSet*     pStdPPSs;
   8779 } VkVideoDecodeH264SessionParametersAddInfoKHR;
   8780 
   8781 typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
   8782     VkStructureType                                        sType;
   8783     const void*                                            pNext;
   8784     uint32_t                                               maxStdSPSCount;
   8785     uint32_t                                               maxStdPPSCount;
   8786     const VkVideoDecodeH264SessionParametersAddInfoKHR*    pParametersAddInfo;
   8787 } VkVideoDecodeH264SessionParametersCreateInfoKHR;
   8788 
   8789 typedef struct VkVideoDecodeH264PictureInfoKHR {
   8790     VkStructureType                         sType;
   8791     const void*                             pNext;
   8792     const StdVideoDecodeH264PictureInfo*    pStdPictureInfo;
   8793     uint32_t                                sliceCount;
   8794     const uint32_t*                         pSliceOffsets;
   8795 } VkVideoDecodeH264PictureInfoKHR;
   8796 
   8797 typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
   8798     VkStructureType                           sType;
   8799     const void*                               pNext;
   8800     const StdVideoDecodeH264ReferenceInfo*    pStdReferenceInfo;
   8801 } VkVideoDecodeH264DpbSlotInfoKHR;
   8802 
   8803 
   8804 
   8805 // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
   8806 #define VK_KHR_dynamic_rendering 1
   8807 #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
   8808 #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
   8809 typedef VkRenderingFlags VkRenderingFlagsKHR;
   8810 
   8811 typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
   8812 
   8813 typedef VkRenderingInfo VkRenderingInfoKHR;
   8814 
   8815 typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
   8816 
   8817 typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
   8818 
   8819 typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
   8820 
   8821 typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
   8822 
   8823 typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
   8824     VkStructureType    sType;
   8825     const void*        pNext;
   8826     VkImageView        imageView;
   8827     VkImageLayout      imageLayout;
   8828     VkExtent2D         shadingRateAttachmentTexelSize;
   8829 } VkRenderingFragmentShadingRateAttachmentInfoKHR;
   8830 
   8831 typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
   8832     VkStructureType    sType;
   8833     const void*        pNext;
   8834     VkImageView        imageView;
   8835     VkImageLayout      imageLayout;
   8836 } VkRenderingFragmentDensityMapAttachmentInfoEXT;
   8837 
   8838 typedef struct VkAttachmentSampleCountInfoAMD {
   8839     VkStructureType                 sType;
   8840     const void*                     pNext;
   8841     uint32_t                        colorAttachmentCount;
   8842     const VkSampleCountFlagBits*    pColorAttachmentSamples;
   8843     VkSampleCountFlagBits           depthStencilAttachmentSamples;
   8844 } VkAttachmentSampleCountInfoAMD;
   8845 
   8846 typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
   8847 
   8848 typedef struct VkMultiviewPerViewAttributesInfoNVX {
   8849     VkStructureType    sType;
   8850     const void*        pNext;
   8851     VkBool32           perViewAttributes;
   8852     VkBool32           perViewAttributesPositionXOnly;
   8853 } VkMultiviewPerViewAttributesInfoNVX;
   8854 
   8855 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer                   commandBuffer, const VkRenderingInfo*                              pRenderingInfo);
   8856 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer                   commandBuffer);
   8857 
   8858 #ifndef VK_NO_PROTOTYPES
   8859 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
   8860     VkCommandBuffer                             commandBuffer,
   8861     const VkRenderingInfo*                      pRenderingInfo);
   8862 
   8863 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
   8864     VkCommandBuffer                             commandBuffer);
   8865 #endif
   8866 
   8867 
   8868 // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
   8869 #define VK_KHR_multiview 1
   8870 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
   8871 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
   8872 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
   8873 
   8874 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
   8875 
   8876 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
   8877 
   8878 
   8879 
   8880 // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
   8881 #define VK_KHR_get_physical_device_properties2 1
   8882 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
   8883 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
   8884 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
   8885 
   8886 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
   8887 
   8888 typedef VkFormatProperties2 VkFormatProperties2KHR;
   8889 
   8890 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
   8891 
   8892 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
   8893 
   8894 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
   8895 
   8896 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
   8897 
   8898 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
   8899 
   8900 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
   8901 
   8902 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
   8903 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
   8904 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
   8905 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
   8906 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
   8907 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
   8908 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
   8909 
   8910 #ifndef VK_NO_PROTOTYPES
   8911 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
   8912     VkPhysicalDevice                            physicalDevice,
   8913     VkPhysicalDeviceFeatures2*                  pFeatures);
   8914 
   8915 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
   8916     VkPhysicalDevice                            physicalDevice,
   8917     VkPhysicalDeviceProperties2*                pProperties);
   8918 
   8919 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
   8920     VkPhysicalDevice                            physicalDevice,
   8921     VkFormat                                    format,
   8922     VkFormatProperties2*                        pFormatProperties);
   8923 
   8924 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
   8925     VkPhysicalDevice                            physicalDevice,
   8926     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
   8927     VkImageFormatProperties2*                   pImageFormatProperties);
   8928 
   8929 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
   8930     VkPhysicalDevice                            physicalDevice,
   8931     uint32_t*                                   pQueueFamilyPropertyCount,
   8932     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
   8933 
   8934 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
   8935     VkPhysicalDevice                            physicalDevice,
   8936     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
   8937 
   8938 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
   8939     VkPhysicalDevice                            physicalDevice,
   8940     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
   8941     uint32_t*                                   pPropertyCount,
   8942     VkSparseImageFormatProperties2*             pProperties);
   8943 #endif
   8944 
   8945 
   8946 // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
   8947 #define VK_KHR_device_group 1
   8948 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
   8949 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
   8950 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
   8951 
   8952 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
   8953 
   8954 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
   8955 
   8956 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
   8957 
   8958 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
   8959 
   8960 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
   8961 
   8962 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
   8963 
   8964 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
   8965 
   8966 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
   8967 
   8968 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
   8969 
   8970 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
   8971 
   8972 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
   8973 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
   8974 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   8975 
   8976 #ifndef VK_NO_PROTOTYPES
   8977 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
   8978     VkDevice                                    device,
   8979     uint32_t                                    heapIndex,
   8980     uint32_t                                    localDeviceIndex,
   8981     uint32_t                                    remoteDeviceIndex,
   8982     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
   8983 
   8984 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
   8985     VkCommandBuffer                             commandBuffer,
   8986     uint32_t                                    deviceMask);
   8987 
   8988 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
   8989     VkCommandBuffer                             commandBuffer,
   8990     uint32_t                                    baseGroupX,
   8991     uint32_t                                    baseGroupY,
   8992     uint32_t                                    baseGroupZ,
   8993     uint32_t                                    groupCountX,
   8994     uint32_t                                    groupCountY,
   8995     uint32_t                                    groupCountZ);
   8996 #endif
   8997 
   8998 
   8999 // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
   9000 #define VK_KHR_shader_draw_parameters 1
   9001 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
   9002 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
   9003 
   9004 
   9005 // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
   9006 #define VK_KHR_maintenance1 1
   9007 #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
   9008 #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
   9009 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  VK_KHR_MAINTENANCE_1_SPEC_VERSION
   9010 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
   9011 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
   9012 
   9013 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
   9014 
   9015 #ifndef VK_NO_PROTOTYPES
   9016 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
   9017     VkDevice                                    device,
   9018     VkCommandPool                               commandPool,
   9019     VkCommandPoolTrimFlags                      flags);
   9020 #endif
   9021 
   9022 
   9023 // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
   9024 #define VK_KHR_device_group_creation 1
   9025 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
   9026 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
   9027 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
   9028 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
   9029 
   9030 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
   9031 
   9032 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
   9033 
   9034 #ifndef VK_NO_PROTOTYPES
   9035 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
   9036     VkInstance                                  instance,
   9037     uint32_t*                                   pPhysicalDeviceGroupCount,
   9038     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
   9039 #endif
   9040 
   9041 
   9042 // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
   9043 #define VK_KHR_external_memory_capabilities 1
   9044 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
   9045 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
   9046 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
   9047 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
   9048 
   9049 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
   9050 
   9051 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
   9052 
   9053 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
   9054 
   9055 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
   9056 
   9057 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
   9058 
   9059 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
   9060 
   9061 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
   9062 
   9063 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
   9064 
   9065 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
   9066 
   9067 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
   9068 
   9069 #ifndef VK_NO_PROTOTYPES
   9070 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
   9071     VkPhysicalDevice                            physicalDevice,
   9072     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
   9073     VkExternalBufferProperties*                 pExternalBufferProperties);
   9074 #endif
   9075 
   9076 
   9077 // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
   9078 #define VK_KHR_external_memory 1
   9079 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
   9080 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
   9081 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
   9082 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
   9083 
   9084 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
   9085 
   9086 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
   9087 
   9088 
   9089 
   9090 // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
   9091 #define VK_KHR_external_memory_fd 1
   9092 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
   9093 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
   9094 typedef struct VkImportMemoryFdInfoKHR {
   9095     VkStructureType                       sType;
   9096     const void*                           pNext;
   9097     VkExternalMemoryHandleTypeFlagBits    handleType;
   9098     int                                   fd;
   9099 } VkImportMemoryFdInfoKHR;
   9100 
   9101 typedef struct VkMemoryFdPropertiesKHR {
   9102     VkStructureType    sType;
   9103     void*              pNext;
   9104     uint32_t           memoryTypeBits;
   9105 } VkMemoryFdPropertiesKHR;
   9106 
   9107 typedef struct VkMemoryGetFdInfoKHR {
   9108     VkStructureType                       sType;
   9109     const void*                           pNext;
   9110     VkDeviceMemory                        memory;
   9111     VkExternalMemoryHandleTypeFlagBits    handleType;
   9112 } VkMemoryGetFdInfoKHR;
   9113 
   9114 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
   9115 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
   9116 
   9117 #ifndef VK_NO_PROTOTYPES
   9118 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
   9119     VkDevice                                    device,
   9120     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
   9121     int*                                        pFd);
   9122 
   9123 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
   9124     VkDevice                                    device,
   9125     VkExternalMemoryHandleTypeFlagBits          handleType,
   9126     int                                         fd,
   9127     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
   9128 #endif
   9129 
   9130 
   9131 // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
   9132 #define VK_KHR_external_semaphore_capabilities 1
   9133 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
   9134 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
   9135 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
   9136 
   9137 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
   9138 
   9139 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
   9140 
   9141 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
   9142 
   9143 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
   9144 
   9145 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
   9146 
   9147 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
   9148 
   9149 #ifndef VK_NO_PROTOTYPES
   9150 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
   9151     VkPhysicalDevice                            physicalDevice,
   9152     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
   9153     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
   9154 #endif
   9155 
   9156 
   9157 // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
   9158 #define VK_KHR_external_semaphore 1
   9159 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
   9160 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
   9161 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
   9162 
   9163 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
   9164 
   9165 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
   9166 
   9167 
   9168 
   9169 // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
   9170 #define VK_KHR_external_semaphore_fd 1
   9171 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
   9172 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
   9173 typedef struct VkImportSemaphoreFdInfoKHR {
   9174     VkStructureType                          sType;
   9175     const void*                              pNext;
   9176     VkSemaphore                              semaphore;
   9177     VkSemaphoreImportFlags                   flags;
   9178     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   9179     int                                      fd;
   9180 } VkImportSemaphoreFdInfoKHR;
   9181 
   9182 typedef struct VkSemaphoreGetFdInfoKHR {
   9183     VkStructureType                          sType;
   9184     const void*                              pNext;
   9185     VkSemaphore                              semaphore;
   9186     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   9187 } VkSemaphoreGetFdInfoKHR;
   9188 
   9189 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
   9190 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
   9191 
   9192 #ifndef VK_NO_PROTOTYPES
   9193 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
   9194     VkDevice                                    device,
   9195     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
   9196 
   9197 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
   9198     VkDevice                                    device,
   9199     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
   9200     int*                                        pFd);
   9201 #endif
   9202 
   9203 
   9204 // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
   9205 #define VK_KHR_push_descriptor 1
   9206 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
   9207 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
   9208 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
   9209     VkStructureType    sType;
   9210     void*              pNext;
   9211     uint32_t           maxPushDescriptors;
   9212 } VkPhysicalDevicePushDescriptorPropertiesKHR;
   9213 
   9214 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
   9215 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
   9216 
   9217 #ifndef VK_NO_PROTOTYPES
   9218 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
   9219     VkCommandBuffer                             commandBuffer,
   9220     VkPipelineBindPoint                         pipelineBindPoint,
   9221     VkPipelineLayout                            layout,
   9222     uint32_t                                    set,
   9223     uint32_t                                    descriptorWriteCount,
   9224     const VkWriteDescriptorSet*                 pDescriptorWrites);
   9225 
   9226 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
   9227     VkCommandBuffer                             commandBuffer,
   9228     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   9229     VkPipelineLayout                            layout,
   9230     uint32_t                                    set,
   9231     const void*                                 pData);
   9232 #endif
   9233 
   9234 
   9235 // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
   9236 #define VK_KHR_shader_float16_int8 1
   9237 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
   9238 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
   9239 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
   9240 
   9241 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
   9242 
   9243 
   9244 
   9245 // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
   9246 #define VK_KHR_16bit_storage 1
   9247 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
   9248 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
   9249 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
   9250 
   9251 
   9252 
   9253 // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
   9254 #define VK_KHR_incremental_present 1
   9255 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
   9256 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
   9257 typedef struct VkRectLayerKHR {
   9258     VkOffset2D    offset;
   9259     VkExtent2D    extent;
   9260     uint32_t      layer;
   9261 } VkRectLayerKHR;
   9262 
   9263 typedef struct VkPresentRegionKHR {
   9264     uint32_t                 rectangleCount;
   9265     const VkRectLayerKHR*    pRectangles;
   9266 } VkPresentRegionKHR;
   9267 
   9268 typedef struct VkPresentRegionsKHR {
   9269     VkStructureType              sType;
   9270     const void*                  pNext;
   9271     uint32_t                     swapchainCount;
   9272     const VkPresentRegionKHR*    pRegions;
   9273 } VkPresentRegionsKHR;
   9274 
   9275 
   9276 
   9277 // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
   9278 #define VK_KHR_descriptor_update_template 1
   9279 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
   9280 
   9281 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
   9282 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
   9283 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
   9284 
   9285 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
   9286 
   9287 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
   9288 
   9289 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
   9290 
   9291 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
   9292 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
   9293 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
   9294 
   9295 #ifndef VK_NO_PROTOTYPES
   9296 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
   9297     VkDevice                                    device,
   9298     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
   9299     const VkAllocationCallbacks*                pAllocator,
   9300     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
   9301 
   9302 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
   9303     VkDevice                                    device,
   9304     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   9305     const VkAllocationCallbacks*                pAllocator);
   9306 
   9307 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
   9308     VkDevice                                    device,
   9309     VkDescriptorSet                             descriptorSet,
   9310     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   9311     const void*                                 pData);
   9312 #endif
   9313 
   9314 
   9315 // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
   9316 #define VK_KHR_imageless_framebuffer 1
   9317 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
   9318 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
   9319 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
   9320 
   9321 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
   9322 
   9323 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
   9324 
   9325 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
   9326 
   9327 
   9328 
   9329 // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
   9330 #define VK_KHR_create_renderpass2 1
   9331 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
   9332 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
   9333 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
   9334 
   9335 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
   9336 
   9337 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
   9338 
   9339 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
   9340 
   9341 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
   9342 
   9343 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
   9344 
   9345 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
   9346 
   9347 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   9348 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
   9349 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
   9350 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
   9351 
   9352 #ifndef VK_NO_PROTOTYPES
   9353 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
   9354     VkDevice                                    device,
   9355     const VkRenderPassCreateInfo2*              pCreateInfo,
   9356     const VkAllocationCallbacks*                pAllocator,
   9357     VkRenderPass*                               pRenderPass);
   9358 
   9359 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
   9360     VkCommandBuffer                             commandBuffer,
   9361     const VkRenderPassBeginInfo*                pRenderPassBegin,
   9362     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
   9363 
   9364 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
   9365     VkCommandBuffer                             commandBuffer,
   9366     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
   9367     const VkSubpassEndInfo*                     pSubpassEndInfo);
   9368 
   9369 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
   9370     VkCommandBuffer                             commandBuffer,
   9371     const VkSubpassEndInfo*                     pSubpassEndInfo);
   9372 #endif
   9373 
   9374 
   9375 // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
   9376 #define VK_KHR_shared_presentable_image 1
   9377 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
   9378 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
   9379 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
   9380     VkStructureType      sType;
   9381     void*                pNext;
   9382     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
   9383 } VkSharedPresentSurfaceCapabilitiesKHR;
   9384 
   9385 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
   9386 
   9387 #ifndef VK_NO_PROTOTYPES
   9388 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
   9389     VkDevice                                    device,
   9390     VkSwapchainKHR                              swapchain);
   9391 #endif
   9392 
   9393 
   9394 // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
   9395 #define VK_KHR_external_fence_capabilities 1
   9396 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
   9397 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
   9398 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
   9399 
   9400 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
   9401 
   9402 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
   9403 
   9404 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
   9405 
   9406 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
   9407 
   9408 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
   9409 
   9410 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
   9411 
   9412 #ifndef VK_NO_PROTOTYPES
   9413 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
   9414     VkPhysicalDevice                            physicalDevice,
   9415     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
   9416     VkExternalFenceProperties*                  pExternalFenceProperties);
   9417 #endif
   9418 
   9419 
   9420 // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
   9421 #define VK_KHR_external_fence 1
   9422 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
   9423 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
   9424 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
   9425 
   9426 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
   9427 
   9428 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
   9429 
   9430 
   9431 
   9432 // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
   9433 #define VK_KHR_external_fence_fd 1
   9434 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
   9435 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
   9436 typedef struct VkImportFenceFdInfoKHR {
   9437     VkStructureType                      sType;
   9438     const void*                          pNext;
   9439     VkFence                              fence;
   9440     VkFenceImportFlags                   flags;
   9441     VkExternalFenceHandleTypeFlagBits    handleType;
   9442     int                                  fd;
   9443 } VkImportFenceFdInfoKHR;
   9444 
   9445 typedef struct VkFenceGetFdInfoKHR {
   9446     VkStructureType                      sType;
   9447     const void*                          pNext;
   9448     VkFence                              fence;
   9449     VkExternalFenceHandleTypeFlagBits    handleType;
   9450 } VkFenceGetFdInfoKHR;
   9451 
   9452 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
   9453 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
   9454 
   9455 #ifndef VK_NO_PROTOTYPES
   9456 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
   9457     VkDevice                                    device,
   9458     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
   9459 
   9460 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
   9461     VkDevice                                    device,
   9462     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
   9463     int*                                        pFd);
   9464 #endif
   9465 
   9466 
   9467 // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
   9468 #define VK_KHR_performance_query 1
   9469 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
   9470 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
   9471 
   9472 typedef enum VkPerformanceCounterUnitKHR {
   9473     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
   9474     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
   9475     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
   9476     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
   9477     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
   9478     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
   9479     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
   9480     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
   9481     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
   9482     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
   9483     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
   9484     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
   9485 } VkPerformanceCounterUnitKHR;
   9486 
   9487 typedef enum VkPerformanceCounterScopeKHR {
   9488     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
   9489     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
   9490     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
   9491     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
   9492     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
   9493     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
   9494     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
   9495 } VkPerformanceCounterScopeKHR;
   9496 
   9497 typedef enum VkPerformanceCounterStorageKHR {
   9498     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
   9499     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
   9500     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
   9501     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
   9502     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
   9503     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
   9504     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
   9505 } VkPerformanceCounterStorageKHR;
   9506 
   9507 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
   9508     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
   9509     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
   9510     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
   9511     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
   9512     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   9513 } VkPerformanceCounterDescriptionFlagBitsKHR;
   9514 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
   9515 
   9516 typedef enum VkAcquireProfilingLockFlagBitsKHR {
   9517     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   9518 } VkAcquireProfilingLockFlagBitsKHR;
   9519 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
   9520 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
   9521     VkStructureType    sType;
   9522     void*              pNext;
   9523     VkBool32           performanceCounterQueryPools;
   9524     VkBool32           performanceCounterMultipleQueryPools;
   9525 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
   9526 
   9527 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
   9528     VkStructureType    sType;
   9529     void*              pNext;
   9530     VkBool32           allowCommandBufferQueryCopies;
   9531 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
   9532 
   9533 typedef struct VkPerformanceCounterKHR {
   9534     VkStructureType                   sType;
   9535     void*                             pNext;
   9536     VkPerformanceCounterUnitKHR       unit;
   9537     VkPerformanceCounterScopeKHR      scope;
   9538     VkPerformanceCounterStorageKHR    storage;
   9539     uint8_t                           uuid[VK_UUID_SIZE];
   9540 } VkPerformanceCounterKHR;
   9541 
   9542 typedef struct VkPerformanceCounterDescriptionKHR {
   9543     VkStructureType                            sType;
   9544     void*                                      pNext;
   9545     VkPerformanceCounterDescriptionFlagsKHR    flags;
   9546     char                                       name[VK_MAX_DESCRIPTION_SIZE];
   9547     char                                       category[VK_MAX_DESCRIPTION_SIZE];
   9548     char                                       description[VK_MAX_DESCRIPTION_SIZE];
   9549 } VkPerformanceCounterDescriptionKHR;
   9550 
   9551 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
   9552     VkStructureType    sType;
   9553     const void*        pNext;
   9554     uint32_t           queueFamilyIndex;
   9555     uint32_t           counterIndexCount;
   9556     const uint32_t*    pCounterIndices;
   9557 } VkQueryPoolPerformanceCreateInfoKHR;
   9558 
   9559 typedef union VkPerformanceCounterResultKHR {
   9560     int32_t     int32;
   9561     int64_t     int64;
   9562     uint32_t    uint32;
   9563     uint64_t    uint64;
   9564     float       float32;
   9565     double      float64;
   9566 } VkPerformanceCounterResultKHR;
   9567 
   9568 typedef struct VkAcquireProfilingLockInfoKHR {
   9569     VkStructureType                   sType;
   9570     const void*                       pNext;
   9571     VkAcquireProfilingLockFlagsKHR    flags;
   9572     uint64_t                          timeout;
   9573 } VkAcquireProfilingLockInfoKHR;
   9574 
   9575 typedef struct VkPerformanceQuerySubmitInfoKHR {
   9576     VkStructureType    sType;
   9577     const void*        pNext;
   9578     uint32_t           counterPassIndex;
   9579 } VkPerformanceQuerySubmitInfoKHR;
   9580 
   9581 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
   9582 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
   9583 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
   9584 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
   9585 
   9586 #ifndef VK_NO_PROTOTYPES
   9587 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
   9588     VkPhysicalDevice                            physicalDevice,
   9589     uint32_t                                    queueFamilyIndex,
   9590     uint32_t*                                   pCounterCount,
   9591     VkPerformanceCounterKHR*                    pCounters,
   9592     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
   9593 
   9594 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
   9595     VkPhysicalDevice                            physicalDevice,
   9596     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
   9597     uint32_t*                                   pNumPasses);
   9598 
   9599 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
   9600     VkDevice                                    device,
   9601     const VkAcquireProfilingLockInfoKHR*        pInfo);
   9602 
   9603 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
   9604     VkDevice                                    device);
   9605 #endif
   9606 
   9607 
   9608 // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
   9609 #define VK_KHR_maintenance2 1
   9610 #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
   9611 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
   9612 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  VK_KHR_MAINTENANCE_2_SPEC_VERSION
   9613 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
   9614 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
   9615 
   9616 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
   9617 
   9618 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
   9619 
   9620 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
   9621 
   9622 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
   9623 
   9624 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
   9625 
   9626 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
   9627 
   9628 
   9629 
   9630 // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
   9631 #define VK_KHR_get_surface_capabilities2 1
   9632 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
   9633 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
   9634 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
   9635     VkStructureType    sType;
   9636     const void*        pNext;
   9637     VkSurfaceKHR       surface;
   9638 } VkPhysicalDeviceSurfaceInfo2KHR;
   9639 
   9640 typedef struct VkSurfaceCapabilities2KHR {
   9641     VkStructureType             sType;
   9642     void*                       pNext;
   9643     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
   9644 } VkSurfaceCapabilities2KHR;
   9645 
   9646 typedef struct VkSurfaceFormat2KHR {
   9647     VkStructureType       sType;
   9648     void*                 pNext;
   9649     VkSurfaceFormatKHR    surfaceFormat;
   9650 } VkSurfaceFormat2KHR;
   9651 
   9652 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
   9653 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
   9654 
   9655 #ifndef VK_NO_PROTOTYPES
   9656 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
   9657     VkPhysicalDevice                            physicalDevice,
   9658     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
   9659     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
   9660 
   9661 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
   9662     VkPhysicalDevice                            physicalDevice,
   9663     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
   9664     uint32_t*                                   pSurfaceFormatCount,
   9665     VkSurfaceFormat2KHR*                        pSurfaceFormats);
   9666 #endif
   9667 
   9668 
   9669 // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
   9670 #define VK_KHR_variable_pointers 1
   9671 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
   9672 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
   9673 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
   9674 
   9675 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
   9676 
   9677 
   9678 
   9679 // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
   9680 #define VK_KHR_get_display_properties2 1
   9681 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
   9682 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
   9683 typedef struct VkDisplayProperties2KHR {
   9684     VkStructureType           sType;
   9685     void*                     pNext;
   9686     VkDisplayPropertiesKHR    displayProperties;
   9687 } VkDisplayProperties2KHR;
   9688 
   9689 typedef struct VkDisplayPlaneProperties2KHR {
   9690     VkStructureType                sType;
   9691     void*                          pNext;
   9692     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
   9693 } VkDisplayPlaneProperties2KHR;
   9694 
   9695 typedef struct VkDisplayModeProperties2KHR {
   9696     VkStructureType               sType;
   9697     void*                         pNext;
   9698     VkDisplayModePropertiesKHR    displayModeProperties;
   9699 } VkDisplayModeProperties2KHR;
   9700 
   9701 typedef struct VkDisplayPlaneInfo2KHR {
   9702     VkStructureType     sType;
   9703     const void*         pNext;
   9704     VkDisplayModeKHR    mode;
   9705     uint32_t            planeIndex;
   9706 } VkDisplayPlaneInfo2KHR;
   9707 
   9708 typedef struct VkDisplayPlaneCapabilities2KHR {
   9709     VkStructureType                  sType;
   9710     void*                            pNext;
   9711     VkDisplayPlaneCapabilitiesKHR    capabilities;
   9712 } VkDisplayPlaneCapabilities2KHR;
   9713 
   9714 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
   9715 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
   9716 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
   9717 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
   9718 
   9719 #ifndef VK_NO_PROTOTYPES
   9720 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
   9721     VkPhysicalDevice                            physicalDevice,
   9722     uint32_t*                                   pPropertyCount,
   9723     VkDisplayProperties2KHR*                    pProperties);
   9724 
   9725 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
   9726     VkPhysicalDevice                            physicalDevice,
   9727     uint32_t*                                   pPropertyCount,
   9728     VkDisplayPlaneProperties2KHR*               pProperties);
   9729 
   9730 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
   9731     VkPhysicalDevice                            physicalDevice,
   9732     VkDisplayKHR                                display,
   9733     uint32_t*                                   pPropertyCount,
   9734     VkDisplayModeProperties2KHR*                pProperties);
   9735 
   9736 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
   9737     VkPhysicalDevice                            physicalDevice,
   9738     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
   9739     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
   9740 #endif
   9741 
   9742 
   9743 // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
   9744 #define VK_KHR_dedicated_allocation 1
   9745 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
   9746 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
   9747 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
   9748 
   9749 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
   9750 
   9751 
   9752 
   9753 // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
   9754 #define VK_KHR_storage_buffer_storage_class 1
   9755 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
   9756 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
   9757 
   9758 
   9759 // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
   9760 #define VK_KHR_relaxed_block_layout 1
   9761 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
   9762 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
   9763 
   9764 
   9765 // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
   9766 #define VK_KHR_get_memory_requirements2 1
   9767 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
   9768 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
   9769 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
   9770 
   9771 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
   9772 
   9773 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
   9774 
   9775 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
   9776 
   9777 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
   9778 
   9779 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   9780 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   9781 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
   9782 
   9783 #ifndef VK_NO_PROTOTYPES
   9784 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
   9785     VkDevice                                    device,
   9786     const VkImageMemoryRequirementsInfo2*       pInfo,
   9787     VkMemoryRequirements2*                      pMemoryRequirements);
   9788 
   9789 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
   9790     VkDevice                                    device,
   9791     const VkBufferMemoryRequirementsInfo2*      pInfo,
   9792     VkMemoryRequirements2*                      pMemoryRequirements);
   9793 
   9794 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
   9795     VkDevice                                    device,
   9796     const VkImageSparseMemoryRequirementsInfo2* pInfo,
   9797     uint32_t*                                   pSparseMemoryRequirementCount,
   9798     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
   9799 #endif
   9800 
   9801 
   9802 // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
   9803 #define VK_KHR_image_format_list 1
   9804 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
   9805 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
   9806 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
   9807 
   9808 
   9809 
   9810 // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
   9811 #define VK_KHR_sampler_ycbcr_conversion 1
   9812 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
   9813 
   9814 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
   9815 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
   9816 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
   9817 
   9818 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
   9819 
   9820 typedef VkChromaLocation VkChromaLocationKHR;
   9821 
   9822 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
   9823 
   9824 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
   9825 
   9826 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
   9827 
   9828 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
   9829 
   9830 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
   9831 
   9832 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
   9833 
   9834 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
   9835 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
   9836 
   9837 #ifndef VK_NO_PROTOTYPES
   9838 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
   9839     VkDevice                                    device,
   9840     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
   9841     const VkAllocationCallbacks*                pAllocator,
   9842     VkSamplerYcbcrConversion*                   pYcbcrConversion);
   9843 
   9844 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
   9845     VkDevice                                    device,
   9846     VkSamplerYcbcrConversion                    ycbcrConversion,
   9847     const VkAllocationCallbacks*                pAllocator);
   9848 #endif
   9849 
   9850 
   9851 // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
   9852 #define VK_KHR_bind_memory2 1
   9853 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
   9854 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
   9855 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
   9856 
   9857 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
   9858 
   9859 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
   9860 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
   9861 
   9862 #ifndef VK_NO_PROTOTYPES
   9863 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
   9864     VkDevice                                    device,
   9865     uint32_t                                    bindInfoCount,
   9866     const VkBindBufferMemoryInfo*               pBindInfos);
   9867 
   9868 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
   9869     VkDevice                                    device,
   9870     uint32_t                                    bindInfoCount,
   9871     const VkBindImageMemoryInfo*                pBindInfos);
   9872 #endif
   9873 
   9874 
   9875 // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
   9876 #define VK_KHR_maintenance3 1
   9877 #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
   9878 #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
   9879 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  VK_KHR_MAINTENANCE_3_SPEC_VERSION
   9880 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
   9881 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
   9882 
   9883 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
   9884 
   9885 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
   9886 
   9887 #ifndef VK_NO_PROTOTYPES
   9888 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
   9889     VkDevice                                    device,
   9890     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   9891     VkDescriptorSetLayoutSupport*               pSupport);
   9892 #endif
   9893 
   9894 
   9895 // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
   9896 #define VK_KHR_draw_indirect_count 1
   9897 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
   9898 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
   9899 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   9900 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   9901 
   9902 #ifndef VK_NO_PROTOTYPES
   9903 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
   9904     VkCommandBuffer                             commandBuffer,
   9905     VkBuffer                                    buffer,
   9906     VkDeviceSize                                offset,
   9907     VkBuffer                                    countBuffer,
   9908     VkDeviceSize                                countBufferOffset,
   9909     uint32_t                                    maxDrawCount,
   9910     uint32_t                                    stride);
   9911 
   9912 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
   9913     VkCommandBuffer                             commandBuffer,
   9914     VkBuffer                                    buffer,
   9915     VkDeviceSize                                offset,
   9916     VkBuffer                                    countBuffer,
   9917     VkDeviceSize                                countBufferOffset,
   9918     uint32_t                                    maxDrawCount,
   9919     uint32_t                                    stride);
   9920 #endif
   9921 
   9922 
   9923 // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
   9924 #define VK_KHR_shader_subgroup_extended_types 1
   9925 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
   9926 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
   9927 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
   9928 
   9929 
   9930 
   9931 // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
   9932 #define VK_KHR_8bit_storage 1
   9933 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
   9934 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
   9935 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
   9936 
   9937 
   9938 
   9939 // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
   9940 #define VK_KHR_shader_atomic_int64 1
   9941 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
   9942 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
   9943 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
   9944 
   9945 
   9946 
   9947 // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
   9948 #define VK_KHR_shader_clock 1
   9949 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
   9950 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
   9951 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
   9952     VkStructureType    sType;
   9953     void*              pNext;
   9954     VkBool32           shaderSubgroupClock;
   9955     VkBool32           shaderDeviceClock;
   9956 } VkPhysicalDeviceShaderClockFeaturesKHR;
   9957 
   9958 
   9959 
   9960 // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
   9961 #define VK_KHR_video_decode_h265 1
   9962 #include "vk_video/vulkan_video_codec_h265std_decode.h"
   9963 #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
   9964 #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
   9965 typedef struct VkVideoDecodeH265ProfileInfoKHR {
   9966     VkStructureType           sType;
   9967     const void*               pNext;
   9968     StdVideoH265ProfileIdc    stdProfileIdc;
   9969 } VkVideoDecodeH265ProfileInfoKHR;
   9970 
   9971 typedef struct VkVideoDecodeH265CapabilitiesKHR {
   9972     VkStructureType         sType;
   9973     void*                   pNext;
   9974     StdVideoH265LevelIdc    maxLevelIdc;
   9975 } VkVideoDecodeH265CapabilitiesKHR;
   9976 
   9977 typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
   9978     VkStructureType                            sType;
   9979     const void*                                pNext;
   9980     uint32_t                                   stdVPSCount;
   9981     const StdVideoH265VideoParameterSet*       pStdVPSs;
   9982     uint32_t                                   stdSPSCount;
   9983     const StdVideoH265SequenceParameterSet*    pStdSPSs;
   9984     uint32_t                                   stdPPSCount;
   9985     const StdVideoH265PictureParameterSet*     pStdPPSs;
   9986 } VkVideoDecodeH265SessionParametersAddInfoKHR;
   9987 
   9988 typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
   9989     VkStructureType                                        sType;
   9990     const void*                                            pNext;
   9991     uint32_t                                               maxStdVPSCount;
   9992     uint32_t                                               maxStdSPSCount;
   9993     uint32_t                                               maxStdPPSCount;
   9994     const VkVideoDecodeH265SessionParametersAddInfoKHR*    pParametersAddInfo;
   9995 } VkVideoDecodeH265SessionParametersCreateInfoKHR;
   9996 
   9997 typedef struct VkVideoDecodeH265PictureInfoKHR {
   9998     VkStructureType                         sType;
   9999     const void*                             pNext;
  10000     const StdVideoDecodeH265PictureInfo*    pStdPictureInfo;
  10001     uint32_t                                sliceSegmentCount;
  10002     const uint32_t*                         pSliceSegmentOffsets;
  10003 } VkVideoDecodeH265PictureInfoKHR;
  10004 
  10005 typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
  10006     VkStructureType                           sType;
  10007     const void*                               pNext;
  10008     const StdVideoDecodeH265ReferenceInfo*    pStdReferenceInfo;
  10009 } VkVideoDecodeH265DpbSlotInfoKHR;
  10010 
  10011 
  10012 
  10013 // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
  10014 #define VK_KHR_global_priority 1
  10015 #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR   16U
  10016 #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
  10017 #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
  10018 
  10019 typedef enum VkQueueGlobalPriorityKHR {
  10020     VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
  10021     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
  10022     VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
  10023     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
  10024     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
  10025     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
  10026     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
  10027     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
  10028     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
  10029 } VkQueueGlobalPriorityKHR;
  10030 typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
  10031     VkStructureType             sType;
  10032     const void*                 pNext;
  10033     VkQueueGlobalPriorityKHR    globalPriority;
  10034 } VkDeviceQueueGlobalPriorityCreateInfoKHR;
  10035 
  10036 typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
  10037     VkStructureType    sType;
  10038     void*              pNext;
  10039     VkBool32           globalPriorityQuery;
  10040 } VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  10041 
  10042 typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
  10043     VkStructureType             sType;
  10044     void*                       pNext;
  10045     uint32_t                    priorityCount;
  10046     VkQueueGlobalPriorityKHR    priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
  10047 } VkQueueFamilyGlobalPriorityPropertiesKHR;
  10048 
  10049 
  10050 
  10051 // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
  10052 #define VK_KHR_driver_properties 1
  10053 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
  10054 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
  10055 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
  10056 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
  10057 typedef VkDriverId VkDriverIdKHR;
  10058 
  10059 typedef VkConformanceVersion VkConformanceVersionKHR;
  10060 
  10061 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
  10062 
  10063 
  10064 
  10065 // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
  10066 #define VK_KHR_shader_float_controls 1
  10067 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
  10068 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
  10069 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
  10070 
  10071 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
  10072 
  10073 
  10074 
  10075 // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
  10076 #define VK_KHR_depth_stencil_resolve 1
  10077 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
  10078 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
  10079 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
  10080 
  10081 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
  10082 
  10083 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
  10084 
  10085 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
  10086 
  10087 
  10088 
  10089 // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
  10090 #define VK_KHR_swapchain_mutable_format 1
  10091 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
  10092 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
  10093 
  10094 
  10095 // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
  10096 #define VK_KHR_timeline_semaphore 1
  10097 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
  10098 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
  10099 typedef VkSemaphoreType VkSemaphoreTypeKHR;
  10100 
  10101 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
  10102 
  10103 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
  10104 
  10105 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
  10106 
  10107 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
  10108 
  10109 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
  10110 
  10111 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
  10112 
  10113 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
  10114 
  10115 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
  10116 
  10117 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
  10118 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
  10119 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
  10120 
  10121 #ifndef VK_NO_PROTOTYPES
  10122 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
  10123     VkDevice                                    device,
  10124     VkSemaphore                                 semaphore,
  10125     uint64_t*                                   pValue);
  10126 
  10127 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
  10128     VkDevice                                    device,
  10129     const VkSemaphoreWaitInfo*                  pWaitInfo,
  10130     uint64_t                                    timeout);
  10131 
  10132 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
  10133     VkDevice                                    device,
  10134     const VkSemaphoreSignalInfo*                pSignalInfo);
  10135 #endif
  10136 
  10137 
  10138 // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
  10139 #define VK_KHR_vulkan_memory_model 1
  10140 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
  10141 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
  10142 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
  10143 
  10144 
  10145 
  10146 // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
  10147 #define VK_KHR_shader_terminate_invocation 1
  10148 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
  10149 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
  10150 typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
  10151 
  10152 
  10153 
  10154 // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
  10155 #define VK_KHR_fragment_shading_rate 1
  10156 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
  10157 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
  10158 
  10159 typedef enum VkFragmentShadingRateCombinerOpKHR {
  10160     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
  10161     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
  10162     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
  10163     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
  10164     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
  10165     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
  10166 } VkFragmentShadingRateCombinerOpKHR;
  10167 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
  10168     VkStructureType                  sType;
  10169     const void*                      pNext;
  10170     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
  10171     VkExtent2D                       shadingRateAttachmentTexelSize;
  10172 } VkFragmentShadingRateAttachmentInfoKHR;
  10173 
  10174 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
  10175     VkStructureType                       sType;
  10176     const void*                           pNext;
  10177     VkExtent2D                            fragmentSize;
  10178     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
  10179 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
  10180 
  10181 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
  10182     VkStructureType    sType;
  10183     void*              pNext;
  10184     VkBool32           pipelineFragmentShadingRate;
  10185     VkBool32           primitiveFragmentShadingRate;
  10186     VkBool32           attachmentFragmentShadingRate;
  10187 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
  10188 
  10189 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
  10190     VkStructureType          sType;
  10191     void*                    pNext;
  10192     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
  10193     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
  10194     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
  10195     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
  10196     VkBool32                 layeredShadingRateAttachments;
  10197     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
  10198     VkExtent2D               maxFragmentSize;
  10199     uint32_t                 maxFragmentSizeAspectRatio;
  10200     uint32_t                 maxFragmentShadingRateCoverageSamples;
  10201     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
  10202     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
  10203     VkBool32                 fragmentShadingRateWithSampleMask;
  10204     VkBool32                 fragmentShadingRateWithShaderSampleMask;
  10205     VkBool32                 fragmentShadingRateWithConservativeRasterization;
  10206     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
  10207     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
  10208     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
  10209 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
  10210 
  10211 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
  10212     VkStructureType       sType;
  10213     void*                 pNext;
  10214     VkSampleCountFlags    sampleCounts;
  10215     VkExtent2D            fragmentSize;
  10216 } VkPhysicalDeviceFragmentShadingRateKHR;
  10217 
  10218 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
  10219 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
  10220 
  10221 #ifndef VK_NO_PROTOTYPES
  10222 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
  10223     VkPhysicalDevice                            physicalDevice,
  10224     uint32_t*                                   pFragmentShadingRateCount,
  10225     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
  10226 
  10227 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
  10228     VkCommandBuffer                             commandBuffer,
  10229     const VkExtent2D*                           pFragmentSize,
  10230     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
  10231 #endif
  10232 
  10233 
  10234 // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
  10235 #define VK_KHR_dynamic_rendering_local_read 1
  10236 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
  10237 #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
  10238 typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR {
  10239     VkStructureType    sType;
  10240     void*              pNext;
  10241     VkBool32           dynamicRenderingLocalRead;
  10242 } VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
  10243 
  10244 typedef struct VkRenderingAttachmentLocationInfoKHR {
  10245     VkStructureType    sType;
  10246     const void*        pNext;
  10247     uint32_t           colorAttachmentCount;
  10248     const uint32_t*    pColorAttachmentLocations;
  10249 } VkRenderingAttachmentLocationInfoKHR;
  10250 
  10251 typedef struct VkRenderingInputAttachmentIndexInfoKHR {
  10252     VkStructureType    sType;
  10253     const void*        pNext;
  10254     uint32_t           colorAttachmentCount;
  10255     const uint32_t*    pColorAttachmentInputIndices;
  10256     const uint32_t*    pDepthInputAttachmentIndex;
  10257     const uint32_t*    pStencilInputAttachmentIndex;
  10258 } VkRenderingInputAttachmentIndexInfoKHR;
  10259 
  10260 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
  10261 typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
  10262 
  10263 #ifndef VK_NO_PROTOTYPES
  10264 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
  10265     VkCommandBuffer                             commandBuffer,
  10266     const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
  10267 
  10268 VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
  10269     VkCommandBuffer                             commandBuffer,
  10270     const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
  10271 #endif
  10272 
  10273 
  10274 // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
  10275 #define VK_KHR_shader_quad_control 1
  10276 #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
  10277 #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
  10278 typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
  10279     VkStructureType    sType;
  10280     void*              pNext;
  10281     VkBool32           shaderQuadControl;
  10282 } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
  10283 
  10284 
  10285 
  10286 // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
  10287 #define VK_KHR_spirv_1_4 1
  10288 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
  10289 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
  10290 
  10291 
  10292 // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
  10293 #define VK_KHR_surface_protected_capabilities 1
  10294 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
  10295 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
  10296 typedef struct VkSurfaceProtectedCapabilitiesKHR {
  10297     VkStructureType    sType;
  10298     const void*        pNext;
  10299     VkBool32           supportsProtected;
  10300 } VkSurfaceProtectedCapabilitiesKHR;
  10301 
  10302 
  10303 
  10304 // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
  10305 #define VK_KHR_separate_depth_stencil_layouts 1
  10306 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
  10307 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
  10308 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
  10309 
  10310 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
  10311 
  10312 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
  10313 
  10314 
  10315 
  10316 // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
  10317 #define VK_KHR_present_wait 1
  10318 #define VK_KHR_PRESENT_WAIT_SPEC_VERSION  1
  10319 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
  10320 typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
  10321     VkStructureType    sType;
  10322     void*              pNext;
  10323     VkBool32           presentWait;
  10324 } VkPhysicalDevicePresentWaitFeaturesKHR;
  10325 
  10326 typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
  10327 
  10328 #ifndef VK_NO_PROTOTYPES
  10329 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
  10330     VkDevice                                    device,
  10331     VkSwapchainKHR                              swapchain,
  10332     uint64_t                                    presentId,
  10333     uint64_t                                    timeout);
  10334 #endif
  10335 
  10336 
  10337 // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
  10338 #define VK_KHR_uniform_buffer_standard_layout 1
  10339 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
  10340 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
  10341 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
  10342 
  10343 
  10344 
  10345 // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
  10346 #define VK_KHR_buffer_device_address 1
  10347 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
  10348 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
  10349 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
  10350 
  10351 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
  10352 
  10353 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
  10354 
  10355 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
  10356 
  10357 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
  10358 
  10359 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  10360 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  10361 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  10362 
  10363 #ifndef VK_NO_PROTOTYPES
  10364 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
  10365     VkDevice                                    device,
  10366     const VkBufferDeviceAddressInfo*            pInfo);
  10367 
  10368 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
  10369     VkDevice                                    device,
  10370     const VkBufferDeviceAddressInfo*            pInfo);
  10371 
  10372 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
  10373     VkDevice                                    device,
  10374     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  10375 #endif
  10376 
  10377 
  10378 // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
  10379 #define VK_KHR_deferred_host_operations 1
  10380 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
  10381 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
  10382 #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
  10383 typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
  10384 typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
  10385 typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10386 typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10387 typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10388 
  10389 #ifndef VK_NO_PROTOTYPES
  10390 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
  10391     VkDevice                                    device,
  10392     const VkAllocationCallbacks*                pAllocator,
  10393     VkDeferredOperationKHR*                     pDeferredOperation);
  10394 
  10395 VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
  10396     VkDevice                                    device,
  10397     VkDeferredOperationKHR                      operation,
  10398     const VkAllocationCallbacks*                pAllocator);
  10399 
  10400 VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
  10401     VkDevice                                    device,
  10402     VkDeferredOperationKHR                      operation);
  10403 
  10404 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
  10405     VkDevice                                    device,
  10406     VkDeferredOperationKHR                      operation);
  10407 
  10408 VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
  10409     VkDevice                                    device,
  10410     VkDeferredOperationKHR                      operation);
  10411 #endif
  10412 
  10413 
  10414 // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
  10415 #define VK_KHR_pipeline_executable_properties 1
  10416 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
  10417 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
  10418 
  10419 typedef enum VkPipelineExecutableStatisticFormatKHR {
  10420     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
  10421     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
  10422     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
  10423     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
  10424     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
  10425 } VkPipelineExecutableStatisticFormatKHR;
  10426 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
  10427     VkStructureType    sType;
  10428     void*              pNext;
  10429     VkBool32           pipelineExecutableInfo;
  10430 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  10431 
  10432 typedef struct VkPipelineInfoKHR {
  10433     VkStructureType    sType;
  10434     const void*        pNext;
  10435     VkPipeline         pipeline;
  10436 } VkPipelineInfoKHR;
  10437 
  10438 typedef struct VkPipelineExecutablePropertiesKHR {
  10439     VkStructureType       sType;
  10440     void*                 pNext;
  10441     VkShaderStageFlags    stages;
  10442     char                  name[VK_MAX_DESCRIPTION_SIZE];
  10443     char                  description[VK_MAX_DESCRIPTION_SIZE];
  10444     uint32_t              subgroupSize;
  10445 } VkPipelineExecutablePropertiesKHR;
  10446 
  10447 typedef struct VkPipelineExecutableInfoKHR {
  10448     VkStructureType    sType;
  10449     const void*        pNext;
  10450     VkPipeline         pipeline;
  10451     uint32_t           executableIndex;
  10452 } VkPipelineExecutableInfoKHR;
  10453 
  10454 typedef union VkPipelineExecutableStatisticValueKHR {
  10455     VkBool32    b32;
  10456     int64_t     i64;
  10457     uint64_t    u64;
  10458     double      f64;
  10459 } VkPipelineExecutableStatisticValueKHR;
  10460 
  10461 typedef struct VkPipelineExecutableStatisticKHR {
  10462     VkStructureType                           sType;
  10463     void*                                     pNext;
  10464     char                                      name[VK_MAX_DESCRIPTION_SIZE];
  10465     char                                      description[VK_MAX_DESCRIPTION_SIZE];
  10466     VkPipelineExecutableStatisticFormatKHR    format;
  10467     VkPipelineExecutableStatisticValueKHR     value;
  10468 } VkPipelineExecutableStatisticKHR;
  10469 
  10470 typedef struct VkPipelineExecutableInternalRepresentationKHR {
  10471     VkStructureType    sType;
  10472     void*              pNext;
  10473     char               name[VK_MAX_DESCRIPTION_SIZE];
  10474     char               description[VK_MAX_DESCRIPTION_SIZE];
  10475     VkBool32           isText;
  10476     size_t             dataSize;
  10477     void*              pData;
  10478 } VkPipelineExecutableInternalRepresentationKHR;
  10479 
  10480 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
  10481 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
  10482 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  10483 
  10484 #ifndef VK_NO_PROTOTYPES
  10485 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
  10486     VkDevice                                    device,
  10487     const VkPipelineInfoKHR*                    pPipelineInfo,
  10488     uint32_t*                                   pExecutableCount,
  10489     VkPipelineExecutablePropertiesKHR*          pProperties);
  10490 
  10491 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
  10492     VkDevice                                    device,
  10493     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
  10494     uint32_t*                                   pStatisticCount,
  10495     VkPipelineExecutableStatisticKHR*           pStatistics);
  10496 
  10497 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
  10498     VkDevice                                    device,
  10499     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
  10500     uint32_t*                                   pInternalRepresentationCount,
  10501     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  10502 #endif
  10503 
  10504 
  10505 // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
  10506 #define VK_KHR_map_memory2 1
  10507 #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION  1
  10508 #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
  10509 
  10510 typedef enum VkMemoryUnmapFlagBitsKHR {
  10511     VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
  10512     VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10513 } VkMemoryUnmapFlagBitsKHR;
  10514 typedef VkFlags VkMemoryUnmapFlagsKHR;
  10515 typedef struct VkMemoryMapInfoKHR {
  10516     VkStructureType     sType;
  10517     const void*         pNext;
  10518     VkMemoryMapFlags    flags;
  10519     VkDeviceMemory      memory;
  10520     VkDeviceSize        offset;
  10521     VkDeviceSize        size;
  10522 } VkMemoryMapInfoKHR;
  10523 
  10524 typedef struct VkMemoryUnmapInfoKHR {
  10525     VkStructureType          sType;
  10526     const void*              pNext;
  10527     VkMemoryUnmapFlagsKHR    flags;
  10528     VkDeviceMemory           memory;
  10529 } VkMemoryUnmapInfoKHR;
  10530 
  10531 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData);
  10532 typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
  10533 
  10534 #ifndef VK_NO_PROTOTYPES
  10535 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
  10536     VkDevice                                    device,
  10537     const VkMemoryMapInfoKHR*                   pMemoryMapInfo,
  10538     void**                                      ppData);
  10539 
  10540 VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
  10541     VkDevice                                    device,
  10542     const VkMemoryUnmapInfoKHR*                 pMemoryUnmapInfo);
  10543 #endif
  10544 
  10545 
  10546 // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
  10547 #define VK_KHR_shader_integer_dot_product 1
  10548 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
  10549 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
  10550 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
  10551 
  10552 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
  10553 
  10554 
  10555 
  10556 // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
  10557 #define VK_KHR_pipeline_library 1
  10558 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
  10559 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
  10560 typedef struct VkPipelineLibraryCreateInfoKHR {
  10561     VkStructureType      sType;
  10562     const void*          pNext;
  10563     uint32_t             libraryCount;
  10564     const VkPipeline*    pLibraries;
  10565 } VkPipelineLibraryCreateInfoKHR;
  10566 
  10567 
  10568 
  10569 // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
  10570 #define VK_KHR_shader_non_semantic_info 1
  10571 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
  10572 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
  10573 
  10574 
  10575 // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
  10576 #define VK_KHR_present_id 1
  10577 #define VK_KHR_PRESENT_ID_SPEC_VERSION    1
  10578 #define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
  10579 typedef struct VkPresentIdKHR {
  10580     VkStructureType    sType;
  10581     const void*        pNext;
  10582     uint32_t           swapchainCount;
  10583     const uint64_t*    pPresentIds;
  10584 } VkPresentIdKHR;
  10585 
  10586 typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
  10587     VkStructureType    sType;
  10588     void*              pNext;
  10589     VkBool32           presentId;
  10590 } VkPhysicalDevicePresentIdFeaturesKHR;
  10591 
  10592 
  10593 
  10594 // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
  10595 #define VK_KHR_video_encode_queue 1
  10596 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
  10597 #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
  10598 
  10599 typedef enum VkVideoEncodeTuningModeKHR {
  10600     VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
  10601     VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
  10602     VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
  10603     VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
  10604     VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
  10605     VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  10606 } VkVideoEncodeTuningModeKHR;
  10607 
  10608 typedef enum VkVideoEncodeFlagBitsKHR {
  10609     VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10610 } VkVideoEncodeFlagBitsKHR;
  10611 typedef VkFlags VkVideoEncodeFlagsKHR;
  10612 
  10613 typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
  10614     VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
  10615     VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
  10616     VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10617 } VkVideoEncodeCapabilityFlagBitsKHR;
  10618 typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
  10619 
  10620 typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
  10621     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
  10622     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
  10623     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
  10624     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
  10625     VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10626 } VkVideoEncodeRateControlModeFlagBitsKHR;
  10627 typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
  10628 
  10629 typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
  10630     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
  10631     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
  10632     VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
  10633     VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10634 } VkVideoEncodeFeedbackFlagBitsKHR;
  10635 typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
  10636 
  10637 typedef enum VkVideoEncodeUsageFlagBitsKHR {
  10638     VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
  10639     VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
  10640     VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
  10641     VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
  10642     VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
  10643     VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10644 } VkVideoEncodeUsageFlagBitsKHR;
  10645 typedef VkFlags VkVideoEncodeUsageFlagsKHR;
  10646 
  10647 typedef enum VkVideoEncodeContentFlagBitsKHR {
  10648     VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
  10649     VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
  10650     VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
  10651     VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
  10652     VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10653 } VkVideoEncodeContentFlagBitsKHR;
  10654 typedef VkFlags VkVideoEncodeContentFlagsKHR;
  10655 typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
  10656 typedef struct VkVideoEncodeInfoKHR {
  10657     VkStructureType                       sType;
  10658     const void*                           pNext;
  10659     VkVideoEncodeFlagsKHR                 flags;
  10660     VkBuffer                              dstBuffer;
  10661     VkDeviceSize                          dstBufferOffset;
  10662     VkDeviceSize                          dstBufferRange;
  10663     VkVideoPictureResourceInfoKHR         srcPictureResource;
  10664     const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
  10665     uint32_t                              referenceSlotCount;
  10666     const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
  10667     uint32_t                              precedingExternallyEncodedBytes;
  10668 } VkVideoEncodeInfoKHR;
  10669 
  10670 typedef struct VkVideoEncodeCapabilitiesKHR {
  10671     VkStructureType                         sType;
  10672     void*                                   pNext;
  10673     VkVideoEncodeCapabilityFlagsKHR         flags;
  10674     VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
  10675     uint32_t                                maxRateControlLayers;
  10676     uint64_t                                maxBitrate;
  10677     uint32_t                                maxQualityLevels;
  10678     VkExtent2D                              encodeInputPictureGranularity;
  10679     VkVideoEncodeFeedbackFlagsKHR           supportedEncodeFeedbackFlags;
  10680 } VkVideoEncodeCapabilitiesKHR;
  10681 
  10682 typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
  10683     VkStructureType                  sType;
  10684     const void*                      pNext;
  10685     VkVideoEncodeFeedbackFlagsKHR    encodeFeedbackFlags;
  10686 } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
  10687 
  10688 typedef struct VkVideoEncodeUsageInfoKHR {
  10689     VkStructureType                 sType;
  10690     const void*                     pNext;
  10691     VkVideoEncodeUsageFlagsKHR      videoUsageHints;
  10692     VkVideoEncodeContentFlagsKHR    videoContentHints;
  10693     VkVideoEncodeTuningModeKHR      tuningMode;
  10694 } VkVideoEncodeUsageInfoKHR;
  10695 
  10696 typedef struct VkVideoEncodeRateControlLayerInfoKHR {
  10697     VkStructureType    sType;
  10698     const void*        pNext;
  10699     uint64_t           averageBitrate;
  10700     uint64_t           maxBitrate;
  10701     uint32_t           frameRateNumerator;
  10702     uint32_t           frameRateDenominator;
  10703 } VkVideoEncodeRateControlLayerInfoKHR;
  10704 
  10705 typedef struct VkVideoEncodeRateControlInfoKHR {
  10706     VkStructureType                                sType;
  10707     const void*                                    pNext;
  10708     VkVideoEncodeRateControlFlagsKHR               flags;
  10709     VkVideoEncodeRateControlModeFlagBitsKHR        rateControlMode;
  10710     uint32_t                                       layerCount;
  10711     const VkVideoEncodeRateControlLayerInfoKHR*    pLayers;
  10712     uint32_t                                       virtualBufferSizeInMs;
  10713     uint32_t                                       initialVirtualBufferSizeInMs;
  10714 } VkVideoEncodeRateControlInfoKHR;
  10715 
  10716 typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
  10717     VkStructureType                 sType;
  10718     const void*                     pNext;
  10719     const VkVideoProfileInfoKHR*    pVideoProfile;
  10720     uint32_t                        qualityLevel;
  10721 } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  10722 
  10723 typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
  10724     VkStructureType                            sType;
  10725     void*                                      pNext;
  10726     VkVideoEncodeRateControlModeFlagBitsKHR    preferredRateControlMode;
  10727     uint32_t                                   preferredRateControlLayerCount;
  10728 } VkVideoEncodeQualityLevelPropertiesKHR;
  10729 
  10730 typedef struct VkVideoEncodeQualityLevelInfoKHR {
  10731     VkStructureType    sType;
  10732     const void*        pNext;
  10733     uint32_t           qualityLevel;
  10734 } VkVideoEncodeQualityLevelInfoKHR;
  10735 
  10736 typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
  10737     VkStructureType                sType;
  10738     const void*                    pNext;
  10739     VkVideoSessionParametersKHR    videoSessionParameters;
  10740 } VkVideoEncodeSessionParametersGetInfoKHR;
  10741 
  10742 typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
  10743     VkStructureType    sType;
  10744     void*              pNext;
  10745     VkBool32           hasOverrides;
  10746 } VkVideoEncodeSessionParametersFeedbackInfoKHR;
  10747 
  10748 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
  10749 typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
  10750 typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
  10751 
  10752 #ifndef VK_NO_PROTOTYPES
  10753 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
  10754     VkPhysicalDevice                            physicalDevice,
  10755     const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
  10756     VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties);
  10757 
  10758 VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
  10759     VkDevice                                    device,
  10760     const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
  10761     VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
  10762     size_t*                                     pDataSize,
  10763     void*                                       pData);
  10764 
  10765 VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
  10766     VkCommandBuffer                             commandBuffer,
  10767     const VkVideoEncodeInfoKHR*                 pEncodeInfo);
  10768 #endif
  10769 
  10770 
  10771 // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
  10772 #define VK_KHR_synchronization2 1
  10773 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
  10774 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
  10775 typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
  10776 
  10777 typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
  10778 
  10779 typedef VkAccessFlags2 VkAccessFlags2KHR;
  10780 
  10781 typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
  10782 
  10783 typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
  10784 
  10785 typedef VkSubmitFlags VkSubmitFlagsKHR;
  10786 
  10787 typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
  10788 
  10789 typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
  10790 
  10791 typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
  10792 
  10793 typedef VkDependencyInfo VkDependencyInfoKHR;
  10794 
  10795 typedef VkSubmitInfo2 VkSubmitInfo2KHR;
  10796 
  10797 typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
  10798 
  10799 typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
  10800 
  10801 typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
  10802 
  10803 typedef struct VkQueueFamilyCheckpointProperties2NV {
  10804     VkStructureType          sType;
  10805     void*                    pNext;
  10806     VkPipelineStageFlags2    checkpointExecutionStageMask;
  10807 } VkQueueFamilyCheckpointProperties2NV;
  10808 
  10809 typedef struct VkCheckpointData2NV {
  10810     VkStructureType          sType;
  10811     void*                    pNext;
  10812     VkPipelineStageFlags2    stage;
  10813     void*                    pCheckpointMarker;
  10814 } VkCheckpointData2NV;
  10815 
  10816 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, const VkDependencyInfo*                             pDependencyInfo);
  10817 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer                   commandBuffer, VkEvent                                             event, VkPipelineStageFlags2               stageMask);
  10818 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer                   commandBuffer, uint32_t                                            eventCount, const VkEvent*                     pEvents, const VkDependencyInfo*            pDependencyInfos);
  10819 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer                   commandBuffer, const VkDependencyInfo*                             pDependencyInfo);
  10820 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkQueryPool                                         queryPool, uint32_t                                            query);
  10821 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue                           queue, uint32_t                            submitCount, const VkSubmitInfo2*              pSubmits, VkFence           fence);
  10822 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer                   commandBuffer, VkPipelineStageFlags2               stage, VkBuffer                                            dstBuffer, VkDeviceSize                                        dstOffset, uint32_t                                            marker);
  10823 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
  10824 
  10825 #ifndef VK_NO_PROTOTYPES
  10826 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
  10827     VkCommandBuffer                             commandBuffer,
  10828     VkEvent                                     event,
  10829     const VkDependencyInfo*                     pDependencyInfo);
  10830 
  10831 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
  10832     VkCommandBuffer                             commandBuffer,
  10833     VkEvent                                     event,
  10834     VkPipelineStageFlags2                       stageMask);
  10835 
  10836 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
  10837     VkCommandBuffer                             commandBuffer,
  10838     uint32_t                                    eventCount,
  10839     const VkEvent*                              pEvents,
  10840     const VkDependencyInfo*                     pDependencyInfos);
  10841 
  10842 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
  10843     VkCommandBuffer                             commandBuffer,
  10844     const VkDependencyInfo*                     pDependencyInfo);
  10845 
  10846 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
  10847     VkCommandBuffer                             commandBuffer,
  10848     VkPipelineStageFlags2                       stage,
  10849     VkQueryPool                                 queryPool,
  10850     uint32_t                                    query);
  10851 
  10852 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
  10853     VkQueue                                     queue,
  10854     uint32_t                                    submitCount,
  10855     const VkSubmitInfo2*                        pSubmits,
  10856     VkFence                                     fence);
  10857 
  10858 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
  10859     VkCommandBuffer                             commandBuffer,
  10860     VkPipelineStageFlags2                       stage,
  10861     VkBuffer                                    dstBuffer,
  10862     VkDeviceSize                                dstOffset,
  10863     uint32_t                                    marker);
  10864 
  10865 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
  10866     VkQueue                                     queue,
  10867     uint32_t*                                   pCheckpointDataCount,
  10868     VkCheckpointData2NV*                        pCheckpointData);
  10869 #endif
  10870 
  10871 
  10872 // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
  10873 #define VK_KHR_fragment_shader_barycentric 1
  10874 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  10875 #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
  10876 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
  10877     VkStructureType    sType;
  10878     void*              pNext;
  10879     VkBool32           fragmentShaderBarycentric;
  10880 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  10881 
  10882 typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
  10883     VkStructureType    sType;
  10884     void*              pNext;
  10885     VkBool32           triStripVertexOrderIndependentOfProvokingVertex;
  10886 } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  10887 
  10888 
  10889 
  10890 // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
  10891 #define VK_KHR_shader_subgroup_uniform_control_flow 1
  10892 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
  10893 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
  10894 typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
  10895     VkStructureType    sType;
  10896     void*              pNext;
  10897     VkBool32           shaderSubgroupUniformControlFlow;
  10898 } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  10899 
  10900 
  10901 
  10902 // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
  10903 #define VK_KHR_zero_initialize_workgroup_memory 1
  10904 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
  10905 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
  10906 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
  10907 
  10908 
  10909 
  10910 // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
  10911 #define VK_KHR_workgroup_memory_explicit_layout 1
  10912 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
  10913 #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
  10914 typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
  10915     VkStructureType    sType;
  10916     void*              pNext;
  10917     VkBool32           workgroupMemoryExplicitLayout;
  10918     VkBool32           workgroupMemoryExplicitLayoutScalarBlockLayout;
  10919     VkBool32           workgroupMemoryExplicitLayout8BitAccess;
  10920     VkBool32           workgroupMemoryExplicitLayout16BitAccess;
  10921 } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  10922 
  10923 
  10924 
  10925 // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
  10926 #define VK_KHR_copy_commands2 1
  10927 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
  10928 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
  10929 typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
  10930 
  10931 typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
  10932 
  10933 typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
  10934 
  10935 typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
  10936 
  10937 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
  10938 
  10939 typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
  10940 
  10941 typedef VkBufferCopy2 VkBufferCopy2KHR;
  10942 
  10943 typedef VkImageCopy2 VkImageCopy2KHR;
  10944 
  10945 typedef VkImageBlit2 VkImageBlit2KHR;
  10946 
  10947 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
  10948 
  10949 typedef VkImageResolve2 VkImageResolve2KHR;
  10950 
  10951 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
  10952 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
  10953 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
  10954 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
  10955 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
  10956 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
  10957 
  10958 #ifndef VK_NO_PROTOTYPES
  10959 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
  10960     VkCommandBuffer                             commandBuffer,
  10961     const VkCopyBufferInfo2*                    pCopyBufferInfo);
  10962 
  10963 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
  10964     VkCommandBuffer                             commandBuffer,
  10965     const VkCopyImageInfo2*                     pCopyImageInfo);
  10966 
  10967 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
  10968     VkCommandBuffer                             commandBuffer,
  10969     const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo);
  10970 
  10971 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
  10972     VkCommandBuffer                             commandBuffer,
  10973     const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo);
  10974 
  10975 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
  10976     VkCommandBuffer                             commandBuffer,
  10977     const VkBlitImageInfo2*                     pBlitImageInfo);
  10978 
  10979 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
  10980     VkCommandBuffer                             commandBuffer,
  10981     const VkResolveImageInfo2*                  pResolveImageInfo);
  10982 #endif
  10983 
  10984 
  10985 // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
  10986 #define VK_KHR_format_feature_flags2 1
  10987 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
  10988 #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
  10989 typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
  10990 
  10991 typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
  10992 
  10993 typedef VkFormatProperties3 VkFormatProperties3KHR;
  10994 
  10995 
  10996 
  10997 // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  10998 #define VK_KHR_ray_tracing_maintenance1 1
  10999 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
  11000 #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
  11001 typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
  11002     VkStructureType    sType;
  11003     void*              pNext;
  11004     VkBool32           rayTracingMaintenance1;
  11005     VkBool32           rayTracingPipelineTraceRaysIndirect2;
  11006 } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  11007 
  11008 typedef struct VkTraceRaysIndirectCommand2KHR {
  11009     VkDeviceAddress    raygenShaderRecordAddress;
  11010     VkDeviceSize       raygenShaderRecordSize;
  11011     VkDeviceAddress    missShaderBindingTableAddress;
  11012     VkDeviceSize       missShaderBindingTableSize;
  11013     VkDeviceSize       missShaderBindingTableStride;
  11014     VkDeviceAddress    hitShaderBindingTableAddress;
  11015     VkDeviceSize       hitShaderBindingTableSize;
  11016     VkDeviceSize       hitShaderBindingTableStride;
  11017     VkDeviceAddress    callableShaderBindingTableAddress;
  11018     VkDeviceSize       callableShaderBindingTableSize;
  11019     VkDeviceSize       callableShaderBindingTableStride;
  11020     uint32_t           width;
  11021     uint32_t           height;
  11022     uint32_t           depth;
  11023 } VkTraceRaysIndirectCommand2KHR;
  11024 
  11025 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
  11026 
  11027 #ifndef VK_NO_PROTOTYPES
  11028 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
  11029     VkCommandBuffer                             commandBuffer,
  11030     VkDeviceAddress                             indirectDeviceAddress);
  11031 #endif
  11032 
  11033 
  11034 // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
  11035 #define VK_KHR_portability_enumeration 1
  11036 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
  11037 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
  11038 
  11039 
  11040 // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
  11041 #define VK_KHR_maintenance4 1
  11042 #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
  11043 #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
  11044 typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
  11045 
  11046 typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
  11047 
  11048 typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
  11049 
  11050 typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
  11051 
  11052 typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  11053 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  11054 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  11055 
  11056 #ifndef VK_NO_PROTOTYPES
  11057 VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
  11058     VkDevice                                    device,
  11059     const VkDeviceBufferMemoryRequirements*     pInfo,
  11060     VkMemoryRequirements2*                      pMemoryRequirements);
  11061 
  11062 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
  11063     VkDevice                                    device,
  11064     const VkDeviceImageMemoryRequirements*      pInfo,
  11065     VkMemoryRequirements2*                      pMemoryRequirements);
  11066 
  11067 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
  11068     VkDevice                                    device,
  11069     const VkDeviceImageMemoryRequirements*      pInfo,
  11070     uint32_t*                                   pSparseMemoryRequirementCount,
  11071     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
  11072 #endif
  11073 
  11074 
  11075 // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
  11076 #define VK_KHR_shader_subgroup_rotate 1
  11077 #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
  11078 #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
  11079 typedef struct VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR {
  11080     VkStructureType    sType;
  11081     void*              pNext;
  11082     VkBool32           shaderSubgroupRotate;
  11083     VkBool32           shaderSubgroupRotateClustered;
  11084 } VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
  11085 
  11086 
  11087 
  11088 // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
  11089 #define VK_KHR_shader_maximal_reconvergence 1
  11090 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
  11091 #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
  11092 typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
  11093     VkStructureType    sType;
  11094     void*              pNext;
  11095     VkBool32           shaderMaximalReconvergence;
  11096 } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
  11097 
  11098 
  11099 
  11100 // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
  11101 #define VK_KHR_maintenance5 1
  11102 #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
  11103 #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
  11104 typedef VkFlags64 VkPipelineCreateFlags2KHR;
  11105 
  11106 // Flag bits for VkPipelineCreateFlagBits2KHR
  11107 typedef VkFlags64 VkPipelineCreateFlagBits2KHR;
  11108 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
  11109 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
  11110 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
  11111 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
  11112 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
  11113 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
  11114 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
  11115 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
  11116 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
  11117 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
  11118 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
  11119 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
  11120 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
  11121 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
  11122 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
  11123 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
  11124 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
  11125 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
  11126 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
  11127 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
  11128 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
  11129 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
  11130 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
  11131 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
  11132 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
  11133 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
  11134 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
  11135 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
  11136 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
  11137 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
  11138 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
  11139 
  11140 typedef VkFlags64 VkBufferUsageFlags2KHR;
  11141 
  11142 // Flag bits for VkBufferUsageFlagBits2KHR
  11143 typedef VkFlags64 VkBufferUsageFlagBits2KHR;
  11144 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
  11145 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
  11146 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
  11147 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
  11148 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
  11149 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
  11150 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
  11151 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
  11152 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
  11153 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
  11154 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
  11155 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
  11156 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
  11157 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
  11158 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
  11159 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
  11160 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
  11161 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
  11162 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
  11163 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
  11164 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
  11165 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
  11166 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
  11167 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
  11168 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
  11169 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
  11170 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
  11171 
  11172 typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
  11173     VkStructureType    sType;
  11174     void*              pNext;
  11175     VkBool32           maintenance5;
  11176 } VkPhysicalDeviceMaintenance5FeaturesKHR;
  11177 
  11178 typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR {
  11179     VkStructureType    sType;
  11180     void*              pNext;
  11181     VkBool32           earlyFragmentMultisampleCoverageAfterSampleCounting;
  11182     VkBool32           earlyFragmentSampleMaskTestBeforeSampleCounting;
  11183     VkBool32           depthStencilSwizzleOneSupport;
  11184     VkBool32           polygonModePointSize;
  11185     VkBool32           nonStrictSinglePixelWideLinesUseParallelogram;
  11186     VkBool32           nonStrictWideLinesUseParallelogram;
  11187 } VkPhysicalDeviceMaintenance5PropertiesKHR;
  11188 
  11189 typedef struct VkRenderingAreaInfoKHR {
  11190     VkStructureType    sType;
  11191     const void*        pNext;
  11192     uint32_t           viewMask;
  11193     uint32_t           colorAttachmentCount;
  11194     const VkFormat*    pColorAttachmentFormats;
  11195     VkFormat           depthAttachmentFormat;
  11196     VkFormat           stencilAttachmentFormat;
  11197 } VkRenderingAreaInfoKHR;
  11198 
  11199 typedef struct VkImageSubresource2KHR {
  11200     VkStructureType       sType;
  11201     void*                 pNext;
  11202     VkImageSubresource    imageSubresource;
  11203 } VkImageSubresource2KHR;
  11204 
  11205 typedef struct VkDeviceImageSubresourceInfoKHR {
  11206     VkStructureType                  sType;
  11207     const void*                      pNext;
  11208     const VkImageCreateInfo*         pCreateInfo;
  11209     const VkImageSubresource2KHR*    pSubresource;
  11210 } VkDeviceImageSubresourceInfoKHR;
  11211 
  11212 typedef struct VkSubresourceLayout2KHR {
  11213     VkStructureType        sType;
  11214     void*                  pNext;
  11215     VkSubresourceLayout    subresourceLayout;
  11216 } VkSubresourceLayout2KHR;
  11217 
  11218 typedef struct VkPipelineCreateFlags2CreateInfoKHR {
  11219     VkStructureType              sType;
  11220     const void*                  pNext;
  11221     VkPipelineCreateFlags2KHR    flags;
  11222 } VkPipelineCreateFlags2CreateInfoKHR;
  11223 
  11224 typedef struct VkBufferUsageFlags2CreateInfoKHR {
  11225     VkStructureType           sType;
  11226     const void*               pNext;
  11227     VkBufferUsageFlags2KHR    usage;
  11228 } VkBufferUsageFlags2CreateInfoKHR;
  11229 
  11230 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
  11231 typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity);
  11232 typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout);
  11233 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
  11234 
  11235 #ifndef VK_NO_PROTOTYPES
  11236 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
  11237     VkCommandBuffer                             commandBuffer,
  11238     VkBuffer                                    buffer,
  11239     VkDeviceSize                                offset,
  11240     VkDeviceSize                                size,
  11241     VkIndexType                                 indexType);
  11242 
  11243 VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
  11244     VkDevice                                    device,
  11245     const VkRenderingAreaInfoKHR*               pRenderingAreaInfo,
  11246     VkExtent2D*                                 pGranularity);
  11247 
  11248 VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
  11249     VkDevice                                    device,
  11250     const VkDeviceImageSubresourceInfoKHR*      pInfo,
  11251     VkSubresourceLayout2KHR*                    pLayout);
  11252 
  11253 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
  11254     VkDevice                                    device,
  11255     VkImage                                     image,
  11256     const VkImageSubresource2KHR*               pSubresource,
  11257     VkSubresourceLayout2KHR*                    pLayout);
  11258 #endif
  11259 
  11260 
  11261 // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
  11262 #define VK_KHR_ray_tracing_position_fetch 1
  11263 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
  11264 #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
  11265 typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
  11266     VkStructureType    sType;
  11267     void*              pNext;
  11268     VkBool32           rayTracingPositionFetch;
  11269 } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  11270 
  11271 
  11272 
  11273 // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
  11274 #define VK_KHR_cooperative_matrix 1
  11275 #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
  11276 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
  11277 
  11278 typedef enum VkComponentTypeKHR {
  11279     VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
  11280     VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
  11281     VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
  11282     VK_COMPONENT_TYPE_SINT8_KHR = 3,
  11283     VK_COMPONENT_TYPE_SINT16_KHR = 4,
  11284     VK_COMPONENT_TYPE_SINT32_KHR = 5,
  11285     VK_COMPONENT_TYPE_SINT64_KHR = 6,
  11286     VK_COMPONENT_TYPE_UINT8_KHR = 7,
  11287     VK_COMPONENT_TYPE_UINT16_KHR = 8,
  11288     VK_COMPONENT_TYPE_UINT32_KHR = 9,
  11289     VK_COMPONENT_TYPE_UINT64_KHR = 10,
  11290     VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
  11291     VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
  11292     VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
  11293     VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
  11294     VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
  11295     VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
  11296     VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
  11297     VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
  11298     VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
  11299     VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
  11300     VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
  11301     VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  11302 } VkComponentTypeKHR;
  11303 
  11304 typedef enum VkScopeKHR {
  11305     VK_SCOPE_DEVICE_KHR = 1,
  11306     VK_SCOPE_WORKGROUP_KHR = 2,
  11307     VK_SCOPE_SUBGROUP_KHR = 3,
  11308     VK_SCOPE_QUEUE_FAMILY_KHR = 5,
  11309     VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
  11310     VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
  11311     VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
  11312     VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
  11313     VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
  11314 } VkScopeKHR;
  11315 typedef struct VkCooperativeMatrixPropertiesKHR {
  11316     VkStructureType       sType;
  11317     void*                 pNext;
  11318     uint32_t              MSize;
  11319     uint32_t              NSize;
  11320     uint32_t              KSize;
  11321     VkComponentTypeKHR    AType;
  11322     VkComponentTypeKHR    BType;
  11323     VkComponentTypeKHR    CType;
  11324     VkComponentTypeKHR    ResultType;
  11325     VkBool32              saturatingAccumulation;
  11326     VkScopeKHR            scope;
  11327 } VkCooperativeMatrixPropertiesKHR;
  11328 
  11329 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
  11330     VkStructureType    sType;
  11331     void*              pNext;
  11332     VkBool32           cooperativeMatrix;
  11333     VkBool32           cooperativeMatrixRobustBufferAccess;
  11334 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
  11335 
  11336 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
  11337     VkStructureType       sType;
  11338     void*                 pNext;
  11339     VkShaderStageFlags    cooperativeMatrixSupportedStages;
  11340 } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
  11341 
  11342 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
  11343 
  11344 #ifndef VK_NO_PROTOTYPES
  11345 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
  11346     VkPhysicalDevice                            physicalDevice,
  11347     uint32_t*                                   pPropertyCount,
  11348     VkCooperativeMatrixPropertiesKHR*           pProperties);
  11349 #endif
  11350 
  11351 
  11352 // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
  11353 #define VK_KHR_video_decode_av1 1
  11354 #include "vk_video/vulkan_video_codec_av1std.h"
  11355 #include "vk_video/vulkan_video_codec_av1std_decode.h"
  11356 #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
  11357 #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
  11358 #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
  11359 typedef struct VkVideoDecodeAV1ProfileInfoKHR {
  11360     VkStructureType       sType;
  11361     const void*           pNext;
  11362     StdVideoAV1Profile    stdProfile;
  11363     VkBool32              filmGrainSupport;
  11364 } VkVideoDecodeAV1ProfileInfoKHR;
  11365 
  11366 typedef struct VkVideoDecodeAV1CapabilitiesKHR {
  11367     VkStructureType     sType;
  11368     void*               pNext;
  11369     StdVideoAV1Level    maxLevel;
  11370 } VkVideoDecodeAV1CapabilitiesKHR;
  11371 
  11372 typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
  11373     VkStructureType                     sType;
  11374     const void*                         pNext;
  11375     const StdVideoAV1SequenceHeader*    pStdSequenceHeader;
  11376 } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
  11377 
  11378 typedef struct VkVideoDecodeAV1PictureInfoKHR {
  11379     VkStructureType                        sType;
  11380     const void*                            pNext;
  11381     const StdVideoDecodeAV1PictureInfo*    pStdPictureInfo;
  11382     int32_t                                referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
  11383     uint32_t                               frameHeaderOffset;
  11384     uint32_t                               tileCount;
  11385     const uint32_t*                        pTileOffsets;
  11386     const uint32_t*                        pTileSizes;
  11387 } VkVideoDecodeAV1PictureInfoKHR;
  11388 
  11389 typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
  11390     VkStructureType                          sType;
  11391     const void*                              pNext;
  11392     const StdVideoDecodeAV1ReferenceInfo*    pStdReferenceInfo;
  11393 } VkVideoDecodeAV1DpbSlotInfoKHR;
  11394 
  11395 
  11396 
  11397 // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  11398 #define VK_KHR_video_maintenance1 1
  11399 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
  11400 #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
  11401 typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
  11402     VkStructureType    sType;
  11403     void*              pNext;
  11404     VkBool32           videoMaintenance1;
  11405 } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
  11406 
  11407 typedef struct VkVideoInlineQueryInfoKHR {
  11408     VkStructureType    sType;
  11409     const void*        pNext;
  11410     VkQueryPool        queryPool;
  11411     uint32_t           firstQuery;
  11412     uint32_t           queryCount;
  11413 } VkVideoInlineQueryInfoKHR;
  11414 
  11415 
  11416 
  11417 // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
  11418 #define VK_KHR_vertex_attribute_divisor 1
  11419 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
  11420 #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
  11421 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR {
  11422     VkStructureType    sType;
  11423     void*              pNext;
  11424     uint32_t           maxVertexAttribDivisor;
  11425     VkBool32           supportsNonZeroFirstInstance;
  11426 } VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
  11427 
  11428 typedef struct VkVertexInputBindingDivisorDescriptionKHR {
  11429     uint32_t    binding;
  11430     uint32_t    divisor;
  11431 } VkVertexInputBindingDivisorDescriptionKHR;
  11432 
  11433 typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR {
  11434     VkStructureType                                     sType;
  11435     const void*                                         pNext;
  11436     uint32_t                                            vertexBindingDivisorCount;
  11437     const VkVertexInputBindingDivisorDescriptionKHR*    pVertexBindingDivisors;
  11438 } VkPipelineVertexInputDivisorStateCreateInfoKHR;
  11439 
  11440 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR {
  11441     VkStructureType    sType;
  11442     void*              pNext;
  11443     VkBool32           vertexAttributeInstanceRateDivisor;
  11444     VkBool32           vertexAttributeInstanceRateZeroDivisor;
  11445 } VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
  11446 
  11447 
  11448 
  11449 // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
  11450 #define VK_KHR_load_store_op_none 1
  11451 #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
  11452 #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
  11453 
  11454 
  11455 // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
  11456 #define VK_KHR_shader_float_controls2 1
  11457 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
  11458 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
  11459 typedef struct VkPhysicalDeviceShaderFloatControls2FeaturesKHR {
  11460     VkStructureType    sType;
  11461     void*              pNext;
  11462     VkBool32           shaderFloatControls2;
  11463 } VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
  11464 
  11465 
  11466 
  11467 // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
  11468 #define VK_KHR_index_type_uint8 1
  11469 #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
  11470 #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
  11471 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesKHR {
  11472     VkStructureType    sType;
  11473     void*              pNext;
  11474     VkBool32           indexTypeUint8;
  11475 } VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
  11476 
  11477 
  11478 
  11479 // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  11480 #define VK_KHR_line_rasterization 1
  11481 #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
  11482 #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
  11483 
  11484 typedef enum VkLineRasterizationModeKHR {
  11485     VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = 0,
  11486     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = 1,
  11487     VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = 2,
  11488     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = 3,
  11489     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR,
  11490     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR,
  11491     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR,
  11492     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR,
  11493     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  11494 } VkLineRasterizationModeKHR;
  11495 typedef struct VkPhysicalDeviceLineRasterizationFeaturesKHR {
  11496     VkStructureType    sType;
  11497     void*              pNext;
  11498     VkBool32           rectangularLines;
  11499     VkBool32           bresenhamLines;
  11500     VkBool32           smoothLines;
  11501     VkBool32           stippledRectangularLines;
  11502     VkBool32           stippledBresenhamLines;
  11503     VkBool32           stippledSmoothLines;
  11504 } VkPhysicalDeviceLineRasterizationFeaturesKHR;
  11505 
  11506 typedef struct VkPhysicalDeviceLineRasterizationPropertiesKHR {
  11507     VkStructureType    sType;
  11508     void*              pNext;
  11509     uint32_t           lineSubPixelPrecisionBits;
  11510 } VkPhysicalDeviceLineRasterizationPropertiesKHR;
  11511 
  11512 typedef struct VkPipelineRasterizationLineStateCreateInfoKHR {
  11513     VkStructureType               sType;
  11514     const void*                   pNext;
  11515     VkLineRasterizationModeKHR    lineRasterizationMode;
  11516     VkBool32                      stippledLineEnable;
  11517     uint32_t                      lineStippleFactor;
  11518     uint16_t                      lineStipplePattern;
  11519 } VkPipelineRasterizationLineStateCreateInfoKHR;
  11520 
  11521 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  11522 
  11523 #ifndef VK_NO_PROTOTYPES
  11524 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
  11525     VkCommandBuffer                             commandBuffer,
  11526     uint32_t                                    lineStippleFactor,
  11527     uint16_t                                    lineStipplePattern);
  11528 #endif
  11529 
  11530 
  11531 // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
  11532 #define VK_KHR_calibrated_timestamps 1
  11533 #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
  11534 #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
  11535 
  11536 typedef enum VkTimeDomainKHR {
  11537     VK_TIME_DOMAIN_DEVICE_KHR = 0,
  11538     VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
  11539     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
  11540     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
  11541     VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
  11542     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
  11543     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
  11544     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
  11545     VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
  11546 } VkTimeDomainKHR;
  11547 typedef struct VkCalibratedTimestampInfoKHR {
  11548     VkStructureType    sType;
  11549     const void*        pNext;
  11550     VkTimeDomainKHR    timeDomain;
  11551 } VkCalibratedTimestampInfoKHR;
  11552 
  11553 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
  11554 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
  11555 
  11556 #ifndef VK_NO_PROTOTYPES
  11557 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
  11558     VkPhysicalDevice                            physicalDevice,
  11559     uint32_t*                                   pTimeDomainCount,
  11560     VkTimeDomainKHR*                            pTimeDomains);
  11561 
  11562 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
  11563     VkDevice                                    device,
  11564     uint32_t                                    timestampCount,
  11565     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
  11566     uint64_t*                                   pTimestamps,
  11567     uint64_t*                                   pMaxDeviation);
  11568 #endif
  11569 
  11570 
  11571 // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
  11572 #define VK_KHR_shader_expect_assume 1
  11573 #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
  11574 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
  11575 typedef struct VkPhysicalDeviceShaderExpectAssumeFeaturesKHR {
  11576     VkStructureType    sType;
  11577     void*              pNext;
  11578     VkBool32           shaderExpectAssume;
  11579 } VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
  11580 
  11581 
  11582 
  11583 // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
  11584 #define VK_KHR_maintenance6 1
  11585 #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
  11586 #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
  11587 typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR {
  11588     VkStructureType    sType;
  11589     void*              pNext;
  11590     VkBool32           maintenance6;
  11591 } VkPhysicalDeviceMaintenance6FeaturesKHR;
  11592 
  11593 typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR {
  11594     VkStructureType    sType;
  11595     void*              pNext;
  11596     VkBool32           blockTexelViewCompatibleMultipleLayers;
  11597     uint32_t           maxCombinedImageSamplerDescriptorCount;
  11598     VkBool32           fragmentShadingRateClampCombinerInputs;
  11599 } VkPhysicalDeviceMaintenance6PropertiesKHR;
  11600 
  11601 typedef struct VkBindMemoryStatusKHR {
  11602     VkStructureType    sType;
  11603     const void*        pNext;
  11604     VkResult*          pResult;
  11605 } VkBindMemoryStatusKHR;
  11606 
  11607 typedef struct VkBindDescriptorSetsInfoKHR {
  11608     VkStructureType           sType;
  11609     const void*               pNext;
  11610     VkShaderStageFlags        stageFlags;
  11611     VkPipelineLayout          layout;
  11612     uint32_t                  firstSet;
  11613     uint32_t                  descriptorSetCount;
  11614     const VkDescriptorSet*    pDescriptorSets;
  11615     uint32_t                  dynamicOffsetCount;
  11616     const uint32_t*           pDynamicOffsets;
  11617 } VkBindDescriptorSetsInfoKHR;
  11618 
  11619 typedef struct VkPushConstantsInfoKHR {
  11620     VkStructureType       sType;
  11621     const void*           pNext;
  11622     VkPipelineLayout      layout;
  11623     VkShaderStageFlags    stageFlags;
  11624     uint32_t              offset;
  11625     uint32_t              size;
  11626     const void*           pValues;
  11627 } VkPushConstantsInfoKHR;
  11628 
  11629 typedef struct VkPushDescriptorSetInfoKHR {
  11630     VkStructureType                sType;
  11631     const void*                    pNext;
  11632     VkShaderStageFlags             stageFlags;
  11633     VkPipelineLayout               layout;
  11634     uint32_t                       set;
  11635     uint32_t                       descriptorWriteCount;
  11636     const VkWriteDescriptorSet*    pDescriptorWrites;
  11637 } VkPushDescriptorSetInfoKHR;
  11638 
  11639 typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
  11640     VkStructureType               sType;
  11641     const void*                   pNext;
  11642     VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
  11643     VkPipelineLayout              layout;
  11644     uint32_t                      set;
  11645     const void*                   pData;
  11646 } VkPushDescriptorSetWithTemplateInfoKHR;
  11647 
  11648 typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
  11649     VkStructureType        sType;
  11650     const void*            pNext;
  11651     VkShaderStageFlags     stageFlags;
  11652     VkPipelineLayout       layout;
  11653     uint32_t               firstSet;
  11654     uint32_t               setCount;
  11655     const uint32_t*        pBufferIndices;
  11656     const VkDeviceSize*    pOffsets;
  11657 } VkSetDescriptorBufferOffsetsInfoEXT;
  11658 
  11659 typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
  11660     VkStructureType       sType;
  11661     const void*           pNext;
  11662     VkShaderStageFlags    stageFlags;
  11663     VkPipelineLayout      layout;
  11664     uint32_t              set;
  11665 } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
  11666 
  11667 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
  11668 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo);
  11669 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
  11670 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
  11671 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
  11672 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
  11673 
  11674 #ifndef VK_NO_PROTOTYPES
  11675 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
  11676     VkCommandBuffer                             commandBuffer,
  11677     const VkBindDescriptorSetsInfoKHR*          pBindDescriptorSetsInfo);
  11678 
  11679 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
  11680     VkCommandBuffer                             commandBuffer,
  11681     const VkPushConstantsInfoKHR*               pPushConstantsInfo);
  11682 
  11683 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
  11684     VkCommandBuffer                             commandBuffer,
  11685     const VkPushDescriptorSetInfoKHR*           pPushDescriptorSetInfo);
  11686 
  11687 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
  11688     VkCommandBuffer                             commandBuffer,
  11689     const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
  11690 
  11691 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
  11692     VkCommandBuffer                             commandBuffer,
  11693     const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo);
  11694 
  11695 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
  11696     VkCommandBuffer                             commandBuffer,
  11697     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
  11698 #endif
  11699 
  11700 
  11701 // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
  11702 #define VK_EXT_debug_report 1
  11703 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  11704 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  10
  11705 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  11706 
  11707 typedef enum VkDebugReportObjectTypeEXT {
  11708     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  11709     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  11710     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  11711     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  11712     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  11713     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  11714     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  11715     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  11716     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  11717     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  11718     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  11719     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  11720     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  11721     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  11722     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  11723     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  11724     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  11725     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  11726     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  11727     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  11728     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  11729     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  11730     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  11731     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  11732     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  11733     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  11734     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  11735     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  11736     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
  11737     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  11738     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  11739     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
  11740     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
  11741     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
  11742     VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
  11743     VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
  11744     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
  11745     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
  11746     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
  11747     VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
  11748     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
  11749     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  11750     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  11751     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
  11752     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
  11753     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  11754 } VkDebugReportObjectTypeEXT;
  11755 
  11756 typedef enum VkDebugReportFlagBitsEXT {
  11757     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  11758     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  11759     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  11760     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  11761     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  11762     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  11763 } VkDebugReportFlagBitsEXT;
  11764 typedef VkFlags VkDebugReportFlagsEXT;
  11765 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  11766     VkDebugReportFlagsEXT                       flags,
  11767     VkDebugReportObjectTypeEXT                  objectType,
  11768     uint64_t                                    object,
  11769     size_t                                      location,
  11770     int32_t                                     messageCode,
  11771     const char*                                 pLayerPrefix,
  11772     const char*                                 pMessage,
  11773     void*                                       pUserData);
  11774 
  11775 typedef struct VkDebugReportCallbackCreateInfoEXT {
  11776     VkStructureType                 sType;
  11777     const void*                     pNext;
  11778     VkDebugReportFlagsEXT           flags;
  11779     PFN_vkDebugReportCallbackEXT    pfnCallback;
  11780     void*                           pUserData;
  11781 } VkDebugReportCallbackCreateInfoEXT;
  11782 
  11783 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
  11784 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
  11785 typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
  11786 
  11787 #ifndef VK_NO_PROTOTYPES
  11788 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
  11789     VkInstance                                  instance,
  11790     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
  11791     const VkAllocationCallbacks*                pAllocator,
  11792     VkDebugReportCallbackEXT*                   pCallback);
  11793 
  11794 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
  11795     VkInstance                                  instance,
  11796     VkDebugReportCallbackEXT                    callback,
  11797     const VkAllocationCallbacks*                pAllocator);
  11798 
  11799 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
  11800     VkInstance                                  instance,
  11801     VkDebugReportFlagsEXT                       flags,
  11802     VkDebugReportObjectTypeEXT                  objectType,
  11803     uint64_t                                    object,
  11804     size_t                                      location,
  11805     int32_t                                     messageCode,
  11806     const char*                                 pLayerPrefix,
  11807     const char*                                 pMessage);
  11808 #endif
  11809 
  11810 
  11811 // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
  11812 #define VK_NV_glsl_shader 1
  11813 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
  11814 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
  11815 
  11816 
  11817 // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
  11818 #define VK_EXT_depth_range_unrestricted 1
  11819 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
  11820 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
  11821 
  11822 
  11823 // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
  11824 #define VK_IMG_filter_cubic 1
  11825 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
  11826 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
  11827 
  11828 
  11829 // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
  11830 #define VK_AMD_rasterization_order 1
  11831 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
  11832 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
  11833 
  11834 typedef enum VkRasterizationOrderAMD {
  11835     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
  11836     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
  11837     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
  11838 } VkRasterizationOrderAMD;
  11839 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
  11840     VkStructureType            sType;
  11841     const void*                pNext;
  11842     VkRasterizationOrderAMD    rasterizationOrder;
  11843 } VkPipelineRasterizationStateRasterizationOrderAMD;
  11844 
  11845 
  11846 
  11847 // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
  11848 #define VK_AMD_shader_trinary_minmax 1
  11849 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
  11850 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
  11851 
  11852 
  11853 // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
  11854 #define VK_AMD_shader_explicit_vertex_parameter 1
  11855 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
  11856 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
  11857 
  11858 
  11859 // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
  11860 #define VK_EXT_debug_marker 1
  11861 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
  11862 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
  11863 typedef struct VkDebugMarkerObjectNameInfoEXT {
  11864     VkStructureType               sType;
  11865     const void*                   pNext;
  11866     VkDebugReportObjectTypeEXT    objectType;
  11867     uint64_t                      object;
  11868     const char*                   pObjectName;
  11869 } VkDebugMarkerObjectNameInfoEXT;
  11870 
  11871 typedef struct VkDebugMarkerObjectTagInfoEXT {
  11872     VkStructureType               sType;
  11873     const void*                   pNext;
  11874     VkDebugReportObjectTypeEXT    objectType;
  11875     uint64_t                      object;
  11876     uint64_t                      tagName;
  11877     size_t                        tagSize;
  11878     const void*                   pTag;
  11879 } VkDebugMarkerObjectTagInfoEXT;
  11880 
  11881 typedef struct VkDebugMarkerMarkerInfoEXT {
  11882     VkStructureType    sType;
  11883     const void*        pNext;
  11884     const char*        pMarkerName;
  11885     float              color[4];
  11886 } VkDebugMarkerMarkerInfoEXT;
  11887 
  11888 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  11889 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  11890 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  11891 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
  11892 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  11893 
  11894 #ifndef VK_NO_PROTOTYPES
  11895 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
  11896     VkDevice                                    device,
  11897     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
  11898 
  11899 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
  11900     VkDevice                                    device,
  11901     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
  11902 
  11903 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
  11904     VkCommandBuffer                             commandBuffer,
  11905     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
  11906 
  11907 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
  11908     VkCommandBuffer                             commandBuffer);
  11909 
  11910 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
  11911     VkCommandBuffer                             commandBuffer,
  11912     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
  11913 #endif
  11914 
  11915 
  11916 // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
  11917 #define VK_AMD_gcn_shader 1
  11918 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
  11919 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
  11920 
  11921 
  11922 // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
  11923 #define VK_NV_dedicated_allocation 1
  11924 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
  11925 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
  11926 typedef struct VkDedicatedAllocationImageCreateInfoNV {
  11927     VkStructureType    sType;
  11928     const void*        pNext;
  11929     VkBool32           dedicatedAllocation;
  11930 } VkDedicatedAllocationImageCreateInfoNV;
  11931 
  11932 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
  11933     VkStructureType    sType;
  11934     const void*        pNext;
  11935     VkBool32           dedicatedAllocation;
  11936 } VkDedicatedAllocationBufferCreateInfoNV;
  11937 
  11938 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
  11939     VkStructureType    sType;
  11940     const void*        pNext;
  11941     VkImage            image;
  11942     VkBuffer           buffer;
  11943 } VkDedicatedAllocationMemoryAllocateInfoNV;
  11944 
  11945 
  11946 
  11947 // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
  11948 #define VK_EXT_transform_feedback 1
  11949 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
  11950 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
  11951 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
  11952 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
  11953     VkStructureType    sType;
  11954     void*              pNext;
  11955     VkBool32           transformFeedback;
  11956     VkBool32           geometryStreams;
  11957 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
  11958 
  11959 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
  11960     VkStructureType    sType;
  11961     void*              pNext;
  11962     uint32_t           maxTransformFeedbackStreams;
  11963     uint32_t           maxTransformFeedbackBuffers;
  11964     VkDeviceSize       maxTransformFeedbackBufferSize;
  11965     uint32_t           maxTransformFeedbackStreamDataSize;
  11966     uint32_t           maxTransformFeedbackBufferDataSize;
  11967     uint32_t           maxTransformFeedbackBufferDataStride;
  11968     VkBool32           transformFeedbackQueries;
  11969     VkBool32           transformFeedbackStreamsLinesTriangles;
  11970     VkBool32           transformFeedbackRasterizationStreamSelect;
  11971     VkBool32           transformFeedbackDraw;
  11972 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
  11973 
  11974 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
  11975     VkStructureType                                     sType;
  11976     const void*                                         pNext;
  11977     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
  11978     uint32_t                                            rasterizationStream;
  11979 } VkPipelineRasterizationStateStreamCreateInfoEXT;
  11980 
  11981 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
  11982 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  11983 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  11984 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
  11985 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
  11986 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
  11987 
  11988 #ifndef VK_NO_PROTOTYPES
  11989 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
  11990     VkCommandBuffer                             commandBuffer,
  11991     uint32_t                                    firstBinding,
  11992     uint32_t                                    bindingCount,
  11993     const VkBuffer*                             pBuffers,
  11994     const VkDeviceSize*                         pOffsets,
  11995     const VkDeviceSize*                         pSizes);
  11996 
  11997 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
  11998     VkCommandBuffer                             commandBuffer,
  11999     uint32_t                                    firstCounterBuffer,
  12000     uint32_t                                    counterBufferCount,
  12001     const VkBuffer*                             pCounterBuffers,
  12002     const VkDeviceSize*                         pCounterBufferOffsets);
  12003 
  12004 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
  12005     VkCommandBuffer                             commandBuffer,
  12006     uint32_t                                    firstCounterBuffer,
  12007     uint32_t                                    counterBufferCount,
  12008     const VkBuffer*                             pCounterBuffers,
  12009     const VkDeviceSize*                         pCounterBufferOffsets);
  12010 
  12011 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
  12012     VkCommandBuffer                             commandBuffer,
  12013     VkQueryPool                                 queryPool,
  12014     uint32_t                                    query,
  12015     VkQueryControlFlags                         flags,
  12016     uint32_t                                    index);
  12017 
  12018 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
  12019     VkCommandBuffer                             commandBuffer,
  12020     VkQueryPool                                 queryPool,
  12021     uint32_t                                    query,
  12022     uint32_t                                    index);
  12023 
  12024 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
  12025     VkCommandBuffer                             commandBuffer,
  12026     uint32_t                                    instanceCount,
  12027     uint32_t                                    firstInstance,
  12028     VkBuffer                                    counterBuffer,
  12029     VkDeviceSize                                counterBufferOffset,
  12030     uint32_t                                    counterOffset,
  12031     uint32_t                                    vertexStride);
  12032 #endif
  12033 
  12034 
  12035 // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
  12036 #define VK_NVX_binary_import 1
  12037 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
  12038 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
  12039 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
  12040 #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
  12041 typedef struct VkCuModuleCreateInfoNVX {
  12042     VkStructureType    sType;
  12043     const void*        pNext;
  12044     size_t             dataSize;
  12045     const void*        pData;
  12046 } VkCuModuleCreateInfoNVX;
  12047 
  12048 typedef struct VkCuFunctionCreateInfoNVX {
  12049     VkStructureType    sType;
  12050     const void*        pNext;
  12051     VkCuModuleNVX      module;
  12052     const char*        pName;
  12053 } VkCuFunctionCreateInfoNVX;
  12054 
  12055 typedef struct VkCuLaunchInfoNVX {
  12056     VkStructureType        sType;
  12057     const void*            pNext;
  12058     VkCuFunctionNVX        function;
  12059     uint32_t               gridDimX;
  12060     uint32_t               gridDimY;
  12061     uint32_t               gridDimZ;
  12062     uint32_t               blockDimX;
  12063     uint32_t               blockDimY;
  12064     uint32_t               blockDimZ;
  12065     uint32_t               sharedMemBytes;
  12066     size_t                 paramCount;
  12067     const void* const *    pParams;
  12068     size_t                 extraCount;
  12069     const void* const *    pExtras;
  12070 } VkCuLaunchInfoNVX;
  12071 
  12072 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
  12073 typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
  12074 typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
  12075 typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
  12076 typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
  12077 
  12078 #ifndef VK_NO_PROTOTYPES
  12079 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
  12080     VkDevice                                    device,
  12081     const VkCuModuleCreateInfoNVX*              pCreateInfo,
  12082     const VkAllocationCallbacks*                pAllocator,
  12083     VkCuModuleNVX*                              pModule);
  12084 
  12085 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
  12086     VkDevice                                    device,
  12087     const VkCuFunctionCreateInfoNVX*            pCreateInfo,
  12088     const VkAllocationCallbacks*                pAllocator,
  12089     VkCuFunctionNVX*                            pFunction);
  12090 
  12091 VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
  12092     VkDevice                                    device,
  12093     VkCuModuleNVX                               module,
  12094     const VkAllocationCallbacks*                pAllocator);
  12095 
  12096 VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
  12097     VkDevice                                    device,
  12098     VkCuFunctionNVX                             function,
  12099     const VkAllocationCallbacks*                pAllocator);
  12100 
  12101 VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
  12102     VkCommandBuffer                             commandBuffer,
  12103     const VkCuLaunchInfoNVX*                    pLaunchInfo);
  12104 #endif
  12105 
  12106 
  12107 // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
  12108 #define VK_NVX_image_view_handle 1
  12109 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
  12110 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
  12111 typedef struct VkImageViewHandleInfoNVX {
  12112     VkStructureType     sType;
  12113     const void*         pNext;
  12114     VkImageView         imageView;
  12115     VkDescriptorType    descriptorType;
  12116     VkSampler           sampler;
  12117 } VkImageViewHandleInfoNVX;
  12118 
  12119 typedef struct VkImageViewAddressPropertiesNVX {
  12120     VkStructureType    sType;
  12121     void*              pNext;
  12122     VkDeviceAddress    deviceAddress;
  12123     VkDeviceSize       size;
  12124 } VkImageViewAddressPropertiesNVX;
  12125 
  12126 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
  12127 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
  12128 
  12129 #ifndef VK_NO_PROTOTYPES
  12130 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
  12131     VkDevice                                    device,
  12132     const VkImageViewHandleInfoNVX*             pInfo);
  12133 
  12134 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
  12135     VkDevice                                    device,
  12136     VkImageView                                 imageView,
  12137     VkImageViewAddressPropertiesNVX*            pProperties);
  12138 #endif
  12139 
  12140 
  12141 // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
  12142 #define VK_AMD_draw_indirect_count 1
  12143 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
  12144 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
  12145 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  12146 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  12147 
  12148 #ifndef VK_NO_PROTOTYPES
  12149 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
  12150     VkCommandBuffer                             commandBuffer,
  12151     VkBuffer                                    buffer,
  12152     VkDeviceSize                                offset,
  12153     VkBuffer                                    countBuffer,
  12154     VkDeviceSize                                countBufferOffset,
  12155     uint32_t                                    maxDrawCount,
  12156     uint32_t                                    stride);
  12157 
  12158 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
  12159     VkCommandBuffer                             commandBuffer,
  12160     VkBuffer                                    buffer,
  12161     VkDeviceSize                                offset,
  12162     VkBuffer                                    countBuffer,
  12163     VkDeviceSize                                countBufferOffset,
  12164     uint32_t                                    maxDrawCount,
  12165     uint32_t                                    stride);
  12166 #endif
  12167 
  12168 
  12169 // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
  12170 #define VK_AMD_negative_viewport_height 1
  12171 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
  12172 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
  12173 
  12174 
  12175 // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
  12176 #define VK_AMD_gpu_shader_half_float 1
  12177 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
  12178 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
  12179 
  12180 
  12181 // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
  12182 #define VK_AMD_shader_ballot 1
  12183 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
  12184 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
  12185 
  12186 
  12187 // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
  12188 #define VK_AMD_texture_gather_bias_lod 1
  12189 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
  12190 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
  12191 typedef struct VkTextureLODGatherFormatPropertiesAMD {
  12192     VkStructureType    sType;
  12193     void*              pNext;
  12194     VkBool32           supportsTextureGatherLODBiasAMD;
  12195 } VkTextureLODGatherFormatPropertiesAMD;
  12196 
  12197 
  12198 
  12199 // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
  12200 #define VK_AMD_shader_info 1
  12201 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
  12202 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
  12203 
  12204 typedef enum VkShaderInfoTypeAMD {
  12205     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
  12206     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
  12207     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
  12208     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
  12209 } VkShaderInfoTypeAMD;
  12210 typedef struct VkShaderResourceUsageAMD {
  12211     uint32_t    numUsedVgprs;
  12212     uint32_t    numUsedSgprs;
  12213     uint32_t    ldsSizePerLocalWorkGroup;
  12214     size_t      ldsUsageSizeInBytes;
  12215     size_t      scratchMemUsageInBytes;
  12216 } VkShaderResourceUsageAMD;
  12217 
  12218 typedef struct VkShaderStatisticsInfoAMD {
  12219     VkShaderStageFlags          shaderStageMask;
  12220     VkShaderResourceUsageAMD    resourceUsage;
  12221     uint32_t                    numPhysicalVgprs;
  12222     uint32_t                    numPhysicalSgprs;
  12223     uint32_t                    numAvailableVgprs;
  12224     uint32_t                    numAvailableSgprs;
  12225     uint32_t                    computeWorkGroupSize[3];
  12226 } VkShaderStatisticsInfoAMD;
  12227 
  12228 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
  12229 
  12230 #ifndef VK_NO_PROTOTYPES
  12231 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
  12232     VkDevice                                    device,
  12233     VkPipeline                                  pipeline,
  12234     VkShaderStageFlagBits                       shaderStage,
  12235     VkShaderInfoTypeAMD                         infoType,
  12236     size_t*                                     pInfoSize,
  12237     void*                                       pInfo);
  12238 #endif
  12239 
  12240 
  12241 // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
  12242 #define VK_AMD_shader_image_load_store_lod 1
  12243 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
  12244 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
  12245 
  12246 
  12247 // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
  12248 #define VK_NV_corner_sampled_image 1
  12249 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
  12250 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
  12251 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
  12252     VkStructureType    sType;
  12253     void*              pNext;
  12254     VkBool32           cornerSampledImage;
  12255 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
  12256 
  12257 
  12258 
  12259 // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
  12260 #define VK_IMG_format_pvrtc 1
  12261 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
  12262 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
  12263 
  12264 
  12265 // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
  12266 #define VK_NV_external_memory_capabilities 1
  12267 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  12268 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
  12269 
  12270 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
  12271     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
  12272     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
  12273     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
  12274     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
  12275     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  12276 } VkExternalMemoryHandleTypeFlagBitsNV;
  12277 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
  12278 
  12279 typedef enum VkExternalMemoryFeatureFlagBitsNV {
  12280     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
  12281     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
  12282     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
  12283     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  12284 } VkExternalMemoryFeatureFlagBitsNV;
  12285 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
  12286 typedef struct VkExternalImageFormatPropertiesNV {
  12287     VkImageFormatProperties              imageFormatProperties;
  12288     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
  12289     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
  12290     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
  12291 } VkExternalImageFormatPropertiesNV;
  12292 
  12293 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  12294 
  12295 #ifndef VK_NO_PROTOTYPES
  12296 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  12297     VkPhysicalDevice                            physicalDevice,
  12298     VkFormat                                    format,
  12299     VkImageType                                 type,
  12300     VkImageTiling                               tiling,
  12301     VkImageUsageFlags                           usage,
  12302     VkImageCreateFlags                          flags,
  12303     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
  12304     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
  12305 #endif
  12306 
  12307 
  12308 // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
  12309 #define VK_NV_external_memory 1
  12310 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
  12311 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
  12312 typedef struct VkExternalMemoryImageCreateInfoNV {
  12313     VkStructureType                      sType;
  12314     const void*                          pNext;
  12315     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
  12316 } VkExternalMemoryImageCreateInfoNV;
  12317 
  12318 typedef struct VkExportMemoryAllocateInfoNV {
  12319     VkStructureType                      sType;
  12320     const void*                          pNext;
  12321     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
  12322 } VkExportMemoryAllocateInfoNV;
  12323 
  12324 
  12325 
  12326 // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
  12327 #define VK_EXT_validation_flags 1
  12328 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
  12329 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
  12330 
  12331 typedef enum VkValidationCheckEXT {
  12332     VK_VALIDATION_CHECK_ALL_EXT = 0,
  12333     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
  12334     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
  12335 } VkValidationCheckEXT;
  12336 typedef struct VkValidationFlagsEXT {
  12337     VkStructureType                sType;
  12338     const void*                    pNext;
  12339     uint32_t                       disabledValidationCheckCount;
  12340     const VkValidationCheckEXT*    pDisabledValidationChecks;
  12341 } VkValidationFlagsEXT;
  12342 
  12343 
  12344 
  12345 // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
  12346 #define VK_EXT_shader_subgroup_ballot 1
  12347 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
  12348 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
  12349 
  12350 
  12351 // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
  12352 #define VK_EXT_shader_subgroup_vote 1
  12353 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
  12354 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
  12355 
  12356 
  12357 // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
  12358 #define VK_EXT_texture_compression_astc_hdr 1
  12359 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
  12360 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
  12361 typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
  12362 
  12363 
  12364 
  12365 // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
  12366 #define VK_EXT_astc_decode_mode 1
  12367 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
  12368 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
  12369 typedef struct VkImageViewASTCDecodeModeEXT {
  12370     VkStructureType    sType;
  12371     const void*        pNext;
  12372     VkFormat           decodeMode;
  12373 } VkImageViewASTCDecodeModeEXT;
  12374 
  12375 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
  12376     VkStructureType    sType;
  12377     void*              pNext;
  12378     VkBool32           decodeModeSharedExponent;
  12379 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
  12380 
  12381 
  12382 
  12383 // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
  12384 #define VK_EXT_pipeline_robustness 1
  12385 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
  12386 #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
  12387 
  12388 typedef enum VkPipelineRobustnessBufferBehaviorEXT {
  12389     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
  12390     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1,
  12391     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2,
  12392     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3,
  12393     VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
  12394 } VkPipelineRobustnessBufferBehaviorEXT;
  12395 
  12396 typedef enum VkPipelineRobustnessImageBehaviorEXT {
  12397     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
  12398     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1,
  12399     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2,
  12400     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
  12401     VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
  12402 } VkPipelineRobustnessImageBehaviorEXT;
  12403 typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT {
  12404     VkStructureType    sType;
  12405     void*              pNext;
  12406     VkBool32           pipelineRobustness;
  12407 } VkPhysicalDevicePipelineRobustnessFeaturesEXT;
  12408 
  12409 typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT {
  12410     VkStructureType                          sType;
  12411     void*                                    pNext;
  12412     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessStorageBuffers;
  12413     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessUniformBuffers;
  12414     VkPipelineRobustnessBufferBehaviorEXT    defaultRobustnessVertexInputs;
  12415     VkPipelineRobustnessImageBehaviorEXT     defaultRobustnessImages;
  12416 } VkPhysicalDevicePipelineRobustnessPropertiesEXT;
  12417 
  12418 typedef struct VkPipelineRobustnessCreateInfoEXT {
  12419     VkStructureType                          sType;
  12420     const void*                              pNext;
  12421     VkPipelineRobustnessBufferBehaviorEXT    storageBuffers;
  12422     VkPipelineRobustnessBufferBehaviorEXT    uniformBuffers;
  12423     VkPipelineRobustnessBufferBehaviorEXT    vertexInputs;
  12424     VkPipelineRobustnessImageBehaviorEXT     images;
  12425 } VkPipelineRobustnessCreateInfoEXT;
  12426 
  12427 
  12428 
  12429 // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
  12430 #define VK_EXT_conditional_rendering 1
  12431 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
  12432 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
  12433 
  12434 typedef enum VkConditionalRenderingFlagBitsEXT {
  12435     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
  12436     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12437 } VkConditionalRenderingFlagBitsEXT;
  12438 typedef VkFlags VkConditionalRenderingFlagsEXT;
  12439 typedef struct VkConditionalRenderingBeginInfoEXT {
  12440     VkStructureType                   sType;
  12441     const void*                       pNext;
  12442     VkBuffer                          buffer;
  12443     VkDeviceSize                      offset;
  12444     VkConditionalRenderingFlagsEXT    flags;
  12445 } VkConditionalRenderingBeginInfoEXT;
  12446 
  12447 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
  12448     VkStructureType    sType;
  12449     void*              pNext;
  12450     VkBool32           conditionalRendering;
  12451     VkBool32           inheritedConditionalRendering;
  12452 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  12453 
  12454 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
  12455     VkStructureType    sType;
  12456     const void*        pNext;
  12457     VkBool32           conditionalRenderingEnable;
  12458 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  12459 
  12460 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  12461 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
  12462 
  12463 #ifndef VK_NO_PROTOTYPES
  12464 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
  12465     VkCommandBuffer                             commandBuffer,
  12466     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
  12467 
  12468 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
  12469     VkCommandBuffer                             commandBuffer);
  12470 #endif
  12471 
  12472 
  12473 // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
  12474 #define VK_NV_clip_space_w_scaling 1
  12475 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
  12476 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
  12477 typedef struct VkViewportWScalingNV {
  12478     float    xcoeff;
  12479     float    ycoeff;
  12480 } VkViewportWScalingNV;
  12481 
  12482 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
  12483     VkStructureType                sType;
  12484     const void*                    pNext;
  12485     VkBool32                       viewportWScalingEnable;
  12486     uint32_t                       viewportCount;
  12487     const VkViewportWScalingNV*    pViewportWScalings;
  12488 } VkPipelineViewportWScalingStateCreateInfoNV;
  12489 
  12490 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
  12491 
  12492 #ifndef VK_NO_PROTOTYPES
  12493 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
  12494     VkCommandBuffer                             commandBuffer,
  12495     uint32_t                                    firstViewport,
  12496     uint32_t                                    viewportCount,
  12497     const VkViewportWScalingNV*                 pViewportWScalings);
  12498 #endif
  12499 
  12500 
  12501 // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
  12502 #define VK_EXT_direct_mode_display 1
  12503 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
  12504 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
  12505 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  12506 
  12507 #ifndef VK_NO_PROTOTYPES
  12508 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
  12509     VkPhysicalDevice                            physicalDevice,
  12510     VkDisplayKHR                                display);
  12511 #endif
  12512 
  12513 
  12514 // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
  12515 #define VK_EXT_display_surface_counter 1
  12516 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
  12517 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
  12518 
  12519 typedef enum VkSurfaceCounterFlagBitsEXT {
  12520     VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
  12521     VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
  12522     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12523 } VkSurfaceCounterFlagBitsEXT;
  12524 typedef VkFlags VkSurfaceCounterFlagsEXT;
  12525 typedef struct VkSurfaceCapabilities2EXT {
  12526     VkStructureType                  sType;
  12527     void*                            pNext;
  12528     uint32_t                         minImageCount;
  12529     uint32_t                         maxImageCount;
  12530     VkExtent2D                       currentExtent;
  12531     VkExtent2D                       minImageExtent;
  12532     VkExtent2D                       maxImageExtent;
  12533     uint32_t                         maxImageArrayLayers;
  12534     VkSurfaceTransformFlagsKHR       supportedTransforms;
  12535     VkSurfaceTransformFlagBitsKHR    currentTransform;
  12536     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
  12537     VkImageUsageFlags                supportedUsageFlags;
  12538     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
  12539 } VkSurfaceCapabilities2EXT;
  12540 
  12541 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  12542 
  12543 #ifndef VK_NO_PROTOTYPES
  12544 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
  12545     VkPhysicalDevice                            physicalDevice,
  12546     VkSurfaceKHR                                surface,
  12547     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
  12548 #endif
  12549 
  12550 
  12551 // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
  12552 #define VK_EXT_display_control 1
  12553 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
  12554 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
  12555 
  12556 typedef enum VkDisplayPowerStateEXT {
  12557     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
  12558     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
  12559     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
  12560     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
  12561 } VkDisplayPowerStateEXT;
  12562 
  12563 typedef enum VkDeviceEventTypeEXT {
  12564     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
  12565     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  12566 } VkDeviceEventTypeEXT;
  12567 
  12568 typedef enum VkDisplayEventTypeEXT {
  12569     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
  12570     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  12571 } VkDisplayEventTypeEXT;
  12572 typedef struct VkDisplayPowerInfoEXT {
  12573     VkStructureType           sType;
  12574     const void*               pNext;
  12575     VkDisplayPowerStateEXT    powerState;
  12576 } VkDisplayPowerInfoEXT;
  12577 
  12578 typedef struct VkDeviceEventInfoEXT {
  12579     VkStructureType         sType;
  12580     const void*             pNext;
  12581     VkDeviceEventTypeEXT    deviceEvent;
  12582 } VkDeviceEventInfoEXT;
  12583 
  12584 typedef struct VkDisplayEventInfoEXT {
  12585     VkStructureType          sType;
  12586     const void*              pNext;
  12587     VkDisplayEventTypeEXT    displayEvent;
  12588 } VkDisplayEventInfoEXT;
  12589 
  12590 typedef struct VkSwapchainCounterCreateInfoEXT {
  12591     VkStructureType             sType;
  12592     const void*                 pNext;
  12593     VkSurfaceCounterFlagsEXT    surfaceCounters;
  12594 } VkSwapchainCounterCreateInfoEXT;
  12595 
  12596 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  12597 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  12598 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  12599 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
  12600 
  12601 #ifndef VK_NO_PROTOTYPES
  12602 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
  12603     VkDevice                                    device,
  12604     VkDisplayKHR                                display,
  12605     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
  12606 
  12607 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
  12608     VkDevice                                    device,
  12609     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
  12610     const VkAllocationCallbacks*                pAllocator,
  12611     VkFence*                                    pFence);
  12612 
  12613 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
  12614     VkDevice                                    device,
  12615     VkDisplayKHR                                display,
  12616     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
  12617     const VkAllocationCallbacks*                pAllocator,
  12618     VkFence*                                    pFence);
  12619 
  12620 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
  12621     VkDevice                                    device,
  12622     VkSwapchainKHR                              swapchain,
  12623     VkSurfaceCounterFlagBitsEXT                 counter,
  12624     uint64_t*                                   pCounterValue);
  12625 #endif
  12626 
  12627 
  12628 // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
  12629 #define VK_GOOGLE_display_timing 1
  12630 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
  12631 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
  12632 typedef struct VkRefreshCycleDurationGOOGLE {
  12633     uint64_t    refreshDuration;
  12634 } VkRefreshCycleDurationGOOGLE;
  12635 
  12636 typedef struct VkPastPresentationTimingGOOGLE {
  12637     uint32_t    presentID;
  12638     uint64_t    desiredPresentTime;
  12639     uint64_t    actualPresentTime;
  12640     uint64_t    earliestPresentTime;
  12641     uint64_t    presentMargin;
  12642 } VkPastPresentationTimingGOOGLE;
  12643 
  12644 typedef struct VkPresentTimeGOOGLE {
  12645     uint32_t    presentID;
  12646     uint64_t    desiredPresentTime;
  12647 } VkPresentTimeGOOGLE;
  12648 
  12649 typedef struct VkPresentTimesInfoGOOGLE {
  12650     VkStructureType               sType;
  12651     const void*                   pNext;
  12652     uint32_t                      swapchainCount;
  12653     const VkPresentTimeGOOGLE*    pTimes;
  12654 } VkPresentTimesInfoGOOGLE;
  12655 
  12656 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  12657 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
  12658 
  12659 #ifndef VK_NO_PROTOTYPES
  12660 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
  12661     VkDevice                                    device,
  12662     VkSwapchainKHR                              swapchain,
  12663     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
  12664 
  12665 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
  12666     VkDevice                                    device,
  12667     VkSwapchainKHR                              swapchain,
  12668     uint32_t*                                   pPresentationTimingCount,
  12669     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
  12670 #endif
  12671 
  12672 
  12673 // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
  12674 #define VK_NV_sample_mask_override_coverage 1
  12675 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
  12676 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
  12677 
  12678 
  12679 // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
  12680 #define VK_NV_geometry_shader_passthrough 1
  12681 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
  12682 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
  12683 
  12684 
  12685 // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
  12686 #define VK_NV_viewport_array2 1
  12687 #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
  12688 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
  12689 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
  12690 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
  12691 
  12692 
  12693 // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
  12694 #define VK_NVX_multiview_per_view_attributes 1
  12695 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
  12696 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
  12697 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
  12698     VkStructureType    sType;
  12699     void*              pNext;
  12700     VkBool32           perViewPositionAllComponents;
  12701 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  12702 
  12703 
  12704 
  12705 // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
  12706 #define VK_NV_viewport_swizzle 1
  12707 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
  12708 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
  12709 
  12710 typedef enum VkViewportCoordinateSwizzleNV {
  12711     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
  12712     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
  12713     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
  12714     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
  12715     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
  12716     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
  12717     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
  12718     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
  12719     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
  12720 } VkViewportCoordinateSwizzleNV;
  12721 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
  12722 typedef struct VkViewportSwizzleNV {
  12723     VkViewportCoordinateSwizzleNV    x;
  12724     VkViewportCoordinateSwizzleNV    y;
  12725     VkViewportCoordinateSwizzleNV    z;
  12726     VkViewportCoordinateSwizzleNV    w;
  12727 } VkViewportSwizzleNV;
  12728 
  12729 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
  12730     VkStructureType                                sType;
  12731     const void*                                    pNext;
  12732     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
  12733     uint32_t                                       viewportCount;
  12734     const VkViewportSwizzleNV*                     pViewportSwizzles;
  12735 } VkPipelineViewportSwizzleStateCreateInfoNV;
  12736 
  12737 
  12738 
  12739 // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
  12740 #define VK_EXT_discard_rectangles 1
  12741 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
  12742 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
  12743 
  12744 typedef enum VkDiscardRectangleModeEXT {
  12745     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
  12746     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
  12747     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  12748 } VkDiscardRectangleModeEXT;
  12749 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
  12750 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
  12751     VkStructureType    sType;
  12752     void*              pNext;
  12753     uint32_t           maxDiscardRectangles;
  12754 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  12755 
  12756 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
  12757     VkStructureType                                  sType;
  12758     const void*                                      pNext;
  12759     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
  12760     VkDiscardRectangleModeEXT                        discardRectangleMode;
  12761     uint32_t                                         discardRectangleCount;
  12762     const VkRect2D*                                  pDiscardRectangles;
  12763 } VkPipelineDiscardRectangleStateCreateInfoEXT;
  12764 
  12765 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
  12766 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
  12767 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
  12768 
  12769 #ifndef VK_NO_PROTOTYPES
  12770 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
  12771     VkCommandBuffer                             commandBuffer,
  12772     uint32_t                                    firstDiscardRectangle,
  12773     uint32_t                                    discardRectangleCount,
  12774     const VkRect2D*                             pDiscardRectangles);
  12775 
  12776 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
  12777     VkCommandBuffer                             commandBuffer,
  12778     VkBool32                                    discardRectangleEnable);
  12779 
  12780 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
  12781     VkCommandBuffer                             commandBuffer,
  12782     VkDiscardRectangleModeEXT                   discardRectangleMode);
  12783 #endif
  12784 
  12785 
  12786 // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
  12787 #define VK_EXT_conservative_rasterization 1
  12788 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
  12789 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
  12790 
  12791 typedef enum VkConservativeRasterizationModeEXT {
  12792     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
  12793     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
  12794     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
  12795     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  12796 } VkConservativeRasterizationModeEXT;
  12797 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
  12798 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
  12799     VkStructureType    sType;
  12800     void*              pNext;
  12801     float              primitiveOverestimationSize;
  12802     float              maxExtraPrimitiveOverestimationSize;
  12803     float              extraPrimitiveOverestimationSizeGranularity;
  12804     VkBool32           primitiveUnderestimation;
  12805     VkBool32           conservativePointAndLineRasterization;
  12806     VkBool32           degenerateTrianglesRasterized;
  12807     VkBool32           degenerateLinesRasterized;
  12808     VkBool32           fullyCoveredFragmentShaderInputVariable;
  12809     VkBool32           conservativeRasterizationPostDepthCoverage;
  12810 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  12811 
  12812 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
  12813     VkStructureType                                           sType;
  12814     const void*                                               pNext;
  12815     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
  12816     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
  12817     float                                                     extraPrimitiveOverestimationSize;
  12818 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
  12819 
  12820 
  12821 
  12822 // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
  12823 #define VK_EXT_depth_clip_enable 1
  12824 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
  12825 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
  12826 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
  12827 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
  12828     VkStructureType    sType;
  12829     void*              pNext;
  12830     VkBool32           depthClipEnable;
  12831 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
  12832 
  12833 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
  12834     VkStructureType                                        sType;
  12835     const void*                                            pNext;
  12836     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
  12837     VkBool32                                               depthClipEnable;
  12838 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
  12839 
  12840 
  12841 
  12842 // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
  12843 #define VK_EXT_swapchain_colorspace 1
  12844 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
  12845 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
  12846 
  12847 
  12848 // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
  12849 #define VK_EXT_hdr_metadata 1
  12850 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
  12851 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
  12852 typedef struct VkXYColorEXT {
  12853     float    x;
  12854     float    y;
  12855 } VkXYColorEXT;
  12856 
  12857 typedef struct VkHdrMetadataEXT {
  12858     VkStructureType    sType;
  12859     const void*        pNext;
  12860     VkXYColorEXT       displayPrimaryRed;
  12861     VkXYColorEXT       displayPrimaryGreen;
  12862     VkXYColorEXT       displayPrimaryBlue;
  12863     VkXYColorEXT       whitePoint;
  12864     float              maxLuminance;
  12865     float              minLuminance;
  12866     float              maxContentLightLevel;
  12867     float              maxFrameAverageLightLevel;
  12868 } VkHdrMetadataEXT;
  12869 
  12870 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
  12871 
  12872 #ifndef VK_NO_PROTOTYPES
  12873 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
  12874     VkDevice                                    device,
  12875     uint32_t                                    swapchainCount,
  12876     const VkSwapchainKHR*                       pSwapchains,
  12877     const VkHdrMetadataEXT*                     pMetadata);
  12878 #endif
  12879 
  12880 
  12881 // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  12882 #define VK_IMG_relaxed_line_rasterization 1
  12883 #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
  12884 #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
  12885 typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
  12886     VkStructureType    sType;
  12887     void*              pNext;
  12888     VkBool32           relaxedLineRasterization;
  12889 } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
  12890 
  12891 
  12892 
  12893 // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
  12894 #define VK_EXT_external_memory_dma_buf 1
  12895 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
  12896 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
  12897 
  12898 
  12899 // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
  12900 #define VK_EXT_queue_family_foreign 1
  12901 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
  12902 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
  12903 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~2U)
  12904 
  12905 
  12906 // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
  12907 #define VK_EXT_debug_utils 1
  12908 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
  12909 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
  12910 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
  12911 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
  12912 
  12913 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
  12914     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
  12915     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
  12916     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
  12917     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
  12918     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12919 } VkDebugUtilsMessageSeverityFlagBitsEXT;
  12920 
  12921 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
  12922     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
  12923     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
  12924     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
  12925     VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
  12926     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12927 } VkDebugUtilsMessageTypeFlagBitsEXT;
  12928 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
  12929 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
  12930 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
  12931 typedef struct VkDebugUtilsLabelEXT {
  12932     VkStructureType    sType;
  12933     const void*        pNext;
  12934     const char*        pLabelName;
  12935     float              color[4];
  12936 } VkDebugUtilsLabelEXT;
  12937 
  12938 typedef struct VkDebugUtilsObjectNameInfoEXT {
  12939     VkStructureType    sType;
  12940     const void*        pNext;
  12941     VkObjectType       objectType;
  12942     uint64_t           objectHandle;
  12943     const char*        pObjectName;
  12944 } VkDebugUtilsObjectNameInfoEXT;
  12945 
  12946 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
  12947     VkStructureType                              sType;
  12948     const void*                                  pNext;
  12949     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
  12950     const char*                                  pMessageIdName;
  12951     int32_t                                      messageIdNumber;
  12952     const char*                                  pMessage;
  12953     uint32_t                                     queueLabelCount;
  12954     const VkDebugUtilsLabelEXT*                  pQueueLabels;
  12955     uint32_t                                     cmdBufLabelCount;
  12956     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
  12957     uint32_t                                     objectCount;
  12958     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
  12959 } VkDebugUtilsMessengerCallbackDataEXT;
  12960 
  12961 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
  12962     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
  12963     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
  12964     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
  12965     void*                                            pUserData);
  12966 
  12967 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
  12968     VkStructureType                         sType;
  12969     const void*                             pNext;
  12970     VkDebugUtilsMessengerCreateFlagsEXT     flags;
  12971     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
  12972     VkDebugUtilsMessageTypeFlagsEXT         messageType;
  12973     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
  12974     void*                                   pUserData;
  12975 } VkDebugUtilsMessengerCreateInfoEXT;
  12976 
  12977 typedef struct VkDebugUtilsObjectTagInfoEXT {
  12978     VkStructureType    sType;
  12979     const void*        pNext;
  12980     VkObjectType       objectType;
  12981     uint64_t           objectHandle;
  12982     uint64_t           tagName;
  12983     size_t             tagSize;
  12984     const void*        pTag;
  12985 } VkDebugUtilsObjectTagInfoEXT;
  12986 
  12987 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  12988 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  12989 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  12990 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
  12991 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  12992 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  12993 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
  12994 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  12995 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
  12996 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
  12997 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  12998 
  12999 #ifndef VK_NO_PROTOTYPES
  13000 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
  13001     VkDevice                                    device,
  13002     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
  13003 
  13004 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
  13005     VkDevice                                    device,
  13006     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
  13007 
  13008 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
  13009     VkQueue                                     queue,
  13010     const VkDebugUtilsLabelEXT*                 pLabelInfo);
  13011 
  13012 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
  13013     VkQueue                                     queue);
  13014 
  13015 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
  13016     VkQueue                                     queue,
  13017     const VkDebugUtilsLabelEXT*                 pLabelInfo);
  13018 
  13019 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
  13020     VkCommandBuffer                             commandBuffer,
  13021     const VkDebugUtilsLabelEXT*                 pLabelInfo);
  13022 
  13023 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
  13024     VkCommandBuffer                             commandBuffer);
  13025 
  13026 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
  13027     VkCommandBuffer                             commandBuffer,
  13028     const VkDebugUtilsLabelEXT*                 pLabelInfo);
  13029 
  13030 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
  13031     VkInstance                                  instance,
  13032     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
  13033     const VkAllocationCallbacks*                pAllocator,
  13034     VkDebugUtilsMessengerEXT*                   pMessenger);
  13035 
  13036 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
  13037     VkInstance                                  instance,
  13038     VkDebugUtilsMessengerEXT                    messenger,
  13039     const VkAllocationCallbacks*                pAllocator);
  13040 
  13041 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
  13042     VkInstance                                  instance,
  13043     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
  13044     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
  13045     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  13046 #endif
  13047 
  13048 
  13049 // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
  13050 #define VK_EXT_sampler_filter_minmax 1
  13051 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
  13052 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
  13053 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
  13054 
  13055 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
  13056 
  13057 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  13058 
  13059 
  13060 
  13061 // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
  13062 #define VK_AMD_gpu_shader_int16 1
  13063 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
  13064 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
  13065 
  13066 
  13067 // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
  13068 #define VK_AMD_mixed_attachment_samples 1
  13069 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
  13070 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
  13071 
  13072 
  13073 // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
  13074 #define VK_AMD_shader_fragment_mask 1
  13075 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
  13076 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
  13077 
  13078 
  13079 // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
  13080 #define VK_EXT_inline_uniform_block 1
  13081 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
  13082 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
  13083 typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
  13084 
  13085 typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
  13086 
  13087 typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
  13088 
  13089 typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
  13090 
  13091 
  13092 
  13093 // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
  13094 #define VK_EXT_shader_stencil_export 1
  13095 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
  13096 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
  13097 
  13098 
  13099 // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
  13100 #define VK_EXT_sample_locations 1
  13101 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
  13102 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
  13103 typedef struct VkSampleLocationEXT {
  13104     float    x;
  13105     float    y;
  13106 } VkSampleLocationEXT;
  13107 
  13108 typedef struct VkSampleLocationsInfoEXT {
  13109     VkStructureType               sType;
  13110     const void*                   pNext;
  13111     VkSampleCountFlagBits         sampleLocationsPerPixel;
  13112     VkExtent2D                    sampleLocationGridSize;
  13113     uint32_t                      sampleLocationsCount;
  13114     const VkSampleLocationEXT*    pSampleLocations;
  13115 } VkSampleLocationsInfoEXT;
  13116 
  13117 typedef struct VkAttachmentSampleLocationsEXT {
  13118     uint32_t                    attachmentIndex;
  13119     VkSampleLocationsInfoEXT    sampleLocationsInfo;
  13120 } VkAttachmentSampleLocationsEXT;
  13121 
  13122 typedef struct VkSubpassSampleLocationsEXT {
  13123     uint32_t                    subpassIndex;
  13124     VkSampleLocationsInfoEXT    sampleLocationsInfo;
  13125 } VkSubpassSampleLocationsEXT;
  13126 
  13127 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
  13128     VkStructureType                          sType;
  13129     const void*                              pNext;
  13130     uint32_t                                 attachmentInitialSampleLocationsCount;
  13131     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
  13132     uint32_t                                 postSubpassSampleLocationsCount;
  13133     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
  13134 } VkRenderPassSampleLocationsBeginInfoEXT;
  13135 
  13136 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
  13137     VkStructureType             sType;
  13138     const void*                 pNext;
  13139     VkBool32                    sampleLocationsEnable;
  13140     VkSampleLocationsInfoEXT    sampleLocationsInfo;
  13141 } VkPipelineSampleLocationsStateCreateInfoEXT;
  13142 
  13143 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
  13144     VkStructureType       sType;
  13145     void*                 pNext;
  13146     VkSampleCountFlags    sampleLocationSampleCounts;
  13147     VkExtent2D            maxSampleLocationGridSize;
  13148     float                 sampleLocationCoordinateRange[2];
  13149     uint32_t              sampleLocationSubPixelBits;
  13150     VkBool32              variableSampleLocations;
  13151 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
  13152 
  13153 typedef struct VkMultisamplePropertiesEXT {
  13154     VkStructureType    sType;
  13155     void*              pNext;
  13156     VkExtent2D         maxSampleLocationGridSize;
  13157 } VkMultisamplePropertiesEXT;
  13158 
  13159 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  13160 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
  13161 
  13162 #ifndef VK_NO_PROTOTYPES
  13163 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
  13164     VkCommandBuffer                             commandBuffer,
  13165     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
  13166 
  13167 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
  13168     VkPhysicalDevice                            physicalDevice,
  13169     VkSampleCountFlagBits                       samples,
  13170     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
  13171 #endif
  13172 
  13173 
  13174 // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
  13175 #define VK_EXT_blend_operation_advanced 1
  13176 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
  13177 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
  13178 
  13179 typedef enum VkBlendOverlapEXT {
  13180     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
  13181     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
  13182     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
  13183     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
  13184 } VkBlendOverlapEXT;
  13185 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
  13186     VkStructureType    sType;
  13187     void*              pNext;
  13188     VkBool32           advancedBlendCoherentOperations;
  13189 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  13190 
  13191 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
  13192     VkStructureType    sType;
  13193     void*              pNext;
  13194     uint32_t           advancedBlendMaxColorAttachments;
  13195     VkBool32           advancedBlendIndependentBlend;
  13196     VkBool32           advancedBlendNonPremultipliedSrcColor;
  13197     VkBool32           advancedBlendNonPremultipliedDstColor;
  13198     VkBool32           advancedBlendCorrelatedOverlap;
  13199     VkBool32           advancedBlendAllOperations;
  13200 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  13201 
  13202 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
  13203     VkStructureType      sType;
  13204     const void*          pNext;
  13205     VkBool32             srcPremultiplied;
  13206     VkBool32             dstPremultiplied;
  13207     VkBlendOverlapEXT    blendOverlap;
  13208 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  13209 
  13210 
  13211 
  13212 // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
  13213 #define VK_NV_fragment_coverage_to_color 1
  13214 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
  13215 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
  13216 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
  13217 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
  13218     VkStructureType                                sType;
  13219     const void*                                    pNext;
  13220     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
  13221     VkBool32                                       coverageToColorEnable;
  13222     uint32_t                                       coverageToColorLocation;
  13223 } VkPipelineCoverageToColorStateCreateInfoNV;
  13224 
  13225 
  13226 
  13227 // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
  13228 #define VK_NV_framebuffer_mixed_samples 1
  13229 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
  13230 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
  13231 
  13232 typedef enum VkCoverageModulationModeNV {
  13233     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
  13234     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
  13235     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
  13236     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
  13237     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  13238 } VkCoverageModulationModeNV;
  13239 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
  13240 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
  13241     VkStructureType                                   sType;
  13242     const void*                                       pNext;
  13243     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
  13244     VkCoverageModulationModeNV                        coverageModulationMode;
  13245     VkBool32                                          coverageModulationTableEnable;
  13246     uint32_t                                          coverageModulationTableCount;
  13247     const float*                                      pCoverageModulationTable;
  13248 } VkPipelineCoverageModulationStateCreateInfoNV;
  13249 
  13250 
  13251 
  13252 // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
  13253 #define VK_NV_fill_rectangle 1
  13254 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
  13255 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
  13256 
  13257 
  13258 // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
  13259 #define VK_NV_shader_sm_builtins 1
  13260 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
  13261 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
  13262 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
  13263     VkStructureType    sType;
  13264     void*              pNext;
  13265     uint32_t           shaderSMCount;
  13266     uint32_t           shaderWarpsPerSM;
  13267 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
  13268 
  13269 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
  13270     VkStructureType    sType;
  13271     void*              pNext;
  13272     VkBool32           shaderSMBuiltins;
  13273 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
  13274 
  13275 
  13276 
  13277 // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
  13278 #define VK_EXT_post_depth_coverage 1
  13279 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
  13280 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
  13281 
  13282 
  13283 // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
  13284 #define VK_EXT_image_drm_format_modifier 1
  13285 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
  13286 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
  13287 typedef struct VkDrmFormatModifierPropertiesEXT {
  13288     uint64_t                drmFormatModifier;
  13289     uint32_t                drmFormatModifierPlaneCount;
  13290     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
  13291 } VkDrmFormatModifierPropertiesEXT;
  13292 
  13293 typedef struct VkDrmFormatModifierPropertiesListEXT {
  13294     VkStructureType                      sType;
  13295     void*                                pNext;
  13296     uint32_t                             drmFormatModifierCount;
  13297     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
  13298 } VkDrmFormatModifierPropertiesListEXT;
  13299 
  13300 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
  13301     VkStructureType    sType;
  13302     const void*        pNext;
  13303     uint64_t           drmFormatModifier;
  13304     VkSharingMode      sharingMode;
  13305     uint32_t           queueFamilyIndexCount;
  13306     const uint32_t*    pQueueFamilyIndices;
  13307 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
  13308 
  13309 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
  13310     VkStructureType    sType;
  13311     const void*        pNext;
  13312     uint32_t           drmFormatModifierCount;
  13313     const uint64_t*    pDrmFormatModifiers;
  13314 } VkImageDrmFormatModifierListCreateInfoEXT;
  13315 
  13316 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
  13317     VkStructureType               sType;
  13318     const void*                   pNext;
  13319     uint64_t                      drmFormatModifier;
  13320     uint32_t                      drmFormatModifierPlaneCount;
  13321     const VkSubresourceLayout*    pPlaneLayouts;
  13322 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
  13323 
  13324 typedef struct VkImageDrmFormatModifierPropertiesEXT {
  13325     VkStructureType    sType;
  13326     void*              pNext;
  13327     uint64_t           drmFormatModifier;
  13328 } VkImageDrmFormatModifierPropertiesEXT;
  13329 
  13330 typedef struct VkDrmFormatModifierProperties2EXT {
  13331     uint64_t                 drmFormatModifier;
  13332     uint32_t                 drmFormatModifierPlaneCount;
  13333     VkFormatFeatureFlags2    drmFormatModifierTilingFeatures;
  13334 } VkDrmFormatModifierProperties2EXT;
  13335 
  13336 typedef struct VkDrmFormatModifierPropertiesList2EXT {
  13337     VkStructureType                       sType;
  13338     void*                                 pNext;
  13339     uint32_t                              drmFormatModifierCount;
  13340     VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
  13341 } VkDrmFormatModifierPropertiesList2EXT;
  13342 
  13343 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
  13344 
  13345 #ifndef VK_NO_PROTOTYPES
  13346 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
  13347     VkDevice                                    device,
  13348     VkImage                                     image,
  13349     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
  13350 #endif
  13351 
  13352 
  13353 // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
  13354 #define VK_EXT_validation_cache 1
  13355 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
  13356 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
  13357 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
  13358 
  13359 typedef enum VkValidationCacheHeaderVersionEXT {
  13360     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
  13361     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  13362 } VkValidationCacheHeaderVersionEXT;
  13363 typedef VkFlags VkValidationCacheCreateFlagsEXT;
  13364 typedef struct VkValidationCacheCreateInfoEXT {
  13365     VkStructureType                    sType;
  13366     const void*                        pNext;
  13367     VkValidationCacheCreateFlagsEXT    flags;
  13368     size_t                             initialDataSize;
  13369     const void*                        pInitialData;
  13370 } VkValidationCacheCreateInfoEXT;
  13371 
  13372 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
  13373     VkStructureType         sType;
  13374     const void*             pNext;
  13375     VkValidationCacheEXT    validationCache;
  13376 } VkShaderModuleValidationCacheCreateInfoEXT;
  13377 
  13378 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
  13379 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
  13380 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
  13381 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
  13382 
  13383 #ifndef VK_NO_PROTOTYPES
  13384 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
  13385     VkDevice                                    device,
  13386     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
  13387     const VkAllocationCallbacks*                pAllocator,
  13388     VkValidationCacheEXT*                       pValidationCache);
  13389 
  13390 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
  13391     VkDevice                                    device,
  13392     VkValidationCacheEXT                        validationCache,
  13393     const VkAllocationCallbacks*                pAllocator);
  13394 
  13395 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
  13396     VkDevice                                    device,
  13397     VkValidationCacheEXT                        dstCache,
  13398     uint32_t                                    srcCacheCount,
  13399     const VkValidationCacheEXT*                 pSrcCaches);
  13400 
  13401 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
  13402     VkDevice                                    device,
  13403     VkValidationCacheEXT                        validationCache,
  13404     size_t*                                     pDataSize,
  13405     void*                                       pData);
  13406 #endif
  13407 
  13408 
  13409 // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
  13410 #define VK_EXT_descriptor_indexing 1
  13411 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
  13412 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
  13413 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
  13414 
  13415 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
  13416 
  13417 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
  13418 
  13419 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
  13420 
  13421 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
  13422 
  13423 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
  13424 
  13425 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
  13426 
  13427 
  13428 
  13429 // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
  13430 #define VK_EXT_shader_viewport_index_layer 1
  13431 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
  13432 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
  13433 
  13434 
  13435 // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
  13436 #define VK_NV_shading_rate_image 1
  13437 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
  13438 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
  13439 
  13440 typedef enum VkShadingRatePaletteEntryNV {
  13441     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
  13442     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
  13443     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
  13444     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
  13445     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
  13446     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
  13447     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
  13448     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
  13449     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
  13450     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  13451     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
  13452     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
  13453     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
  13454 } VkShadingRatePaletteEntryNV;
  13455 
  13456 typedef enum VkCoarseSampleOrderTypeNV {
  13457     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
  13458     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
  13459     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
  13460     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
  13461     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  13462 } VkCoarseSampleOrderTypeNV;
  13463 typedef struct VkShadingRatePaletteNV {
  13464     uint32_t                              shadingRatePaletteEntryCount;
  13465     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
  13466 } VkShadingRatePaletteNV;
  13467 
  13468 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
  13469     VkStructureType                  sType;
  13470     const void*                      pNext;
  13471     VkBool32                         shadingRateImageEnable;
  13472     uint32_t                         viewportCount;
  13473     const VkShadingRatePaletteNV*    pShadingRatePalettes;
  13474 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
  13475 
  13476 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
  13477     VkStructureType    sType;
  13478     void*              pNext;
  13479     VkBool32           shadingRateImage;
  13480     VkBool32           shadingRateCoarseSampleOrder;
  13481 } VkPhysicalDeviceShadingRateImageFeaturesNV;
  13482 
  13483 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
  13484     VkStructureType    sType;
  13485     void*              pNext;
  13486     VkExtent2D         shadingRateTexelSize;
  13487     uint32_t           shadingRatePaletteSize;
  13488     uint32_t           shadingRateMaxCoarseSamples;
  13489 } VkPhysicalDeviceShadingRateImagePropertiesNV;
  13490 
  13491 typedef struct VkCoarseSampleLocationNV {
  13492     uint32_t    pixelX;
  13493     uint32_t    pixelY;
  13494     uint32_t    sample;
  13495 } VkCoarseSampleLocationNV;
  13496 
  13497 typedef struct VkCoarseSampleOrderCustomNV {
  13498     VkShadingRatePaletteEntryNV        shadingRate;
  13499     uint32_t                           sampleCount;
  13500     uint32_t                           sampleLocationCount;
  13501     const VkCoarseSampleLocationNV*    pSampleLocations;
  13502 } VkCoarseSampleOrderCustomNV;
  13503 
  13504 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
  13505     VkStructureType                       sType;
  13506     const void*                           pNext;
  13507     VkCoarseSampleOrderTypeNV             sampleOrderType;
  13508     uint32_t                              customSampleOrderCount;
  13509     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
  13510 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  13511 
  13512 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  13513 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
  13514 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  13515 
  13516 #ifndef VK_NO_PROTOTYPES
  13517 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
  13518     VkCommandBuffer                             commandBuffer,
  13519     VkImageView                                 imageView,
  13520     VkImageLayout                               imageLayout);
  13521 
  13522 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
  13523     VkCommandBuffer                             commandBuffer,
  13524     uint32_t                                    firstViewport,
  13525     uint32_t                                    viewportCount,
  13526     const VkShadingRatePaletteNV*               pShadingRatePalettes);
  13527 
  13528 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
  13529     VkCommandBuffer                             commandBuffer,
  13530     VkCoarseSampleOrderTypeNV                   sampleOrderType,
  13531     uint32_t                                    customSampleOrderCount,
  13532     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
  13533 #endif
  13534 
  13535 
  13536 // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
  13537 #define VK_NV_ray_tracing 1
  13538 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
  13539 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
  13540 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
  13541 #define VK_SHADER_UNUSED_KHR              (~0U)
  13542 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
  13543 
  13544 typedef enum VkRayTracingShaderGroupTypeKHR {
  13545     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
  13546     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
  13547     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
  13548     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
  13549     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
  13550     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
  13551     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  13552 } VkRayTracingShaderGroupTypeKHR;
  13553 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
  13554 
  13555 
  13556 typedef enum VkGeometryTypeKHR {
  13557     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
  13558     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
  13559     VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
  13560     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
  13561     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
  13562     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  13563 } VkGeometryTypeKHR;
  13564 typedef VkGeometryTypeKHR VkGeometryTypeNV;
  13565 
  13566 
  13567 typedef enum VkAccelerationStructureTypeKHR {
  13568     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
  13569     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
  13570     VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
  13571     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
  13572     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
  13573     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  13574 } VkAccelerationStructureTypeKHR;
  13575 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
  13576 
  13577 
  13578 typedef enum VkCopyAccelerationStructureModeKHR {
  13579     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
  13580     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
  13581     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
  13582     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
  13583     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
  13584     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
  13585     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  13586 } VkCopyAccelerationStructureModeKHR;
  13587 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
  13588 
  13589 
  13590 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
  13591     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
  13592     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
  13593     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
  13594     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  13595 } VkAccelerationStructureMemoryRequirementsTypeNV;
  13596 
  13597 typedef enum VkGeometryFlagBitsKHR {
  13598     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
  13599     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
  13600     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
  13601     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
  13602     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  13603 } VkGeometryFlagBitsKHR;
  13604 typedef VkFlags VkGeometryFlagsKHR;
  13605 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
  13606 
  13607 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
  13608 
  13609 
  13610 typedef enum VkGeometryInstanceFlagBitsKHR {
  13611     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
  13612     VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
  13613     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
  13614     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
  13615     VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
  13616     VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
  13617     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
  13618     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
  13619     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
  13620     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
  13621     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
  13622     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  13623 } VkGeometryInstanceFlagBitsKHR;
  13624 typedef VkFlags VkGeometryInstanceFlagsKHR;
  13625 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
  13626 
  13627 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
  13628 
  13629 
  13630 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
  13631     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
  13632     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
  13633     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
  13634     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
  13635     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
  13636     VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
  13637     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
  13638     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
  13639     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
  13640 #ifdef VK_ENABLE_BETA_EXTENSIONS
  13641     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
  13642 #endif
  13643     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
  13644     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
  13645     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
  13646     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
  13647     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
  13648     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
  13649     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  13650 } VkBuildAccelerationStructureFlagBitsKHR;
  13651 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
  13652 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
  13653 
  13654 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
  13655 
  13656 typedef struct VkRayTracingShaderGroupCreateInfoNV {
  13657     VkStructureType                   sType;
  13658     const void*                       pNext;
  13659     VkRayTracingShaderGroupTypeKHR    type;
  13660     uint32_t                          generalShader;
  13661     uint32_t                          closestHitShader;
  13662     uint32_t                          anyHitShader;
  13663     uint32_t                          intersectionShader;
  13664 } VkRayTracingShaderGroupCreateInfoNV;
  13665 
  13666 typedef struct VkRayTracingPipelineCreateInfoNV {
  13667     VkStructureType                               sType;
  13668     const void*                                   pNext;
  13669     VkPipelineCreateFlags                         flags;
  13670     uint32_t                                      stageCount;
  13671     const VkPipelineShaderStageCreateInfo*        pStages;
  13672     uint32_t                                      groupCount;
  13673     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
  13674     uint32_t                                      maxRecursionDepth;
  13675     VkPipelineLayout                              layout;
  13676     VkPipeline                                    basePipelineHandle;
  13677     int32_t                                       basePipelineIndex;
  13678 } VkRayTracingPipelineCreateInfoNV;
  13679 
  13680 typedef struct VkGeometryTrianglesNV {
  13681     VkStructureType    sType;
  13682     const void*        pNext;
  13683     VkBuffer           vertexData;
  13684     VkDeviceSize       vertexOffset;
  13685     uint32_t           vertexCount;
  13686     VkDeviceSize       vertexStride;
  13687     VkFormat           vertexFormat;
  13688     VkBuffer           indexData;
  13689     VkDeviceSize       indexOffset;
  13690     uint32_t           indexCount;
  13691     VkIndexType        indexType;
  13692     VkBuffer           transformData;
  13693     VkDeviceSize       transformOffset;
  13694 } VkGeometryTrianglesNV;
  13695 
  13696 typedef struct VkGeometryAABBNV {
  13697     VkStructureType    sType;
  13698     const void*        pNext;
  13699     VkBuffer           aabbData;
  13700     uint32_t           numAABBs;
  13701     uint32_t           stride;
  13702     VkDeviceSize       offset;
  13703 } VkGeometryAABBNV;
  13704 
  13705 typedef struct VkGeometryDataNV {
  13706     VkGeometryTrianglesNV    triangles;
  13707     VkGeometryAABBNV         aabbs;
  13708 } VkGeometryDataNV;
  13709 
  13710 typedef struct VkGeometryNV {
  13711     VkStructureType       sType;
  13712     const void*           pNext;
  13713     VkGeometryTypeKHR     geometryType;
  13714     VkGeometryDataNV      geometry;
  13715     VkGeometryFlagsKHR    flags;
  13716 } VkGeometryNV;
  13717 
  13718 typedef struct VkAccelerationStructureInfoNV {
  13719     VkStructureType                        sType;
  13720     const void*                            pNext;
  13721     VkAccelerationStructureTypeNV          type;
  13722     VkBuildAccelerationStructureFlagsNV    flags;
  13723     uint32_t                               instanceCount;
  13724     uint32_t                               geometryCount;
  13725     const VkGeometryNV*                    pGeometries;
  13726 } VkAccelerationStructureInfoNV;
  13727 
  13728 typedef struct VkAccelerationStructureCreateInfoNV {
  13729     VkStructureType                  sType;
  13730     const void*                      pNext;
  13731     VkDeviceSize                     compactedSize;
  13732     VkAccelerationStructureInfoNV    info;
  13733 } VkAccelerationStructureCreateInfoNV;
  13734 
  13735 typedef struct VkBindAccelerationStructureMemoryInfoNV {
  13736     VkStructureType              sType;
  13737     const void*                  pNext;
  13738     VkAccelerationStructureNV    accelerationStructure;
  13739     VkDeviceMemory               memory;
  13740     VkDeviceSize                 memoryOffset;
  13741     uint32_t                     deviceIndexCount;
  13742     const uint32_t*              pDeviceIndices;
  13743 } VkBindAccelerationStructureMemoryInfoNV;
  13744 
  13745 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
  13746     VkStructureType                     sType;
  13747     const void*                         pNext;
  13748     uint32_t                            accelerationStructureCount;
  13749     const VkAccelerationStructureNV*    pAccelerationStructures;
  13750 } VkWriteDescriptorSetAccelerationStructureNV;
  13751 
  13752 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
  13753     VkStructureType                                    sType;
  13754     const void*                                        pNext;
  13755     VkAccelerationStructureMemoryRequirementsTypeNV    type;
  13756     VkAccelerationStructureNV                          accelerationStructure;
  13757 } VkAccelerationStructureMemoryRequirementsInfoNV;
  13758 
  13759 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
  13760     VkStructureType    sType;
  13761     void*              pNext;
  13762     uint32_t           shaderGroupHandleSize;
  13763     uint32_t           maxRecursionDepth;
  13764     uint32_t           maxShaderGroupStride;
  13765     uint32_t           shaderGroupBaseAlignment;
  13766     uint64_t           maxGeometryCount;
  13767     uint64_t           maxInstanceCount;
  13768     uint64_t           maxTriangleCount;
  13769     uint32_t           maxDescriptorSetAccelerationStructures;
  13770 } VkPhysicalDeviceRayTracingPropertiesNV;
  13771 
  13772 typedef struct VkTransformMatrixKHR {
  13773     float    matrix[3][4];
  13774 } VkTransformMatrixKHR;
  13775 
  13776 typedef VkTransformMatrixKHR VkTransformMatrixNV;
  13777 
  13778 typedef struct VkAabbPositionsKHR {
  13779     float    minX;
  13780     float    minY;
  13781     float    minZ;
  13782     float    maxX;
  13783     float    maxY;
  13784     float    maxZ;
  13785 } VkAabbPositionsKHR;
  13786 
  13787 typedef VkAabbPositionsKHR VkAabbPositionsNV;
  13788 
  13789 typedef struct VkAccelerationStructureInstanceKHR {
  13790     VkTransformMatrixKHR          transform;
  13791     uint32_t                      instanceCustomIndex:24;
  13792     uint32_t                      mask:8;
  13793     uint32_t                      instanceShaderBindingTableRecordOffset:24;
  13794     VkGeometryInstanceFlagsKHR    flags:8;
  13795     uint64_t                      accelerationStructureReference;
  13796 } VkAccelerationStructureInstanceKHR;
  13797 
  13798 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
  13799 
  13800 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
  13801 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
  13802 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
  13803 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  13804 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
  13805 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
  13806 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
  13807 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  13808 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  13809 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  13810 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
  13811 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  13812 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
  13813 
  13814 #ifndef VK_NO_PROTOTYPES
  13815 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
  13816     VkDevice                                    device,
  13817     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
  13818     const VkAllocationCallbacks*                pAllocator,
  13819     VkAccelerationStructureNV*                  pAccelerationStructure);
  13820 
  13821 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
  13822     VkDevice                                    device,
  13823     VkAccelerationStructureNV                   accelerationStructure,
  13824     const VkAllocationCallbacks*                pAllocator);
  13825 
  13826 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
  13827     VkDevice                                    device,
  13828     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
  13829     VkMemoryRequirements2KHR*                   pMemoryRequirements);
  13830 
  13831 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
  13832     VkDevice                                    device,
  13833     uint32_t                                    bindInfoCount,
  13834     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  13835 
  13836 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
  13837     VkCommandBuffer                             commandBuffer,
  13838     const VkAccelerationStructureInfoNV*        pInfo,
  13839     VkBuffer                                    instanceData,
  13840     VkDeviceSize                                instanceOffset,
  13841     VkBool32                                    update,
  13842     VkAccelerationStructureNV                   dst,
  13843     VkAccelerationStructureNV                   src,
  13844     VkBuffer                                    scratch,
  13845     VkDeviceSize                                scratchOffset);
  13846 
  13847 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
  13848     VkCommandBuffer                             commandBuffer,
  13849     VkAccelerationStructureNV                   dst,
  13850     VkAccelerationStructureNV                   src,
  13851     VkCopyAccelerationStructureModeKHR          mode);
  13852 
  13853 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
  13854     VkCommandBuffer                             commandBuffer,
  13855     VkBuffer                                    raygenShaderBindingTableBuffer,
  13856     VkDeviceSize                                raygenShaderBindingOffset,
  13857     VkBuffer                                    missShaderBindingTableBuffer,
  13858     VkDeviceSize                                missShaderBindingOffset,
  13859     VkDeviceSize                                missShaderBindingStride,
  13860     VkBuffer                                    hitShaderBindingTableBuffer,
  13861     VkDeviceSize                                hitShaderBindingOffset,
  13862     VkDeviceSize                                hitShaderBindingStride,
  13863     VkBuffer                                    callableShaderBindingTableBuffer,
  13864     VkDeviceSize                                callableShaderBindingOffset,
  13865     VkDeviceSize                                callableShaderBindingStride,
  13866     uint32_t                                    width,
  13867     uint32_t                                    height,
  13868     uint32_t                                    depth);
  13869 
  13870 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
  13871     VkDevice                                    device,
  13872     VkPipelineCache                             pipelineCache,
  13873     uint32_t                                    createInfoCount,
  13874     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
  13875     const VkAllocationCallbacks*                pAllocator,
  13876     VkPipeline*                                 pPipelines);
  13877 
  13878 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
  13879     VkDevice                                    device,
  13880     VkPipeline                                  pipeline,
  13881     uint32_t                                    firstGroup,
  13882     uint32_t                                    groupCount,
  13883     size_t                                      dataSize,
  13884     void*                                       pData);
  13885 
  13886 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
  13887     VkDevice                                    device,
  13888     VkPipeline                                  pipeline,
  13889     uint32_t                                    firstGroup,
  13890     uint32_t                                    groupCount,
  13891     size_t                                      dataSize,
  13892     void*                                       pData);
  13893 
  13894 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
  13895     VkDevice                                    device,
  13896     VkAccelerationStructureNV                   accelerationStructure,
  13897     size_t                                      dataSize,
  13898     void*                                       pData);
  13899 
  13900 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
  13901     VkCommandBuffer                             commandBuffer,
  13902     uint32_t                                    accelerationStructureCount,
  13903     const VkAccelerationStructureNV*            pAccelerationStructures,
  13904     VkQueryType                                 queryType,
  13905     VkQueryPool                                 queryPool,
  13906     uint32_t                                    firstQuery);
  13907 
  13908 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
  13909     VkDevice                                    device,
  13910     VkPipeline                                  pipeline,
  13911     uint32_t                                    shader);
  13912 #endif
  13913 
  13914 
  13915 // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
  13916 #define VK_NV_representative_fragment_test 1
  13917 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
  13918 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
  13919 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
  13920     VkStructureType    sType;
  13921     void*              pNext;
  13922     VkBool32           representativeFragmentTest;
  13923 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  13924 
  13925 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
  13926     VkStructureType    sType;
  13927     const void*        pNext;
  13928     VkBool32           representativeFragmentTestEnable;
  13929 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  13930 
  13931 
  13932 
  13933 // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
  13934 #define VK_EXT_filter_cubic 1
  13935 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
  13936 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
  13937 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
  13938     VkStructureType    sType;
  13939     void*              pNext;
  13940     VkImageViewType    imageViewType;
  13941 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
  13942 
  13943 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
  13944     VkStructureType    sType;
  13945     void*              pNext;
  13946     VkBool32           filterCubic;
  13947     VkBool32           filterCubicMinmax;
  13948 } VkFilterCubicImageViewImageFormatPropertiesEXT;
  13949 
  13950 
  13951 
  13952 // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
  13953 #define VK_QCOM_render_pass_shader_resolve 1
  13954 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
  13955 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
  13956 
  13957 
  13958 // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
  13959 #define VK_EXT_global_priority 1
  13960 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
  13961 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
  13962 typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
  13963 
  13964 typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
  13965 
  13966 
  13967 
  13968 // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
  13969 #define VK_EXT_external_memory_host 1
  13970 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
  13971 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
  13972 typedef struct VkImportMemoryHostPointerInfoEXT {
  13973     VkStructureType                       sType;
  13974     const void*                           pNext;
  13975     VkExternalMemoryHandleTypeFlagBits    handleType;
  13976     void*                                 pHostPointer;
  13977 } VkImportMemoryHostPointerInfoEXT;
  13978 
  13979 typedef struct VkMemoryHostPointerPropertiesEXT {
  13980     VkStructureType    sType;
  13981     void*              pNext;
  13982     uint32_t           memoryTypeBits;
  13983 } VkMemoryHostPointerPropertiesEXT;
  13984 
  13985 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
  13986     VkStructureType    sType;
  13987     void*              pNext;
  13988     VkDeviceSize       minImportedHostPointerAlignment;
  13989 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  13990 
  13991 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  13992 
  13993 #ifndef VK_NO_PROTOTYPES
  13994 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
  13995     VkDevice                                    device,
  13996     VkExternalMemoryHandleTypeFlagBits          handleType,
  13997     const void*                                 pHostPointer,
  13998     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
  13999 #endif
  14000 
  14001 
  14002 // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
  14003 #define VK_AMD_buffer_marker 1
  14004 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
  14005 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
  14006 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  14007 
  14008 #ifndef VK_NO_PROTOTYPES
  14009 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
  14010     VkCommandBuffer                             commandBuffer,
  14011     VkPipelineStageFlagBits                     pipelineStage,
  14012     VkBuffer                                    dstBuffer,
  14013     VkDeviceSize                                dstOffset,
  14014     uint32_t                                    marker);
  14015 #endif
  14016 
  14017 
  14018 // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
  14019 #define VK_AMD_pipeline_compiler_control 1
  14020 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
  14021 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
  14022 
  14023 typedef enum VkPipelineCompilerControlFlagBitsAMD {
  14024     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  14025 } VkPipelineCompilerControlFlagBitsAMD;
  14026 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
  14027 typedef struct VkPipelineCompilerControlCreateInfoAMD {
  14028     VkStructureType                      sType;
  14029     const void*                          pNext;
  14030     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
  14031 } VkPipelineCompilerControlCreateInfoAMD;
  14032 
  14033 
  14034 
  14035 // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
  14036 #define VK_EXT_calibrated_timestamps 1
  14037 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
  14038 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
  14039 typedef VkTimeDomainKHR VkTimeDomainEXT;
  14040 
  14041 typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
  14042 
  14043 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
  14044 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
  14045 
  14046 #ifndef VK_NO_PROTOTYPES
  14047 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
  14048     VkPhysicalDevice                            physicalDevice,
  14049     uint32_t*                                   pTimeDomainCount,
  14050     VkTimeDomainKHR*                            pTimeDomains);
  14051 
  14052 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
  14053     VkDevice                                    device,
  14054     uint32_t                                    timestampCount,
  14055     const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
  14056     uint64_t*                                   pTimestamps,
  14057     uint64_t*                                   pMaxDeviation);
  14058 #endif
  14059 
  14060 
  14061 // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
  14062 #define VK_AMD_shader_core_properties 1
  14063 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
  14064 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
  14065 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
  14066     VkStructureType    sType;
  14067     void*              pNext;
  14068     uint32_t           shaderEngineCount;
  14069     uint32_t           shaderArraysPerEngineCount;
  14070     uint32_t           computeUnitsPerShaderArray;
  14071     uint32_t           simdPerComputeUnit;
  14072     uint32_t           wavefrontsPerSimd;
  14073     uint32_t           wavefrontSize;
  14074     uint32_t           sgprsPerSimd;
  14075     uint32_t           minSgprAllocation;
  14076     uint32_t           maxSgprAllocation;
  14077     uint32_t           sgprAllocationGranularity;
  14078     uint32_t           vgprsPerSimd;
  14079     uint32_t           minVgprAllocation;
  14080     uint32_t           maxVgprAllocation;
  14081     uint32_t           vgprAllocationGranularity;
  14082 } VkPhysicalDeviceShaderCorePropertiesAMD;
  14083 
  14084 
  14085 
  14086 // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
  14087 #define VK_AMD_memory_overallocation_behavior 1
  14088 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
  14089 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
  14090 
  14091 typedef enum VkMemoryOverallocationBehaviorAMD {
  14092     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
  14093     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
  14094     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
  14095     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
  14096 } VkMemoryOverallocationBehaviorAMD;
  14097 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
  14098     VkStructureType                      sType;
  14099     const void*                          pNext;
  14100     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
  14101 } VkDeviceMemoryOverallocationCreateInfoAMD;
  14102 
  14103 
  14104 
  14105 // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
  14106 #define VK_EXT_vertex_attribute_divisor 1
  14107 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
  14108 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
  14109 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
  14110     VkStructureType    sType;
  14111     void*              pNext;
  14112     uint32_t           maxVertexAttribDivisor;
  14113 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  14114 
  14115 typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT;
  14116 
  14117 typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT;
  14118 
  14119 typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  14120 
  14121 
  14122 
  14123 // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
  14124 #define VK_EXT_pipeline_creation_feedback 1
  14125 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
  14126 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
  14127 typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
  14128 
  14129 typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
  14130 
  14131 typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
  14132 
  14133 typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
  14134 
  14135 
  14136 
  14137 // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
  14138 #define VK_NV_shader_subgroup_partitioned 1
  14139 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
  14140 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
  14141 
  14142 
  14143 // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
  14144 #define VK_NV_compute_shader_derivatives 1
  14145 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
  14146 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
  14147 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
  14148     VkStructureType    sType;
  14149     void*              pNext;
  14150     VkBool32           computeDerivativeGroupQuads;
  14151     VkBool32           computeDerivativeGroupLinear;
  14152 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  14153 
  14154 
  14155 
  14156 // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
  14157 #define VK_NV_mesh_shader 1
  14158 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
  14159 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
  14160 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
  14161     VkStructureType    sType;
  14162     void*              pNext;
  14163     VkBool32           taskShader;
  14164     VkBool32           meshShader;
  14165 } VkPhysicalDeviceMeshShaderFeaturesNV;
  14166 
  14167 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
  14168     VkStructureType    sType;
  14169     void*              pNext;
  14170     uint32_t           maxDrawMeshTasksCount;
  14171     uint32_t           maxTaskWorkGroupInvocations;
  14172     uint32_t           maxTaskWorkGroupSize[3];
  14173     uint32_t           maxTaskTotalMemorySize;
  14174     uint32_t           maxTaskOutputCount;
  14175     uint32_t           maxMeshWorkGroupInvocations;
  14176     uint32_t           maxMeshWorkGroupSize[3];
  14177     uint32_t           maxMeshTotalMemorySize;
  14178     uint32_t           maxMeshOutputVertices;
  14179     uint32_t           maxMeshOutputPrimitives;
  14180     uint32_t           maxMeshMultiviewViewCount;
  14181     uint32_t           meshOutputPerVertexGranularity;
  14182     uint32_t           meshOutputPerPrimitiveGranularity;
  14183 } VkPhysicalDeviceMeshShaderPropertiesNV;
  14184 
  14185 typedef struct VkDrawMeshTasksIndirectCommandNV {
  14186     uint32_t    taskCount;
  14187     uint32_t    firstTask;
  14188 } VkDrawMeshTasksIndirectCommandNV;
  14189 
  14190 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
  14191 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  14192 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  14193 
  14194 #ifndef VK_NO_PROTOTYPES
  14195 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
  14196     VkCommandBuffer                             commandBuffer,
  14197     uint32_t                                    taskCount,
  14198     uint32_t                                    firstTask);
  14199 
  14200 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
  14201     VkCommandBuffer                             commandBuffer,
  14202     VkBuffer                                    buffer,
  14203     VkDeviceSize                                offset,
  14204     uint32_t                                    drawCount,
  14205     uint32_t                                    stride);
  14206 
  14207 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
  14208     VkCommandBuffer                             commandBuffer,
  14209     VkBuffer                                    buffer,
  14210     VkDeviceSize                                offset,
  14211     VkBuffer                                    countBuffer,
  14212     VkDeviceSize                                countBufferOffset,
  14213     uint32_t                                    maxDrawCount,
  14214     uint32_t                                    stride);
  14215 #endif
  14216 
  14217 
  14218 // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
  14219 #define VK_NV_fragment_shader_barycentric 1
  14220 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  14221 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
  14222 typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  14223 
  14224 
  14225 
  14226 // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
  14227 #define VK_NV_shader_image_footprint 1
  14228 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
  14229 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
  14230 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
  14231     VkStructureType    sType;
  14232     void*              pNext;
  14233     VkBool32           imageFootprint;
  14234 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  14235 
  14236 
  14237 
  14238 // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
  14239 #define VK_NV_scissor_exclusive 1
  14240 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
  14241 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
  14242 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
  14243     VkStructureType    sType;
  14244     const void*        pNext;
  14245     uint32_t           exclusiveScissorCount;
  14246     const VkRect2D*    pExclusiveScissors;
  14247 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  14248 
  14249 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
  14250     VkStructureType    sType;
  14251     void*              pNext;
  14252     VkBool32           exclusiveScissor;
  14253 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
  14254 
  14255 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
  14256 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
  14257 
  14258 #ifndef VK_NO_PROTOTYPES
  14259 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
  14260     VkCommandBuffer                             commandBuffer,
  14261     uint32_t                                    firstExclusiveScissor,
  14262     uint32_t                                    exclusiveScissorCount,
  14263     const VkBool32*                             pExclusiveScissorEnables);
  14264 
  14265 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
  14266     VkCommandBuffer                             commandBuffer,
  14267     uint32_t                                    firstExclusiveScissor,
  14268     uint32_t                                    exclusiveScissorCount,
  14269     const VkRect2D*                             pExclusiveScissors);
  14270 #endif
  14271 
  14272 
  14273 // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
  14274 #define VK_NV_device_diagnostic_checkpoints 1
  14275 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
  14276 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
  14277 typedef struct VkQueueFamilyCheckpointPropertiesNV {
  14278     VkStructureType         sType;
  14279     void*                   pNext;
  14280     VkPipelineStageFlags    checkpointExecutionStageMask;
  14281 } VkQueueFamilyCheckpointPropertiesNV;
  14282 
  14283 typedef struct VkCheckpointDataNV {
  14284     VkStructureType            sType;
  14285     void*                      pNext;
  14286     VkPipelineStageFlagBits    stage;
  14287     void*                      pCheckpointMarker;
  14288 } VkCheckpointDataNV;
  14289 
  14290 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
  14291 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
  14292 
  14293 #ifndef VK_NO_PROTOTYPES
  14294 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
  14295     VkCommandBuffer                             commandBuffer,
  14296     const void*                                 pCheckpointMarker);
  14297 
  14298 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
  14299     VkQueue                                     queue,
  14300     uint32_t*                                   pCheckpointDataCount,
  14301     VkCheckpointDataNV*                         pCheckpointData);
  14302 #endif
  14303 
  14304 
  14305 // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
  14306 #define VK_INTEL_shader_integer_functions2 1
  14307 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
  14308 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
  14309 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
  14310     VkStructureType    sType;
  14311     void*              pNext;
  14312     VkBool32           shaderIntegerFunctions2;
  14313 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  14314 
  14315 
  14316 
  14317 // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
  14318 #define VK_INTEL_performance_query 1
  14319 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
  14320 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
  14321 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
  14322 
  14323 typedef enum VkPerformanceConfigurationTypeINTEL {
  14324     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
  14325     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14326 } VkPerformanceConfigurationTypeINTEL;
  14327 
  14328 typedef enum VkQueryPoolSamplingModeINTEL {
  14329     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
  14330     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14331 } VkQueryPoolSamplingModeINTEL;
  14332 
  14333 typedef enum VkPerformanceOverrideTypeINTEL {
  14334     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
  14335     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
  14336     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14337 } VkPerformanceOverrideTypeINTEL;
  14338 
  14339 typedef enum VkPerformanceParameterTypeINTEL {
  14340     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
  14341     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
  14342     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14343 } VkPerformanceParameterTypeINTEL;
  14344 
  14345 typedef enum VkPerformanceValueTypeINTEL {
  14346     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
  14347     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
  14348     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
  14349     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
  14350     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
  14351     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14352 } VkPerformanceValueTypeINTEL;
  14353 typedef union VkPerformanceValueDataINTEL {
  14354     uint32_t       value32;
  14355     uint64_t       value64;
  14356     float          valueFloat;
  14357     VkBool32       valueBool;
  14358     const char*    valueString;
  14359 } VkPerformanceValueDataINTEL;
  14360 
  14361 typedef struct VkPerformanceValueINTEL {
  14362     VkPerformanceValueTypeINTEL    type;
  14363     VkPerformanceValueDataINTEL    data;
  14364 } VkPerformanceValueINTEL;
  14365 
  14366 typedef struct VkInitializePerformanceApiInfoINTEL {
  14367     VkStructureType    sType;
  14368     const void*        pNext;
  14369     void*              pUserData;
  14370 } VkInitializePerformanceApiInfoINTEL;
  14371 
  14372 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
  14373     VkStructureType                 sType;
  14374     const void*                     pNext;
  14375     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
  14376 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
  14377 
  14378 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
  14379 
  14380 typedef struct VkPerformanceMarkerInfoINTEL {
  14381     VkStructureType    sType;
  14382     const void*        pNext;
  14383     uint64_t           marker;
  14384 } VkPerformanceMarkerInfoINTEL;
  14385 
  14386 typedef struct VkPerformanceStreamMarkerInfoINTEL {
  14387     VkStructureType    sType;
  14388     const void*        pNext;
  14389     uint32_t           marker;
  14390 } VkPerformanceStreamMarkerInfoINTEL;
  14391 
  14392 typedef struct VkPerformanceOverrideInfoINTEL {
  14393     VkStructureType                   sType;
  14394     const void*                       pNext;
  14395     VkPerformanceOverrideTypeINTEL    type;
  14396     VkBool32                          enable;
  14397     uint64_t                          parameter;
  14398 } VkPerformanceOverrideInfoINTEL;
  14399 
  14400 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
  14401     VkStructureType                        sType;
  14402     const void*                            pNext;
  14403     VkPerformanceConfigurationTypeINTEL    type;
  14404 } VkPerformanceConfigurationAcquireInfoINTEL;
  14405 
  14406 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  14407 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
  14408 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  14409 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  14410 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  14411 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
  14412 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
  14413 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
  14414 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
  14415 
  14416 #ifndef VK_NO_PROTOTYPES
  14417 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
  14418     VkDevice                                    device,
  14419     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
  14420 
  14421 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
  14422     VkDevice                                    device);
  14423 
  14424 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
  14425     VkCommandBuffer                             commandBuffer,
  14426     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
  14427 
  14428 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
  14429     VkCommandBuffer                             commandBuffer,
  14430     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
  14431 
  14432 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
  14433     VkCommandBuffer                             commandBuffer,
  14434     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
  14435 
  14436 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
  14437     VkDevice                                    device,
  14438     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
  14439     VkPerformanceConfigurationINTEL*            pConfiguration);
  14440 
  14441 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
  14442     VkDevice                                    device,
  14443     VkPerformanceConfigurationINTEL             configuration);
  14444 
  14445 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
  14446     VkQueue                                     queue,
  14447     VkPerformanceConfigurationINTEL             configuration);
  14448 
  14449 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
  14450     VkDevice                                    device,
  14451     VkPerformanceParameterTypeINTEL             parameter,
  14452     VkPerformanceValueINTEL*                    pValue);
  14453 #endif
  14454 
  14455 
  14456 // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
  14457 #define VK_EXT_pci_bus_info 1
  14458 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
  14459 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
  14460 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
  14461     VkStructureType    sType;
  14462     void*              pNext;
  14463     uint32_t           pciDomain;
  14464     uint32_t           pciBus;
  14465     uint32_t           pciDevice;
  14466     uint32_t           pciFunction;
  14467 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
  14468 
  14469 
  14470 
  14471 // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
  14472 #define VK_AMD_display_native_hdr 1
  14473 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
  14474 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
  14475 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
  14476     VkStructureType    sType;
  14477     void*              pNext;
  14478     VkBool32           localDimmingSupport;
  14479 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  14480 
  14481 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
  14482     VkStructureType    sType;
  14483     const void*        pNext;
  14484     VkBool32           localDimmingEnable;
  14485 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
  14486 
  14487 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
  14488 
  14489 #ifndef VK_NO_PROTOTYPES
  14490 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
  14491     VkDevice                                    device,
  14492     VkSwapchainKHR                              swapChain,
  14493     VkBool32                                    localDimmingEnable);
  14494 #endif
  14495 
  14496 
  14497 // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
  14498 #define VK_EXT_fragment_density_map 1
  14499 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
  14500 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
  14501 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
  14502     VkStructureType    sType;
  14503     void*              pNext;
  14504     VkBool32           fragmentDensityMap;
  14505     VkBool32           fragmentDensityMapDynamic;
  14506     VkBool32           fragmentDensityMapNonSubsampledImages;
  14507 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  14508 
  14509 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
  14510     VkStructureType    sType;
  14511     void*              pNext;
  14512     VkExtent2D         minFragmentDensityTexelSize;
  14513     VkExtent2D         maxFragmentDensityTexelSize;
  14514     VkBool32           fragmentDensityInvocations;
  14515 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  14516 
  14517 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
  14518     VkStructureType          sType;
  14519     const void*              pNext;
  14520     VkAttachmentReference    fragmentDensityMapAttachment;
  14521 } VkRenderPassFragmentDensityMapCreateInfoEXT;
  14522 
  14523 
  14524 
  14525 // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
  14526 #define VK_EXT_scalar_block_layout 1
  14527 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
  14528 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
  14529 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
  14530 
  14531 
  14532 
  14533 // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
  14534 #define VK_GOOGLE_hlsl_functionality1 1
  14535 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
  14536 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
  14537 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
  14538 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
  14539 
  14540 
  14541 // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
  14542 #define VK_GOOGLE_decorate_string 1
  14543 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
  14544 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
  14545 
  14546 
  14547 // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
  14548 #define VK_EXT_subgroup_size_control 1
  14549 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
  14550 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
  14551 typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
  14552 
  14553 typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
  14554 
  14555 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
  14556 
  14557 
  14558 
  14559 // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
  14560 #define VK_AMD_shader_core_properties2 1
  14561 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
  14562 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
  14563 
  14564 typedef enum VkShaderCorePropertiesFlagBitsAMD {
  14565     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  14566 } VkShaderCorePropertiesFlagBitsAMD;
  14567 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
  14568 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
  14569     VkStructureType                   sType;
  14570     void*                             pNext;
  14571     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
  14572     uint32_t                          activeComputeUnitCount;
  14573 } VkPhysicalDeviceShaderCoreProperties2AMD;
  14574 
  14575 
  14576 
  14577 // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
  14578 #define VK_AMD_device_coherent_memory 1
  14579 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
  14580 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
  14581 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
  14582     VkStructureType    sType;
  14583     void*              pNext;
  14584     VkBool32           deviceCoherentMemory;
  14585 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  14586 
  14587 
  14588 
  14589 // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
  14590 #define VK_EXT_shader_image_atomic_int64 1
  14591 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
  14592 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
  14593 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
  14594     VkStructureType    sType;
  14595     void*              pNext;
  14596     VkBool32           shaderImageInt64Atomics;
  14597     VkBool32           sparseImageInt64Atomics;
  14598 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  14599 
  14600 
  14601 
  14602 // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
  14603 #define VK_EXT_memory_budget 1
  14604 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
  14605 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
  14606 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
  14607     VkStructureType    sType;
  14608     void*              pNext;
  14609     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
  14610     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
  14611 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  14612 
  14613 
  14614 
  14615 // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
  14616 #define VK_EXT_memory_priority 1
  14617 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
  14618 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
  14619 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
  14620     VkStructureType    sType;
  14621     void*              pNext;
  14622     VkBool32           memoryPriority;
  14623 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  14624 
  14625 typedef struct VkMemoryPriorityAllocateInfoEXT {
  14626     VkStructureType    sType;
  14627     const void*        pNext;
  14628     float              priority;
  14629 } VkMemoryPriorityAllocateInfoEXT;
  14630 
  14631 
  14632 
  14633 // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
  14634 #define VK_NV_dedicated_allocation_image_aliasing 1
  14635 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
  14636 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
  14637 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
  14638     VkStructureType    sType;
  14639     void*              pNext;
  14640     VkBool32           dedicatedAllocationImageAliasing;
  14641 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  14642 
  14643 
  14644 
  14645 // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
  14646 #define VK_EXT_buffer_device_address 1
  14647 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
  14648 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
  14649 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
  14650     VkStructureType    sType;
  14651     void*              pNext;
  14652     VkBool32           bufferDeviceAddress;
  14653     VkBool32           bufferDeviceAddressCaptureReplay;
  14654     VkBool32           bufferDeviceAddressMultiDevice;
  14655 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  14656 
  14657 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
  14658 
  14659 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
  14660 
  14661 typedef struct VkBufferDeviceAddressCreateInfoEXT {
  14662     VkStructureType    sType;
  14663     const void*        pNext;
  14664     VkDeviceAddress    deviceAddress;
  14665 } VkBufferDeviceAddressCreateInfoEXT;
  14666 
  14667 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  14668 
  14669 #ifndef VK_NO_PROTOTYPES
  14670 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
  14671     VkDevice                                    device,
  14672     const VkBufferDeviceAddressInfo*            pInfo);
  14673 #endif
  14674 
  14675 
  14676 // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
  14677 #define VK_EXT_tooling_info 1
  14678 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
  14679 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
  14680 typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
  14681 
  14682 typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
  14683 
  14684 typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
  14685 
  14686 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
  14687 
  14688 #ifndef VK_NO_PROTOTYPES
  14689 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
  14690     VkPhysicalDevice                            physicalDevice,
  14691     uint32_t*                                   pToolCount,
  14692     VkPhysicalDeviceToolProperties*             pToolProperties);
  14693 #endif
  14694 
  14695 
  14696 // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
  14697 #define VK_EXT_separate_stencil_usage 1
  14698 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
  14699 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
  14700 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
  14701 
  14702 
  14703 
  14704 // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
  14705 #define VK_EXT_validation_features 1
  14706 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
  14707 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
  14708 
  14709 typedef enum VkValidationFeatureEnableEXT {
  14710     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
  14711     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
  14712     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
  14713     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
  14714     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
  14715     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  14716 } VkValidationFeatureEnableEXT;
  14717 
  14718 typedef enum VkValidationFeatureDisableEXT {
  14719     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
  14720     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
  14721     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
  14722     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
  14723     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
  14724     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
  14725     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
  14726     VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
  14727     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  14728 } VkValidationFeatureDisableEXT;
  14729 typedef struct VkValidationFeaturesEXT {
  14730     VkStructureType                         sType;
  14731     const void*                             pNext;
  14732     uint32_t                                enabledValidationFeatureCount;
  14733     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
  14734     uint32_t                                disabledValidationFeatureCount;
  14735     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
  14736 } VkValidationFeaturesEXT;
  14737 
  14738 
  14739 
  14740 // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
  14741 #define VK_NV_cooperative_matrix 1
  14742 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
  14743 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
  14744 typedef VkComponentTypeKHR VkComponentTypeNV;
  14745 
  14746 typedef VkScopeKHR VkScopeNV;
  14747 
  14748 typedef struct VkCooperativeMatrixPropertiesNV {
  14749     VkStructureType      sType;
  14750     void*                pNext;
  14751     uint32_t             MSize;
  14752     uint32_t             NSize;
  14753     uint32_t             KSize;
  14754     VkComponentTypeNV    AType;
  14755     VkComponentTypeNV    BType;
  14756     VkComponentTypeNV    CType;
  14757     VkComponentTypeNV    DType;
  14758     VkScopeNV            scope;
  14759 } VkCooperativeMatrixPropertiesNV;
  14760 
  14761 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
  14762     VkStructureType    sType;
  14763     void*              pNext;
  14764     VkBool32           cooperativeMatrix;
  14765     VkBool32           cooperativeMatrixRobustBufferAccess;
  14766 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  14767 
  14768 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
  14769     VkStructureType       sType;
  14770     void*                 pNext;
  14771     VkShaderStageFlags    cooperativeMatrixSupportedStages;
  14772 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  14773 
  14774 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
  14775 
  14776 #ifndef VK_NO_PROTOTYPES
  14777 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
  14778     VkPhysicalDevice                            physicalDevice,
  14779     uint32_t*                                   pPropertyCount,
  14780     VkCooperativeMatrixPropertiesNV*            pProperties);
  14781 #endif
  14782 
  14783 
  14784 // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
  14785 #define VK_NV_coverage_reduction_mode 1
  14786 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
  14787 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
  14788 
  14789 typedef enum VkCoverageReductionModeNV {
  14790     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
  14791     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
  14792     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  14793 } VkCoverageReductionModeNV;
  14794 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
  14795 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
  14796     VkStructureType    sType;
  14797     void*              pNext;
  14798     VkBool32           coverageReductionMode;
  14799 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  14800 
  14801 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
  14802     VkStructureType                                  sType;
  14803     const void*                                      pNext;
  14804     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
  14805     VkCoverageReductionModeNV                        coverageReductionMode;
  14806 } VkPipelineCoverageReductionStateCreateInfoNV;
  14807 
  14808 typedef struct VkFramebufferMixedSamplesCombinationNV {
  14809     VkStructureType              sType;
  14810     void*                        pNext;
  14811     VkCoverageReductionModeNV    coverageReductionMode;
  14812     VkSampleCountFlagBits        rasterizationSamples;
  14813     VkSampleCountFlags           depthStencilSamples;
  14814     VkSampleCountFlags           colorSamples;
  14815 } VkFramebufferMixedSamplesCombinationNV;
  14816 
  14817 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
  14818 
  14819 #ifndef VK_NO_PROTOTYPES
  14820 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  14821     VkPhysicalDevice                            physicalDevice,
  14822     uint32_t*                                   pCombinationCount,
  14823     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
  14824 #endif
  14825 
  14826 
  14827 // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
  14828 #define VK_EXT_fragment_shader_interlock 1
  14829 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
  14830 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
  14831 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
  14832     VkStructureType    sType;
  14833     void*              pNext;
  14834     VkBool32           fragmentShaderSampleInterlock;
  14835     VkBool32           fragmentShaderPixelInterlock;
  14836     VkBool32           fragmentShaderShadingRateInterlock;
  14837 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  14838 
  14839 
  14840 
  14841 // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
  14842 #define VK_EXT_ycbcr_image_arrays 1
  14843 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
  14844 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
  14845 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
  14846     VkStructureType    sType;
  14847     void*              pNext;
  14848     VkBool32           ycbcrImageArrays;
  14849 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  14850 
  14851 
  14852 
  14853 // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
  14854 #define VK_EXT_provoking_vertex 1
  14855 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
  14856 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
  14857 
  14858 typedef enum VkProvokingVertexModeEXT {
  14859     VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
  14860     VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
  14861     VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  14862 } VkProvokingVertexModeEXT;
  14863 typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
  14864     VkStructureType    sType;
  14865     void*              pNext;
  14866     VkBool32           provokingVertexLast;
  14867     VkBool32           transformFeedbackPreservesProvokingVertex;
  14868 } VkPhysicalDeviceProvokingVertexFeaturesEXT;
  14869 
  14870 typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
  14871     VkStructureType    sType;
  14872     void*              pNext;
  14873     VkBool32           provokingVertexModePerPipeline;
  14874     VkBool32           transformFeedbackPreservesTriangleFanProvokingVertex;
  14875 } VkPhysicalDeviceProvokingVertexPropertiesEXT;
  14876 
  14877 typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
  14878     VkStructureType             sType;
  14879     const void*                 pNext;
  14880     VkProvokingVertexModeEXT    provokingVertexMode;
  14881 } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
  14882 
  14883 
  14884 
  14885 // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
  14886 #define VK_EXT_headless_surface 1
  14887 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
  14888 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
  14889 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
  14890 typedef struct VkHeadlessSurfaceCreateInfoEXT {
  14891     VkStructureType                    sType;
  14892     const void*                        pNext;
  14893     VkHeadlessSurfaceCreateFlagsEXT    flags;
  14894 } VkHeadlessSurfaceCreateInfoEXT;
  14895 
  14896 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  14897 
  14898 #ifndef VK_NO_PROTOTYPES
  14899 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
  14900     VkInstance                                  instance,
  14901     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
  14902     const VkAllocationCallbacks*                pAllocator,
  14903     VkSurfaceKHR*                               pSurface);
  14904 #endif
  14905 
  14906 
  14907 // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  14908 #define VK_EXT_line_rasterization 1
  14909 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
  14910 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
  14911 typedef VkLineRasterizationModeKHR VkLineRasterizationModeEXT;
  14912 
  14913 typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT;
  14914 
  14915 typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT;
  14916 
  14917 typedef VkPipelineRasterizationLineStateCreateInfoKHR VkPipelineRasterizationLineStateCreateInfoEXT;
  14918 
  14919 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  14920 
  14921 #ifndef VK_NO_PROTOTYPES
  14922 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
  14923     VkCommandBuffer                             commandBuffer,
  14924     uint32_t                                    lineStippleFactor,
  14925     uint16_t                                    lineStipplePattern);
  14926 #endif
  14927 
  14928 
  14929 // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
  14930 #define VK_EXT_shader_atomic_float 1
  14931 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
  14932 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
  14933 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
  14934     VkStructureType    sType;
  14935     void*              pNext;
  14936     VkBool32           shaderBufferFloat32Atomics;
  14937     VkBool32           shaderBufferFloat32AtomicAdd;
  14938     VkBool32           shaderBufferFloat64Atomics;
  14939     VkBool32           shaderBufferFloat64AtomicAdd;
  14940     VkBool32           shaderSharedFloat32Atomics;
  14941     VkBool32           shaderSharedFloat32AtomicAdd;
  14942     VkBool32           shaderSharedFloat64Atomics;
  14943     VkBool32           shaderSharedFloat64AtomicAdd;
  14944     VkBool32           shaderImageFloat32Atomics;
  14945     VkBool32           shaderImageFloat32AtomicAdd;
  14946     VkBool32           sparseImageFloat32Atomics;
  14947     VkBool32           sparseImageFloat32AtomicAdd;
  14948 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  14949 
  14950 
  14951 
  14952 // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
  14953 #define VK_EXT_host_query_reset 1
  14954 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
  14955 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
  14956 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
  14957 
  14958 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  14959 
  14960 #ifndef VK_NO_PROTOTYPES
  14961 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
  14962     VkDevice                                    device,
  14963     VkQueryPool                                 queryPool,
  14964     uint32_t                                    firstQuery,
  14965     uint32_t                                    queryCount);
  14966 #endif
  14967 
  14968 
  14969 // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
  14970 #define VK_EXT_index_type_uint8 1
  14971 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
  14972 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
  14973 typedef VkPhysicalDeviceIndexTypeUint8FeaturesKHR VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  14974 
  14975 
  14976 
  14977 // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  14978 #define VK_EXT_extended_dynamic_state 1
  14979 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
  14980 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
  14981 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
  14982     VkStructureType    sType;
  14983     void*              pNext;
  14984     VkBool32           extendedDynamicState;
  14985 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  14986 
  14987 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
  14988 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
  14989 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
  14990 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
  14991 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
  14992 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
  14993 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
  14994 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
  14995 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
  14996 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
  14997 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
  14998 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
  14999 
  15000 #ifndef VK_NO_PROTOTYPES
  15001 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
  15002     VkCommandBuffer                             commandBuffer,
  15003     VkCullModeFlags                             cullMode);
  15004 
  15005 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
  15006     VkCommandBuffer                             commandBuffer,
  15007     VkFrontFace                                 frontFace);
  15008 
  15009 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
  15010     VkCommandBuffer                             commandBuffer,
  15011     VkPrimitiveTopology                         primitiveTopology);
  15012 
  15013 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
  15014     VkCommandBuffer                             commandBuffer,
  15015     uint32_t                                    viewportCount,
  15016     const VkViewport*                           pViewports);
  15017 
  15018 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
  15019     VkCommandBuffer                             commandBuffer,
  15020     uint32_t                                    scissorCount,
  15021     const VkRect2D*                             pScissors);
  15022 
  15023 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
  15024     VkCommandBuffer                             commandBuffer,
  15025     uint32_t                                    firstBinding,
  15026     uint32_t                                    bindingCount,
  15027     const VkBuffer*                             pBuffers,
  15028     const VkDeviceSize*                         pOffsets,
  15029     const VkDeviceSize*                         pSizes,
  15030     const VkDeviceSize*                         pStrides);
  15031 
  15032 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
  15033     VkCommandBuffer                             commandBuffer,
  15034     VkBool32                                    depthTestEnable);
  15035 
  15036 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
  15037     VkCommandBuffer                             commandBuffer,
  15038     VkBool32                                    depthWriteEnable);
  15039 
  15040 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
  15041     VkCommandBuffer                             commandBuffer,
  15042     VkCompareOp                                 depthCompareOp);
  15043 
  15044 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
  15045     VkCommandBuffer                             commandBuffer,
  15046     VkBool32                                    depthBoundsTestEnable);
  15047 
  15048 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
  15049     VkCommandBuffer                             commandBuffer,
  15050     VkBool32                                    stencilTestEnable);
  15051 
  15052 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
  15053     VkCommandBuffer                             commandBuffer,
  15054     VkStencilFaceFlags                          faceMask,
  15055     VkStencilOp                                 failOp,
  15056     VkStencilOp                                 passOp,
  15057     VkStencilOp                                 depthFailOp,
  15058     VkCompareOp                                 compareOp);
  15059 #endif
  15060 
  15061 
  15062 // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
  15063 #define VK_EXT_host_image_copy 1
  15064 #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
  15065 #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
  15066 
  15067 typedef enum VkHostImageCopyFlagBitsEXT {
  15068     VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001,
  15069     VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  15070 } VkHostImageCopyFlagBitsEXT;
  15071 typedef VkFlags VkHostImageCopyFlagsEXT;
  15072 typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT {
  15073     VkStructureType    sType;
  15074     void*              pNext;
  15075     VkBool32           hostImageCopy;
  15076 } VkPhysicalDeviceHostImageCopyFeaturesEXT;
  15077 
  15078 typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
  15079     VkStructureType    sType;
  15080     void*              pNext;
  15081     uint32_t           copySrcLayoutCount;
  15082     VkImageLayout*     pCopySrcLayouts;
  15083     uint32_t           copyDstLayoutCount;
  15084     VkImageLayout*     pCopyDstLayouts;
  15085     uint8_t            optimalTilingLayoutUUID[VK_UUID_SIZE];
  15086     VkBool32           identicalMemoryTypeRequirements;
  15087 } VkPhysicalDeviceHostImageCopyPropertiesEXT;
  15088 
  15089 typedef struct VkMemoryToImageCopyEXT {
  15090     VkStructureType             sType;
  15091     const void*                 pNext;
  15092     const void*                 pHostPointer;
  15093     uint32_t                    memoryRowLength;
  15094     uint32_t                    memoryImageHeight;
  15095     VkImageSubresourceLayers    imageSubresource;
  15096     VkOffset3D                  imageOffset;
  15097     VkExtent3D                  imageExtent;
  15098 } VkMemoryToImageCopyEXT;
  15099 
  15100 typedef struct VkImageToMemoryCopyEXT {
  15101     VkStructureType             sType;
  15102     const void*                 pNext;
  15103     void*                       pHostPointer;
  15104     uint32_t                    memoryRowLength;
  15105     uint32_t                    memoryImageHeight;
  15106     VkImageSubresourceLayers    imageSubresource;
  15107     VkOffset3D                  imageOffset;
  15108     VkExtent3D                  imageExtent;
  15109 } VkImageToMemoryCopyEXT;
  15110 
  15111 typedef struct VkCopyMemoryToImageInfoEXT {
  15112     VkStructureType                  sType;
  15113     const void*                      pNext;
  15114     VkHostImageCopyFlagsEXT          flags;
  15115     VkImage                          dstImage;
  15116     VkImageLayout                    dstImageLayout;
  15117     uint32_t                         regionCount;
  15118     const VkMemoryToImageCopyEXT*    pRegions;
  15119 } VkCopyMemoryToImageInfoEXT;
  15120 
  15121 typedef struct VkCopyImageToMemoryInfoEXT {
  15122     VkStructureType                  sType;
  15123     const void*                      pNext;
  15124     VkHostImageCopyFlagsEXT          flags;
  15125     VkImage                          srcImage;
  15126     VkImageLayout                    srcImageLayout;
  15127     uint32_t                         regionCount;
  15128     const VkImageToMemoryCopyEXT*    pRegions;
  15129 } VkCopyImageToMemoryInfoEXT;
  15130 
  15131 typedef struct VkCopyImageToImageInfoEXT {
  15132     VkStructureType            sType;
  15133     const void*                pNext;
  15134     VkHostImageCopyFlagsEXT    flags;
  15135     VkImage                    srcImage;
  15136     VkImageLayout              srcImageLayout;
  15137     VkImage                    dstImage;
  15138     VkImageLayout              dstImageLayout;
  15139     uint32_t                   regionCount;
  15140     const VkImageCopy2*        pRegions;
  15141 } VkCopyImageToImageInfoEXT;
  15142 
  15143 typedef struct VkHostImageLayoutTransitionInfoEXT {
  15144     VkStructureType            sType;
  15145     const void*                pNext;
  15146     VkImage                    image;
  15147     VkImageLayout              oldLayout;
  15148     VkImageLayout              newLayout;
  15149     VkImageSubresourceRange    subresourceRange;
  15150 } VkHostImageLayoutTransitionInfoEXT;
  15151 
  15152 typedef struct VkSubresourceHostMemcpySizeEXT {
  15153     VkStructureType    sType;
  15154     void*              pNext;
  15155     VkDeviceSize       size;
  15156 } VkSubresourceHostMemcpySizeEXT;
  15157 
  15158 typedef struct VkHostImageCopyDevicePerformanceQueryEXT {
  15159     VkStructureType    sType;
  15160     void*              pNext;
  15161     VkBool32           optimalDeviceAccess;
  15162     VkBool32           identicalMemoryLayout;
  15163 } VkHostImageCopyDevicePerformanceQueryEXT;
  15164 
  15165 typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT;
  15166 
  15167 typedef VkImageSubresource2KHR VkImageSubresource2EXT;
  15168 
  15169 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
  15170 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
  15171 typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
  15172 typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions);
  15173 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
  15174 
  15175 #ifndef VK_NO_PROTOTYPES
  15176 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
  15177     VkDevice                                    device,
  15178     const VkCopyMemoryToImageInfoEXT*           pCopyMemoryToImageInfo);
  15179 
  15180 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
  15181     VkDevice                                    device,
  15182     const VkCopyImageToMemoryInfoEXT*           pCopyImageToMemoryInfo);
  15183 
  15184 VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
  15185     VkDevice                                    device,
  15186     const VkCopyImageToImageInfoEXT*            pCopyImageToImageInfo);
  15187 
  15188 VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
  15189     VkDevice                                    device,
  15190     uint32_t                                    transitionCount,
  15191     const VkHostImageLayoutTransitionInfoEXT*   pTransitions);
  15192 
  15193 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
  15194     VkDevice                                    device,
  15195     VkImage                                     image,
  15196     const VkImageSubresource2KHR*               pSubresource,
  15197     VkSubresourceLayout2KHR*                    pLayout);
  15198 #endif
  15199 
  15200 
  15201 // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
  15202 #define VK_EXT_map_memory_placed 1
  15203 #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
  15204 #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
  15205 typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
  15206     VkStructureType    sType;
  15207     void*              pNext;
  15208     VkBool32           memoryMapPlaced;
  15209     VkBool32           memoryMapRangePlaced;
  15210     VkBool32           memoryUnmapReserve;
  15211 } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
  15212 
  15213 typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
  15214     VkStructureType    sType;
  15215     void*              pNext;
  15216     VkDeviceSize       minPlacedMemoryMapAlignment;
  15217 } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
  15218 
  15219 typedef struct VkMemoryMapPlacedInfoEXT {
  15220     VkStructureType    sType;
  15221     const void*        pNext;
  15222     void*              pPlacedAddress;
  15223 } VkMemoryMapPlacedInfoEXT;
  15224 
  15225 
  15226 
  15227 // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
  15228 #define VK_EXT_shader_atomic_float2 1
  15229 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
  15230 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
  15231 typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
  15232     VkStructureType    sType;
  15233     void*              pNext;
  15234     VkBool32           shaderBufferFloat16Atomics;
  15235     VkBool32           shaderBufferFloat16AtomicAdd;
  15236     VkBool32           shaderBufferFloat16AtomicMinMax;
  15237     VkBool32           shaderBufferFloat32AtomicMinMax;
  15238     VkBool32           shaderBufferFloat64AtomicMinMax;
  15239     VkBool32           shaderSharedFloat16Atomics;
  15240     VkBool32           shaderSharedFloat16AtomicAdd;
  15241     VkBool32           shaderSharedFloat16AtomicMinMax;
  15242     VkBool32           shaderSharedFloat32AtomicMinMax;
  15243     VkBool32           shaderSharedFloat64AtomicMinMax;
  15244     VkBool32           shaderImageFloat32AtomicMinMax;
  15245     VkBool32           sparseImageFloat32AtomicMinMax;
  15246 } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  15247 
  15248 
  15249 
  15250 // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  15251 #define VK_EXT_surface_maintenance1 1
  15252 #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
  15253 #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
  15254 
  15255 typedef enum VkPresentScalingFlagBitsEXT {
  15256     VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
  15257     VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
  15258     VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
  15259     VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  15260 } VkPresentScalingFlagBitsEXT;
  15261 typedef VkFlags VkPresentScalingFlagsEXT;
  15262 
  15263 typedef enum VkPresentGravityFlagBitsEXT {
  15264     VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
  15265     VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
  15266     VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
  15267     VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  15268 } VkPresentGravityFlagBitsEXT;
  15269 typedef VkFlags VkPresentGravityFlagsEXT;
  15270 typedef struct VkSurfacePresentModeEXT {
  15271     VkStructureType     sType;
  15272     void*               pNext;
  15273     VkPresentModeKHR    presentMode;
  15274 } VkSurfacePresentModeEXT;
  15275 
  15276 typedef struct VkSurfacePresentScalingCapabilitiesEXT {
  15277     VkStructureType             sType;
  15278     void*                       pNext;
  15279     VkPresentScalingFlagsEXT    supportedPresentScaling;
  15280     VkPresentGravityFlagsEXT    supportedPresentGravityX;
  15281     VkPresentGravityFlagsEXT    supportedPresentGravityY;
  15282     VkExtent2D                  minScaledImageExtent;
  15283     VkExtent2D                  maxScaledImageExtent;
  15284 } VkSurfacePresentScalingCapabilitiesEXT;
  15285 
  15286 typedef struct VkSurfacePresentModeCompatibilityEXT {
  15287     VkStructureType      sType;
  15288     void*                pNext;
  15289     uint32_t             presentModeCount;
  15290     VkPresentModeKHR*    pPresentModes;
  15291 } VkSurfacePresentModeCompatibilityEXT;
  15292 
  15293 
  15294 
  15295 // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  15296 #define VK_EXT_swapchain_maintenance1 1
  15297 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
  15298 #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
  15299 typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
  15300     VkStructureType    sType;
  15301     void*              pNext;
  15302     VkBool32           swapchainMaintenance1;
  15303 } VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  15304 
  15305 typedef struct VkSwapchainPresentFenceInfoEXT {
  15306     VkStructureType    sType;
  15307     const void*        pNext;
  15308     uint32_t           swapchainCount;
  15309     const VkFence*     pFences;
  15310 } VkSwapchainPresentFenceInfoEXT;
  15311 
  15312 typedef struct VkSwapchainPresentModesCreateInfoEXT {
  15313     VkStructureType            sType;
  15314     const void*                pNext;
  15315     uint32_t                   presentModeCount;
  15316     const VkPresentModeKHR*    pPresentModes;
  15317 } VkSwapchainPresentModesCreateInfoEXT;
  15318 
  15319 typedef struct VkSwapchainPresentModeInfoEXT {
  15320     VkStructureType            sType;
  15321     const void*                pNext;
  15322     uint32_t                   swapchainCount;
  15323     const VkPresentModeKHR*    pPresentModes;
  15324 } VkSwapchainPresentModeInfoEXT;
  15325 
  15326 typedef struct VkSwapchainPresentScalingCreateInfoEXT {
  15327     VkStructureType             sType;
  15328     const void*                 pNext;
  15329     VkPresentScalingFlagsEXT    scalingBehavior;
  15330     VkPresentGravityFlagsEXT    presentGravityX;
  15331     VkPresentGravityFlagsEXT    presentGravityY;
  15332 } VkSwapchainPresentScalingCreateInfoEXT;
  15333 
  15334 typedef struct VkReleaseSwapchainImagesInfoEXT {
  15335     VkStructureType    sType;
  15336     const void*        pNext;
  15337     VkSwapchainKHR     swapchain;
  15338     uint32_t           imageIndexCount;
  15339     const uint32_t*    pImageIndices;
  15340 } VkReleaseSwapchainImagesInfoEXT;
  15341 
  15342 typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
  15343 
  15344 #ifndef VK_NO_PROTOTYPES
  15345 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
  15346     VkDevice                                    device,
  15347     const VkReleaseSwapchainImagesInfoEXT*      pReleaseInfo);
  15348 #endif
  15349 
  15350 
  15351 // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
  15352 #define VK_EXT_shader_demote_to_helper_invocation 1
  15353 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
  15354 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
  15355 typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  15356 
  15357 
  15358 
  15359 // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
  15360 #define VK_NV_device_generated_commands 1
  15361 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
  15362 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
  15363 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
  15364 
  15365 typedef enum VkIndirectCommandsTokenTypeNV {
  15366     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
  15367     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
  15368     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
  15369     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
  15370     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
  15371     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
  15372     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
  15373     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
  15374     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
  15375     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
  15376     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
  15377     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  15378 } VkIndirectCommandsTokenTypeNV;
  15379 
  15380 typedef enum VkIndirectStateFlagBitsNV {
  15381     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
  15382     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  15383 } VkIndirectStateFlagBitsNV;
  15384 typedef VkFlags VkIndirectStateFlagsNV;
  15385 
  15386 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
  15387     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
  15388     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
  15389     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
  15390     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  15391 } VkIndirectCommandsLayoutUsageFlagBitsNV;
  15392 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
  15393 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
  15394     VkStructureType    sType;
  15395     void*              pNext;
  15396     uint32_t           maxGraphicsShaderGroupCount;
  15397     uint32_t           maxIndirectSequenceCount;
  15398     uint32_t           maxIndirectCommandsTokenCount;
  15399     uint32_t           maxIndirectCommandsStreamCount;
  15400     uint32_t           maxIndirectCommandsTokenOffset;
  15401     uint32_t           maxIndirectCommandsStreamStride;
  15402     uint32_t           minSequencesCountBufferOffsetAlignment;
  15403     uint32_t           minSequencesIndexBufferOffsetAlignment;
  15404     uint32_t           minIndirectCommandsBufferOffsetAlignment;
  15405 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  15406 
  15407 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
  15408     VkStructureType    sType;
  15409     void*              pNext;
  15410     VkBool32           deviceGeneratedCommands;
  15411 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  15412 
  15413 typedef struct VkGraphicsShaderGroupCreateInfoNV {
  15414     VkStructureType                                 sType;
  15415     const void*                                     pNext;
  15416     uint32_t                                        stageCount;
  15417     const VkPipelineShaderStageCreateInfo*          pStages;
  15418     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
  15419     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
  15420 } VkGraphicsShaderGroupCreateInfoNV;
  15421 
  15422 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
  15423     VkStructureType                             sType;
  15424     const void*                                 pNext;
  15425     uint32_t                                    groupCount;
  15426     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
  15427     uint32_t                                    pipelineCount;
  15428     const VkPipeline*                           pPipelines;
  15429 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
  15430 
  15431 typedef struct VkBindShaderGroupIndirectCommandNV {
  15432     uint32_t    groupIndex;
  15433 } VkBindShaderGroupIndirectCommandNV;
  15434 
  15435 typedef struct VkBindIndexBufferIndirectCommandNV {
  15436     VkDeviceAddress    bufferAddress;
  15437     uint32_t           size;
  15438     VkIndexType        indexType;
  15439 } VkBindIndexBufferIndirectCommandNV;
  15440 
  15441 typedef struct VkBindVertexBufferIndirectCommandNV {
  15442     VkDeviceAddress    bufferAddress;
  15443     uint32_t           size;
  15444     uint32_t           stride;
  15445 } VkBindVertexBufferIndirectCommandNV;
  15446 
  15447 typedef struct VkSetStateFlagsIndirectCommandNV {
  15448     uint32_t    data;
  15449 } VkSetStateFlagsIndirectCommandNV;
  15450 
  15451 typedef struct VkIndirectCommandsStreamNV {
  15452     VkBuffer        buffer;
  15453     VkDeviceSize    offset;
  15454 } VkIndirectCommandsStreamNV;
  15455 
  15456 typedef struct VkIndirectCommandsLayoutTokenNV {
  15457     VkStructureType                  sType;
  15458     const void*                      pNext;
  15459     VkIndirectCommandsTokenTypeNV    tokenType;
  15460     uint32_t                         stream;
  15461     uint32_t                         offset;
  15462     uint32_t                         vertexBindingUnit;
  15463     VkBool32                         vertexDynamicStride;
  15464     VkPipelineLayout                 pushconstantPipelineLayout;
  15465     VkShaderStageFlags               pushconstantShaderStageFlags;
  15466     uint32_t                         pushconstantOffset;
  15467     uint32_t                         pushconstantSize;
  15468     VkIndirectStateFlagsNV           indirectStateFlags;
  15469     uint32_t                         indexTypeCount;
  15470     const VkIndexType*               pIndexTypes;
  15471     const uint32_t*                  pIndexTypeValues;
  15472 } VkIndirectCommandsLayoutTokenNV;
  15473 
  15474 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
  15475     VkStructureType                           sType;
  15476     const void*                               pNext;
  15477     VkIndirectCommandsLayoutUsageFlagsNV      flags;
  15478     VkPipelineBindPoint                       pipelineBindPoint;
  15479     uint32_t                                  tokenCount;
  15480     const VkIndirectCommandsLayoutTokenNV*    pTokens;
  15481     uint32_t                                  streamCount;
  15482     const uint32_t*                           pStreamStrides;
  15483 } VkIndirectCommandsLayoutCreateInfoNV;
  15484 
  15485 typedef struct VkGeneratedCommandsInfoNV {
  15486     VkStructureType                      sType;
  15487     const void*                          pNext;
  15488     VkPipelineBindPoint                  pipelineBindPoint;
  15489     VkPipeline                           pipeline;
  15490     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
  15491     uint32_t                             streamCount;
  15492     const VkIndirectCommandsStreamNV*    pStreams;
  15493     uint32_t                             sequencesCount;
  15494     VkBuffer                             preprocessBuffer;
  15495     VkDeviceSize                         preprocessOffset;
  15496     VkDeviceSize                         preprocessSize;
  15497     VkBuffer                             sequencesCountBuffer;
  15498     VkDeviceSize                         sequencesCountOffset;
  15499     VkBuffer                             sequencesIndexBuffer;
  15500     VkDeviceSize                         sequencesIndexOffset;
  15501 } VkGeneratedCommandsInfoNV;
  15502 
  15503 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
  15504     VkStructureType               sType;
  15505     const void*                   pNext;
  15506     VkPipelineBindPoint           pipelineBindPoint;
  15507     VkPipeline                    pipeline;
  15508     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
  15509     uint32_t                      maxSequencesCount;
  15510 } VkGeneratedCommandsMemoryRequirementsInfoNV;
  15511 
  15512 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  15513 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15514 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15515 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
  15516 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  15517 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  15518 
  15519 #ifndef VK_NO_PROTOTYPES
  15520 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
  15521     VkDevice                                    device,
  15522     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
  15523     VkMemoryRequirements2*                      pMemoryRequirements);
  15524 
  15525 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
  15526     VkCommandBuffer                             commandBuffer,
  15527     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
  15528 
  15529 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
  15530     VkCommandBuffer                             commandBuffer,
  15531     VkBool32                                    isPreprocessed,
  15532     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
  15533 
  15534 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
  15535     VkCommandBuffer                             commandBuffer,
  15536     VkPipelineBindPoint                         pipelineBindPoint,
  15537     VkPipeline                                  pipeline,
  15538     uint32_t                                    groupIndex);
  15539 
  15540 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
  15541     VkDevice                                    device,
  15542     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
  15543     const VkAllocationCallbacks*                pAllocator,
  15544     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
  15545 
  15546 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
  15547     VkDevice                                    device,
  15548     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
  15549     const VkAllocationCallbacks*                pAllocator);
  15550 #endif
  15551 
  15552 
  15553 // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
  15554 #define VK_NV_inherited_viewport_scissor 1
  15555 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
  15556 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
  15557 typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
  15558     VkStructureType    sType;
  15559     void*              pNext;
  15560     VkBool32           inheritedViewportScissor2D;
  15561 } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
  15562 
  15563 typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
  15564     VkStructureType      sType;
  15565     const void*          pNext;
  15566     VkBool32             viewportScissor2D;
  15567     uint32_t             viewportDepthCount;
  15568     const VkViewport*    pViewportDepths;
  15569 } VkCommandBufferInheritanceViewportScissorInfoNV;
  15570 
  15571 
  15572 
  15573 // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
  15574 #define VK_EXT_texel_buffer_alignment 1
  15575 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
  15576 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
  15577 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
  15578     VkStructureType    sType;
  15579     void*              pNext;
  15580     VkBool32           texelBufferAlignment;
  15581 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  15582 
  15583 typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  15584 
  15585 
  15586 
  15587 // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
  15588 #define VK_QCOM_render_pass_transform 1
  15589 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
  15590 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
  15591 typedef struct VkRenderPassTransformBeginInfoQCOM {
  15592     VkStructureType                  sType;
  15593     void*                            pNext;
  15594     VkSurfaceTransformFlagBitsKHR    transform;
  15595 } VkRenderPassTransformBeginInfoQCOM;
  15596 
  15597 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
  15598     VkStructureType                  sType;
  15599     void*                            pNext;
  15600     VkSurfaceTransformFlagBitsKHR    transform;
  15601     VkRect2D                         renderArea;
  15602 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  15603 
  15604 
  15605 
  15606 // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
  15607 #define VK_EXT_depth_bias_control 1
  15608 #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
  15609 #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
  15610 
  15611 typedef enum VkDepthBiasRepresentationEXT {
  15612     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
  15613     VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
  15614     VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
  15615     VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
  15616 } VkDepthBiasRepresentationEXT;
  15617 typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
  15618     VkStructureType    sType;
  15619     void*              pNext;
  15620     VkBool32           depthBiasControl;
  15621     VkBool32           leastRepresentableValueForceUnormRepresentation;
  15622     VkBool32           floatRepresentation;
  15623     VkBool32           depthBiasExact;
  15624 } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
  15625 
  15626 typedef struct VkDepthBiasInfoEXT {
  15627     VkStructureType    sType;
  15628     const void*        pNext;
  15629     float              depthBiasConstantFactor;
  15630     float              depthBiasClamp;
  15631     float              depthBiasSlopeFactor;
  15632 } VkDepthBiasInfoEXT;
  15633 
  15634 typedef struct VkDepthBiasRepresentationInfoEXT {
  15635     VkStructureType                 sType;
  15636     const void*                     pNext;
  15637     VkDepthBiasRepresentationEXT    depthBiasRepresentation;
  15638     VkBool32                        depthBiasExact;
  15639 } VkDepthBiasRepresentationInfoEXT;
  15640 
  15641 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT*         pDepthBiasInfo);
  15642 
  15643 #ifndef VK_NO_PROTOTYPES
  15644 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
  15645     VkCommandBuffer                             commandBuffer,
  15646     const VkDepthBiasInfoEXT*                   pDepthBiasInfo);
  15647 #endif
  15648 
  15649 
  15650 // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
  15651 #define VK_EXT_device_memory_report 1
  15652 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
  15653 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
  15654 
  15655 typedef enum VkDeviceMemoryReportEventTypeEXT {
  15656     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
  15657     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
  15658     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
  15659     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
  15660     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
  15661     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  15662 } VkDeviceMemoryReportEventTypeEXT;
  15663 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
  15664 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
  15665     VkStructureType    sType;
  15666     void*              pNext;
  15667     VkBool32           deviceMemoryReport;
  15668 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  15669 
  15670 typedef struct VkDeviceMemoryReportCallbackDataEXT {
  15671     VkStructureType                     sType;
  15672     void*                               pNext;
  15673     VkDeviceMemoryReportFlagsEXT        flags;
  15674     VkDeviceMemoryReportEventTypeEXT    type;
  15675     uint64_t                            memoryObjectId;
  15676     VkDeviceSize                        size;
  15677     VkObjectType                        objectType;
  15678     uint64_t                            objectHandle;
  15679     uint32_t                            heapIndex;
  15680 } VkDeviceMemoryReportCallbackDataEXT;
  15681 
  15682 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
  15683     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
  15684     void*                                       pUserData);
  15685 
  15686 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
  15687     VkStructureType                        sType;
  15688     const void*                            pNext;
  15689     VkDeviceMemoryReportFlagsEXT           flags;
  15690     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
  15691     void*                                  pUserData;
  15692 } VkDeviceDeviceMemoryReportCreateInfoEXT;
  15693 
  15694 
  15695 
  15696 // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
  15697 #define VK_EXT_acquire_drm_display 1
  15698 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
  15699 #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
  15700 typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
  15701 typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
  15702 
  15703 #ifndef VK_NO_PROTOTYPES
  15704 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
  15705     VkPhysicalDevice                            physicalDevice,
  15706     int32_t                                     drmFd,
  15707     VkDisplayKHR                                display);
  15708 
  15709 VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
  15710     VkPhysicalDevice                            physicalDevice,
  15711     int32_t                                     drmFd,
  15712     uint32_t                                    connectorId,
  15713     VkDisplayKHR*                               display);
  15714 #endif
  15715 
  15716 
  15717 // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
  15718 #define VK_EXT_robustness2 1
  15719 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
  15720 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
  15721 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
  15722     VkStructureType    sType;
  15723     void*              pNext;
  15724     VkBool32           robustBufferAccess2;
  15725     VkBool32           robustImageAccess2;
  15726     VkBool32           nullDescriptor;
  15727 } VkPhysicalDeviceRobustness2FeaturesEXT;
  15728 
  15729 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
  15730     VkStructureType    sType;
  15731     void*              pNext;
  15732     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
  15733     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
  15734 } VkPhysicalDeviceRobustness2PropertiesEXT;
  15735 
  15736 
  15737 
  15738 // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
  15739 #define VK_EXT_custom_border_color 1
  15740 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
  15741 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
  15742 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
  15743     VkStructureType      sType;
  15744     const void*          pNext;
  15745     VkClearColorValue    customBorderColor;
  15746     VkFormat             format;
  15747 } VkSamplerCustomBorderColorCreateInfoEXT;
  15748 
  15749 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
  15750     VkStructureType    sType;
  15751     void*              pNext;
  15752     uint32_t           maxCustomBorderColorSamplers;
  15753 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  15754 
  15755 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
  15756     VkStructureType    sType;
  15757     void*              pNext;
  15758     VkBool32           customBorderColors;
  15759     VkBool32           customBorderColorWithoutFormat;
  15760 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  15761 
  15762 
  15763 
  15764 // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
  15765 #define VK_GOOGLE_user_type 1
  15766 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
  15767 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
  15768 
  15769 
  15770 // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
  15771 #define VK_NV_present_barrier 1
  15772 #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
  15773 #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
  15774 typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
  15775     VkStructureType    sType;
  15776     void*              pNext;
  15777     VkBool32           presentBarrier;
  15778 } VkPhysicalDevicePresentBarrierFeaturesNV;
  15779 
  15780 typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
  15781     VkStructureType    sType;
  15782     void*              pNext;
  15783     VkBool32           presentBarrierSupported;
  15784 } VkSurfaceCapabilitiesPresentBarrierNV;
  15785 
  15786 typedef struct VkSwapchainPresentBarrierCreateInfoNV {
  15787     VkStructureType    sType;
  15788     void*              pNext;
  15789     VkBool32           presentBarrierEnable;
  15790 } VkSwapchainPresentBarrierCreateInfoNV;
  15791 
  15792 
  15793 
  15794 // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
  15795 #define VK_EXT_private_data 1
  15796 typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
  15797 
  15798 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
  15799 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
  15800 typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
  15801 
  15802 typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
  15803 
  15804 typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
  15805 
  15806 typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
  15807 
  15808 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
  15809 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
  15810 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
  15811 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
  15812 
  15813 #ifndef VK_NO_PROTOTYPES
  15814 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
  15815     VkDevice                                    device,
  15816     const VkPrivateDataSlotCreateInfo*          pCreateInfo,
  15817     const VkAllocationCallbacks*                pAllocator,
  15818     VkPrivateDataSlot*                          pPrivateDataSlot);
  15819 
  15820 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
  15821     VkDevice                                    device,
  15822     VkPrivateDataSlot                           privateDataSlot,
  15823     const VkAllocationCallbacks*                pAllocator);
  15824 
  15825 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
  15826     VkDevice                                    device,
  15827     VkObjectType                                objectType,
  15828     uint64_t                                    objectHandle,
  15829     VkPrivateDataSlot                           privateDataSlot,
  15830     uint64_t                                    data);
  15831 
  15832 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
  15833     VkDevice                                    device,
  15834     VkObjectType                                objectType,
  15835     uint64_t                                    objectHandle,
  15836     VkPrivateDataSlot                           privateDataSlot,
  15837     uint64_t*                                   pData);
  15838 #endif
  15839 
  15840 
  15841 // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
  15842 #define VK_EXT_pipeline_creation_cache_control 1
  15843 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
  15844 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
  15845 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
  15846 
  15847 
  15848 
  15849 // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
  15850 #define VK_NV_device_diagnostics_config 1
  15851 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
  15852 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
  15853 
  15854 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
  15855     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
  15856     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
  15857     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
  15858     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
  15859     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  15860 } VkDeviceDiagnosticsConfigFlagBitsNV;
  15861 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
  15862 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
  15863     VkStructureType    sType;
  15864     void*              pNext;
  15865     VkBool32           diagnosticsConfig;
  15866 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  15867 
  15868 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
  15869     VkStructureType                     sType;
  15870     const void*                         pNext;
  15871     VkDeviceDiagnosticsConfigFlagsNV    flags;
  15872 } VkDeviceDiagnosticsConfigCreateInfoNV;
  15873 
  15874 
  15875 
  15876 // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
  15877 #define VK_QCOM_render_pass_store_ops 1
  15878 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
  15879 #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
  15880 
  15881 
  15882 // VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
  15883 #define VK_NV_cuda_kernel_launch 1
  15884 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
  15885 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
  15886 #define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
  15887 #define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
  15888 typedef struct VkCudaModuleCreateInfoNV {
  15889     VkStructureType    sType;
  15890     const void*        pNext;
  15891     size_t             dataSize;
  15892     const void*        pData;
  15893 } VkCudaModuleCreateInfoNV;
  15894 
  15895 typedef struct VkCudaFunctionCreateInfoNV {
  15896     VkStructureType    sType;
  15897     const void*        pNext;
  15898     VkCudaModuleNV     module;
  15899     const char*        pName;
  15900 } VkCudaFunctionCreateInfoNV;
  15901 
  15902 typedef struct VkCudaLaunchInfoNV {
  15903     VkStructureType        sType;
  15904     const void*            pNext;
  15905     VkCudaFunctionNV       function;
  15906     uint32_t               gridDimX;
  15907     uint32_t               gridDimY;
  15908     uint32_t               gridDimZ;
  15909     uint32_t               blockDimX;
  15910     uint32_t               blockDimY;
  15911     uint32_t               blockDimZ;
  15912     uint32_t               sharedMemBytes;
  15913     size_t                 paramCount;
  15914     const void* const *    pParams;
  15915     size_t                 extraCount;
  15916     const void* const *    pExtras;
  15917 } VkCudaLaunchInfoNV;
  15918 
  15919 typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
  15920     VkStructureType    sType;
  15921     void*              pNext;
  15922     VkBool32           cudaKernelLaunchFeatures;
  15923 } VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
  15924 
  15925 typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
  15926     VkStructureType    sType;
  15927     void*              pNext;
  15928     uint32_t           computeCapabilityMinor;
  15929     uint32_t           computeCapabilityMajor;
  15930 } VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
  15931 
  15932 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
  15933 typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
  15934 typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
  15935 typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
  15936 typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
  15937 typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
  15938 
  15939 #ifndef VK_NO_PROTOTYPES
  15940 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
  15941     VkDevice                                    device,
  15942     const VkCudaModuleCreateInfoNV*             pCreateInfo,
  15943     const VkAllocationCallbacks*                pAllocator,
  15944     VkCudaModuleNV*                             pModule);
  15945 
  15946 VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
  15947     VkDevice                                    device,
  15948     VkCudaModuleNV                              module,
  15949     size_t*                                     pCacheSize,
  15950     void*                                       pCacheData);
  15951 
  15952 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
  15953     VkDevice                                    device,
  15954     const VkCudaFunctionCreateInfoNV*           pCreateInfo,
  15955     const VkAllocationCallbacks*                pAllocator,
  15956     VkCudaFunctionNV*                           pFunction);
  15957 
  15958 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
  15959     VkDevice                                    device,
  15960     VkCudaModuleNV                              module,
  15961     const VkAllocationCallbacks*                pAllocator);
  15962 
  15963 VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
  15964     VkDevice                                    device,
  15965     VkCudaFunctionNV                            function,
  15966     const VkAllocationCallbacks*                pAllocator);
  15967 
  15968 VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
  15969     VkCommandBuffer                             commandBuffer,
  15970     const VkCudaLaunchInfoNV*                   pLaunchInfo);
  15971 #endif
  15972 
  15973 
  15974 // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
  15975 #define VK_NV_low_latency 1
  15976 #define VK_NV_LOW_LATENCY_SPEC_VERSION    1
  15977 #define VK_NV_LOW_LATENCY_EXTENSION_NAME  "VK_NV_low_latency"
  15978 typedef struct VkQueryLowLatencySupportNV {
  15979     VkStructureType    sType;
  15980     const void*        pNext;
  15981     void*              pQueriedLowLatencyData;
  15982 } VkQueryLowLatencySupportNV;
  15983 
  15984 
  15985 
  15986 // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
  15987 #define VK_EXT_descriptor_buffer 1
  15988 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
  15989 #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
  15990 #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
  15991 typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
  15992     VkStructureType    sType;
  15993     void*              pNext;
  15994     VkBool32           combinedImageSamplerDescriptorSingleArray;
  15995     VkBool32           bufferlessPushDescriptors;
  15996     VkBool32           allowSamplerImageViewPostSubmitCreation;
  15997     VkDeviceSize       descriptorBufferOffsetAlignment;
  15998     uint32_t           maxDescriptorBufferBindings;
  15999     uint32_t           maxResourceDescriptorBufferBindings;
  16000     uint32_t           maxSamplerDescriptorBufferBindings;
  16001     uint32_t           maxEmbeddedImmutableSamplerBindings;
  16002     uint32_t           maxEmbeddedImmutableSamplers;
  16003     size_t             bufferCaptureReplayDescriptorDataSize;
  16004     size_t             imageCaptureReplayDescriptorDataSize;
  16005     size_t             imageViewCaptureReplayDescriptorDataSize;
  16006     size_t             samplerCaptureReplayDescriptorDataSize;
  16007     size_t             accelerationStructureCaptureReplayDescriptorDataSize;
  16008     size_t             samplerDescriptorSize;
  16009     size_t             combinedImageSamplerDescriptorSize;
  16010     size_t             sampledImageDescriptorSize;
  16011     size_t             storageImageDescriptorSize;
  16012     size_t             uniformTexelBufferDescriptorSize;
  16013     size_t             robustUniformTexelBufferDescriptorSize;
  16014     size_t             storageTexelBufferDescriptorSize;
  16015     size_t             robustStorageTexelBufferDescriptorSize;
  16016     size_t             uniformBufferDescriptorSize;
  16017     size_t             robustUniformBufferDescriptorSize;
  16018     size_t             storageBufferDescriptorSize;
  16019     size_t             robustStorageBufferDescriptorSize;
  16020     size_t             inputAttachmentDescriptorSize;
  16021     size_t             accelerationStructureDescriptorSize;
  16022     VkDeviceSize       maxSamplerDescriptorBufferRange;
  16023     VkDeviceSize       maxResourceDescriptorBufferRange;
  16024     VkDeviceSize       samplerDescriptorBufferAddressSpaceSize;
  16025     VkDeviceSize       resourceDescriptorBufferAddressSpaceSize;
  16026     VkDeviceSize       descriptorBufferAddressSpaceSize;
  16027 } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
  16028 
  16029 typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
  16030     VkStructureType    sType;
  16031     void*              pNext;
  16032     size_t             combinedImageSamplerDensityMapDescriptorSize;
  16033 } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  16034 
  16035 typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
  16036     VkStructureType    sType;
  16037     void*              pNext;
  16038     VkBool32           descriptorBuffer;
  16039     VkBool32           descriptorBufferCaptureReplay;
  16040     VkBool32           descriptorBufferImageLayoutIgnored;
  16041     VkBool32           descriptorBufferPushDescriptors;
  16042 } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
  16043 
  16044 typedef struct VkDescriptorAddressInfoEXT {
  16045     VkStructureType    sType;
  16046     void*              pNext;
  16047     VkDeviceAddress    address;
  16048     VkDeviceSize       range;
  16049     VkFormat           format;
  16050 } VkDescriptorAddressInfoEXT;
  16051 
  16052 typedef struct VkDescriptorBufferBindingInfoEXT {
  16053     VkStructureType       sType;
  16054     void*                 pNext;
  16055     VkDeviceAddress       address;
  16056     VkBufferUsageFlags    usage;
  16057 } VkDescriptorBufferBindingInfoEXT;
  16058 
  16059 typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
  16060     VkStructureType    sType;
  16061     void*              pNext;
  16062     VkBuffer           buffer;
  16063 } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
  16064 
  16065 typedef union VkDescriptorDataEXT {
  16066     const VkSampler*                     pSampler;
  16067     const VkDescriptorImageInfo*         pCombinedImageSampler;
  16068     const VkDescriptorImageInfo*         pInputAttachmentImage;
  16069     const VkDescriptorImageInfo*         pSampledImage;
  16070     const VkDescriptorImageInfo*         pStorageImage;
  16071     const VkDescriptorAddressInfoEXT*    pUniformTexelBuffer;
  16072     const VkDescriptorAddressInfoEXT*    pStorageTexelBuffer;
  16073     const VkDescriptorAddressInfoEXT*    pUniformBuffer;
  16074     const VkDescriptorAddressInfoEXT*    pStorageBuffer;
  16075     VkDeviceAddress                      accelerationStructure;
  16076 } VkDescriptorDataEXT;
  16077 
  16078 typedef struct VkDescriptorGetInfoEXT {
  16079     VkStructureType        sType;
  16080     const void*            pNext;
  16081     VkDescriptorType       type;
  16082     VkDescriptorDataEXT    data;
  16083 } VkDescriptorGetInfoEXT;
  16084 
  16085 typedef struct VkBufferCaptureDescriptorDataInfoEXT {
  16086     VkStructureType    sType;
  16087     const void*        pNext;
  16088     VkBuffer           buffer;
  16089 } VkBufferCaptureDescriptorDataInfoEXT;
  16090 
  16091 typedef struct VkImageCaptureDescriptorDataInfoEXT {
  16092     VkStructureType    sType;
  16093     const void*        pNext;
  16094     VkImage            image;
  16095 } VkImageCaptureDescriptorDataInfoEXT;
  16096 
  16097 typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
  16098     VkStructureType    sType;
  16099     const void*        pNext;
  16100     VkImageView        imageView;
  16101 } VkImageViewCaptureDescriptorDataInfoEXT;
  16102 
  16103 typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
  16104     VkStructureType    sType;
  16105     const void*        pNext;
  16106     VkSampler          sampler;
  16107 } VkSamplerCaptureDescriptorDataInfoEXT;
  16108 
  16109 typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
  16110     VkStructureType    sType;
  16111     const void*        pNext;
  16112     const void*        opaqueCaptureDescriptorData;
  16113 } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
  16114 
  16115 typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
  16116     VkStructureType               sType;
  16117     const void*                   pNext;
  16118     VkAccelerationStructureKHR    accelerationStructure;
  16119     VkAccelerationStructureNV     accelerationStructureNV;
  16120 } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
  16121 
  16122 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
  16123 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
  16124 typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
  16125 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
  16126 typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
  16127 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
  16128 typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16129 typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16130 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16131 typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16132 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16133 
  16134 #ifndef VK_NO_PROTOTYPES
  16135 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
  16136     VkDevice                                    device,
  16137     VkDescriptorSetLayout                       layout,
  16138     VkDeviceSize*                               pLayoutSizeInBytes);
  16139 
  16140 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
  16141     VkDevice                                    device,
  16142     VkDescriptorSetLayout                       layout,
  16143     uint32_t                                    binding,
  16144     VkDeviceSize*                               pOffset);
  16145 
  16146 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
  16147     VkDevice                                    device,
  16148     const VkDescriptorGetInfoEXT*               pDescriptorInfo,
  16149     size_t                                      dataSize,
  16150     void*                                       pDescriptor);
  16151 
  16152 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
  16153     VkCommandBuffer                             commandBuffer,
  16154     uint32_t                                    bufferCount,
  16155     const VkDescriptorBufferBindingInfoEXT*     pBindingInfos);
  16156 
  16157 VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
  16158     VkCommandBuffer                             commandBuffer,
  16159     VkPipelineBindPoint                         pipelineBindPoint,
  16160     VkPipelineLayout                            layout,
  16161     uint32_t                                    firstSet,
  16162     uint32_t                                    setCount,
  16163     const uint32_t*                             pBufferIndices,
  16164     const VkDeviceSize*                         pOffsets);
  16165 
  16166 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
  16167     VkCommandBuffer                             commandBuffer,
  16168     VkPipelineBindPoint                         pipelineBindPoint,
  16169     VkPipelineLayout                            layout,
  16170     uint32_t                                    set);
  16171 
  16172 VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
  16173     VkDevice                                    device,
  16174     const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
  16175     void*                                       pData);
  16176 
  16177 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
  16178     VkDevice                                    device,
  16179     const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
  16180     void*                                       pData);
  16181 
  16182 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
  16183     VkDevice                                    device,
  16184     const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
  16185     void*                                       pData);
  16186 
  16187 VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
  16188     VkDevice                                    device,
  16189     const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
  16190     void*                                       pData);
  16191 
  16192 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
  16193     VkDevice                                    device,
  16194     const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
  16195     void*                                       pData);
  16196 #endif
  16197 
  16198 
  16199 // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
  16200 #define VK_EXT_graphics_pipeline_library 1
  16201 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
  16202 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
  16203 
  16204 typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
  16205     VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
  16206     VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
  16207     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
  16208     VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
  16209     VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16210 } VkGraphicsPipelineLibraryFlagBitsEXT;
  16211 typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
  16212 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
  16213     VkStructureType    sType;
  16214     void*              pNext;
  16215     VkBool32           graphicsPipelineLibrary;
  16216 } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  16217 
  16218 typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
  16219     VkStructureType    sType;
  16220     void*              pNext;
  16221     VkBool32           graphicsPipelineLibraryFastLinking;
  16222     VkBool32           graphicsPipelineLibraryIndependentInterpolationDecoration;
  16223 } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  16224 
  16225 typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
  16226     VkStructureType                      sType;
  16227     const void*                          pNext;
  16228     VkGraphicsPipelineLibraryFlagsEXT    flags;
  16229 } VkGraphicsPipelineLibraryCreateInfoEXT;
  16230 
  16231 
  16232 
  16233 // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
  16234 #define VK_AMD_shader_early_and_late_fragment_tests 1
  16235 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
  16236 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
  16237 typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
  16238     VkStructureType    sType;
  16239     void*              pNext;
  16240     VkBool32           shaderEarlyAndLateFragmentTests;
  16241 } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  16242 
  16243 
  16244 
  16245 // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
  16246 #define VK_NV_fragment_shading_rate_enums 1
  16247 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
  16248 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
  16249 
  16250 typedef enum VkFragmentShadingRateTypeNV {
  16251     VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
  16252     VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
  16253     VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  16254 } VkFragmentShadingRateTypeNV;
  16255 
  16256 typedef enum VkFragmentShadingRateNV {
  16257     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
  16258     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
  16259     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
  16260     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
  16261     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
  16262     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  16263     VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
  16264     VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
  16265     VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
  16266     VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
  16267     VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
  16268     VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
  16269     VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
  16270 } VkFragmentShadingRateNV;
  16271 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
  16272     VkStructureType    sType;
  16273     void*              pNext;
  16274     VkBool32           fragmentShadingRateEnums;
  16275     VkBool32           supersampleFragmentShadingRates;
  16276     VkBool32           noInvocationFragmentShadingRates;
  16277 } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  16278 
  16279 typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
  16280     VkStructureType          sType;
  16281     void*                    pNext;
  16282     VkSampleCountFlagBits    maxFragmentShadingRateInvocationCount;
  16283 } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  16284 
  16285 typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
  16286     VkStructureType                       sType;
  16287     const void*                           pNext;
  16288     VkFragmentShadingRateTypeNV           shadingRateType;
  16289     VkFragmentShadingRateNV               shadingRate;
  16290     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
  16291 } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
  16292 
  16293 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer           commandBuffer, VkFragmentShadingRateNV                     shadingRate, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
  16294 
  16295 #ifndef VK_NO_PROTOTYPES
  16296 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
  16297     VkCommandBuffer                             commandBuffer,
  16298     VkFragmentShadingRateNV                     shadingRate,
  16299     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
  16300 #endif
  16301 
  16302 
  16303 // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
  16304 #define VK_NV_ray_tracing_motion_blur 1
  16305 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
  16306 #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
  16307 
  16308 typedef enum VkAccelerationStructureMotionInstanceTypeNV {
  16309     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
  16310     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
  16311     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
  16312     VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  16313 } VkAccelerationStructureMotionInstanceTypeNV;
  16314 typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
  16315 typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
  16316 typedef union VkDeviceOrHostAddressConstKHR {
  16317     VkDeviceAddress    deviceAddress;
  16318     const void*        hostAddress;
  16319 } VkDeviceOrHostAddressConstKHR;
  16320 
  16321 typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
  16322     VkStructureType                  sType;
  16323     const void*                      pNext;
  16324     VkDeviceOrHostAddressConstKHR    vertexData;
  16325 } VkAccelerationStructureGeometryMotionTrianglesDataNV;
  16326 
  16327 typedef struct VkAccelerationStructureMotionInfoNV {
  16328     VkStructureType                             sType;
  16329     const void*                                 pNext;
  16330     uint32_t                                    maxInstances;
  16331     VkAccelerationStructureMotionInfoFlagsNV    flags;
  16332 } VkAccelerationStructureMotionInfoNV;
  16333 
  16334 typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
  16335     VkTransformMatrixKHR          transformT0;
  16336     VkTransformMatrixKHR          transformT1;
  16337     uint32_t                      instanceCustomIndex:24;
  16338     uint32_t                      mask:8;
  16339     uint32_t                      instanceShaderBindingTableRecordOffset:24;
  16340     VkGeometryInstanceFlagsKHR    flags:8;
  16341     uint64_t                      accelerationStructureReference;
  16342 } VkAccelerationStructureMatrixMotionInstanceNV;
  16343 
  16344 typedef struct VkSRTDataNV {
  16345     float    sx;
  16346     float    a;
  16347     float    b;
  16348     float    pvx;
  16349     float    sy;
  16350     float    c;
  16351     float    pvy;
  16352     float    sz;
  16353     float    pvz;
  16354     float    qx;
  16355     float    qy;
  16356     float    qz;
  16357     float    qw;
  16358     float    tx;
  16359     float    ty;
  16360     float    tz;
  16361 } VkSRTDataNV;
  16362 
  16363 typedef struct VkAccelerationStructureSRTMotionInstanceNV {
  16364     VkSRTDataNV                   transformT0;
  16365     VkSRTDataNV                   transformT1;
  16366     uint32_t                      instanceCustomIndex:24;
  16367     uint32_t                      mask:8;
  16368     uint32_t                      instanceShaderBindingTableRecordOffset:24;
  16369     VkGeometryInstanceFlagsKHR    flags:8;
  16370     uint64_t                      accelerationStructureReference;
  16371 } VkAccelerationStructureSRTMotionInstanceNV;
  16372 
  16373 typedef union VkAccelerationStructureMotionInstanceDataNV {
  16374     VkAccelerationStructureInstanceKHR               staticInstance;
  16375     VkAccelerationStructureMatrixMotionInstanceNV    matrixMotionInstance;
  16376     VkAccelerationStructureSRTMotionInstanceNV       srtMotionInstance;
  16377 } VkAccelerationStructureMotionInstanceDataNV;
  16378 
  16379 typedef struct VkAccelerationStructureMotionInstanceNV {
  16380     VkAccelerationStructureMotionInstanceTypeNV     type;
  16381     VkAccelerationStructureMotionInstanceFlagsNV    flags;
  16382     VkAccelerationStructureMotionInstanceDataNV     data;
  16383 } VkAccelerationStructureMotionInstanceNV;
  16384 
  16385 typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
  16386     VkStructureType    sType;
  16387     void*              pNext;
  16388     VkBool32           rayTracingMotionBlur;
  16389     VkBool32           rayTracingMotionBlurPipelineTraceRaysIndirect;
  16390 } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
  16391 
  16392 
  16393 
  16394 // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
  16395 #define VK_EXT_ycbcr_2plane_444_formats 1
  16396 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
  16397 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
  16398 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
  16399     VkStructureType    sType;
  16400     void*              pNext;
  16401     VkBool32           ycbcr2plane444Formats;
  16402 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  16403 
  16404 
  16405 
  16406 // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
  16407 #define VK_EXT_fragment_density_map2 1
  16408 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
  16409 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
  16410 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
  16411     VkStructureType    sType;
  16412     void*              pNext;
  16413     VkBool32           fragmentDensityMapDeferred;
  16414 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  16415 
  16416 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
  16417     VkStructureType    sType;
  16418     void*              pNext;
  16419     VkBool32           subsampledLoads;
  16420     VkBool32           subsampledCoarseReconstructionEarlyAccess;
  16421     uint32_t           maxSubsampledArrayLayers;
  16422     uint32_t           maxDescriptorSetSubsampledSamplers;
  16423 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  16424 
  16425 
  16426 
  16427 // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
  16428 #define VK_QCOM_rotated_copy_commands 1
  16429 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
  16430 #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
  16431 typedef struct VkCopyCommandTransformInfoQCOM {
  16432     VkStructureType                  sType;
  16433     const void*                      pNext;
  16434     VkSurfaceTransformFlagBitsKHR    transform;
  16435 } VkCopyCommandTransformInfoQCOM;
  16436 
  16437 
  16438 
  16439 // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
  16440 #define VK_EXT_image_robustness 1
  16441 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
  16442 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
  16443 typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
  16444 
  16445 
  16446 
  16447 // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
  16448 #define VK_EXT_image_compression_control 1
  16449 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
  16450 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
  16451 
  16452 typedef enum VkImageCompressionFlagBitsEXT {
  16453     VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
  16454     VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
  16455     VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
  16456     VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
  16457     VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16458 } VkImageCompressionFlagBitsEXT;
  16459 typedef VkFlags VkImageCompressionFlagsEXT;
  16460 
  16461 typedef enum VkImageCompressionFixedRateFlagBitsEXT {
  16462     VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
  16463     VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
  16464     VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
  16465     VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
  16466     VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
  16467     VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
  16468     VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
  16469     VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
  16470     VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
  16471     VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
  16472     VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
  16473     VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
  16474     VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
  16475     VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
  16476     VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
  16477     VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
  16478     VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
  16479     VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
  16480     VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
  16481     VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
  16482     VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
  16483     VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
  16484     VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
  16485     VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
  16486     VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
  16487     VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16488 } VkImageCompressionFixedRateFlagBitsEXT;
  16489 typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
  16490 typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
  16491     VkStructureType    sType;
  16492     void*              pNext;
  16493     VkBool32           imageCompressionControl;
  16494 } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
  16495 
  16496 typedef struct VkImageCompressionControlEXT {
  16497     VkStructureType                         sType;
  16498     const void*                             pNext;
  16499     VkImageCompressionFlagsEXT              flags;
  16500     uint32_t                                compressionControlPlaneCount;
  16501     VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
  16502 } VkImageCompressionControlEXT;
  16503 
  16504 typedef struct VkImageCompressionPropertiesEXT {
  16505     VkStructureType                        sType;
  16506     void*                                  pNext;
  16507     VkImageCompressionFlagsEXT             imageCompressionFlags;
  16508     VkImageCompressionFixedRateFlagsEXT    imageCompressionFixedRateFlags;
  16509 } VkImageCompressionPropertiesEXT;
  16510 
  16511 
  16512 
  16513 // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
  16514 #define VK_EXT_attachment_feedback_loop_layout 1
  16515 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
  16516 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
  16517 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
  16518     VkStructureType    sType;
  16519     void*              pNext;
  16520     VkBool32           attachmentFeedbackLoopLayout;
  16521 } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  16522 
  16523 
  16524 
  16525 // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
  16526 #define VK_EXT_4444_formats 1
  16527 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
  16528 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
  16529 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
  16530     VkStructureType    sType;
  16531     void*              pNext;
  16532     VkBool32           formatA4R4G4B4;
  16533     VkBool32           formatA4B4G4R4;
  16534 } VkPhysicalDevice4444FormatsFeaturesEXT;
  16535 
  16536 
  16537 
  16538 // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
  16539 #define VK_EXT_device_fault 1
  16540 #define VK_EXT_DEVICE_FAULT_SPEC_VERSION  2
  16541 #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
  16542 
  16543 typedef enum VkDeviceFaultAddressTypeEXT {
  16544     VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
  16545     VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
  16546     VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
  16547     VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
  16548     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
  16549     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
  16550     VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
  16551     VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  16552 } VkDeviceFaultAddressTypeEXT;
  16553 
  16554 typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
  16555     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
  16556     VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  16557 } VkDeviceFaultVendorBinaryHeaderVersionEXT;
  16558 typedef struct VkPhysicalDeviceFaultFeaturesEXT {
  16559     VkStructureType    sType;
  16560     void*              pNext;
  16561     VkBool32           deviceFault;
  16562     VkBool32           deviceFaultVendorBinary;
  16563 } VkPhysicalDeviceFaultFeaturesEXT;
  16564 
  16565 typedef struct VkDeviceFaultCountsEXT {
  16566     VkStructureType    sType;
  16567     void*              pNext;
  16568     uint32_t           addressInfoCount;
  16569     uint32_t           vendorInfoCount;
  16570     VkDeviceSize       vendorBinarySize;
  16571 } VkDeviceFaultCountsEXT;
  16572 
  16573 typedef struct VkDeviceFaultAddressInfoEXT {
  16574     VkDeviceFaultAddressTypeEXT    addressType;
  16575     VkDeviceAddress                reportedAddress;
  16576     VkDeviceSize                   addressPrecision;
  16577 } VkDeviceFaultAddressInfoEXT;
  16578 
  16579 typedef struct VkDeviceFaultVendorInfoEXT {
  16580     char        description[VK_MAX_DESCRIPTION_SIZE];
  16581     uint64_t    vendorFaultCode;
  16582     uint64_t    vendorFaultData;
  16583 } VkDeviceFaultVendorInfoEXT;
  16584 
  16585 typedef struct VkDeviceFaultInfoEXT {
  16586     VkStructureType                 sType;
  16587     void*                           pNext;
  16588     char                            description[VK_MAX_DESCRIPTION_SIZE];
  16589     VkDeviceFaultAddressInfoEXT*    pAddressInfos;
  16590     VkDeviceFaultVendorInfoEXT*     pVendorInfos;
  16591     void*                           pVendorBinaryData;
  16592 } VkDeviceFaultInfoEXT;
  16593 
  16594 typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
  16595     uint32_t                                     headerSize;
  16596     VkDeviceFaultVendorBinaryHeaderVersionEXT    headerVersion;
  16597     uint32_t                                     vendorID;
  16598     uint32_t                                     deviceID;
  16599     uint32_t                                     driverVersion;
  16600     uint8_t                                      pipelineCacheUUID[VK_UUID_SIZE];
  16601     uint32_t                                     applicationNameOffset;
  16602     uint32_t                                     applicationVersion;
  16603     uint32_t                                     engineNameOffset;
  16604     uint32_t                                     engineVersion;
  16605     uint32_t                                     apiVersion;
  16606 } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
  16607 
  16608 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
  16609 
  16610 #ifndef VK_NO_PROTOTYPES
  16611 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
  16612     VkDevice                                    device,
  16613     VkDeviceFaultCountsEXT*                     pFaultCounts,
  16614     VkDeviceFaultInfoEXT*                       pFaultInfo);
  16615 #endif
  16616 
  16617 
  16618 // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
  16619 #define VK_ARM_rasterization_order_attachment_access 1
  16620 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
  16621 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
  16622 typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
  16623     VkStructureType    sType;
  16624     void*              pNext;
  16625     VkBool32           rasterizationOrderColorAttachmentAccess;
  16626     VkBool32           rasterizationOrderDepthAttachmentAccess;
  16627     VkBool32           rasterizationOrderStencilAttachmentAccess;
  16628 } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  16629 
  16630 typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
  16631 
  16632 
  16633 
  16634 // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
  16635 #define VK_EXT_rgba10x6_formats 1
  16636 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
  16637 #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
  16638 typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
  16639     VkStructureType    sType;
  16640     void*              pNext;
  16641     VkBool32           formatRgba10x6WithoutYCbCrSampler;
  16642 } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  16643 
  16644 
  16645 
  16646 // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
  16647 #define VK_VALVE_mutable_descriptor_type 1
  16648 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
  16649 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
  16650 typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
  16651     VkStructureType    sType;
  16652     void*              pNext;
  16653     VkBool32           mutableDescriptorType;
  16654 } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  16655 
  16656 typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  16657 
  16658 typedef struct VkMutableDescriptorTypeListEXT {
  16659     uint32_t                   descriptorTypeCount;
  16660     const VkDescriptorType*    pDescriptorTypes;
  16661 } VkMutableDescriptorTypeListEXT;
  16662 
  16663 typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
  16664 
  16665 typedef struct VkMutableDescriptorTypeCreateInfoEXT {
  16666     VkStructureType                          sType;
  16667     const void*                              pNext;
  16668     uint32_t                                 mutableDescriptorTypeListCount;
  16669     const VkMutableDescriptorTypeListEXT*    pMutableDescriptorTypeLists;
  16670 } VkMutableDescriptorTypeCreateInfoEXT;
  16671 
  16672 typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
  16673 
  16674 
  16675 
  16676 // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  16677 #define VK_EXT_vertex_input_dynamic_state 1
  16678 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
  16679 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
  16680 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
  16681     VkStructureType    sType;
  16682     void*              pNext;
  16683     VkBool32           vertexInputDynamicState;
  16684 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  16685 
  16686 typedef struct VkVertexInputBindingDescription2EXT {
  16687     VkStructureType      sType;
  16688     void*                pNext;
  16689     uint32_t             binding;
  16690     uint32_t             stride;
  16691     VkVertexInputRate    inputRate;
  16692     uint32_t             divisor;
  16693 } VkVertexInputBindingDescription2EXT;
  16694 
  16695 typedef struct VkVertexInputAttributeDescription2EXT {
  16696     VkStructureType    sType;
  16697     void*              pNext;
  16698     uint32_t           location;
  16699     uint32_t           binding;
  16700     VkFormat           format;
  16701     uint32_t           offset;
  16702 } VkVertexInputAttributeDescription2EXT;
  16703 
  16704 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  16705 
  16706 #ifndef VK_NO_PROTOTYPES
  16707 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
  16708     VkCommandBuffer                             commandBuffer,
  16709     uint32_t                                    vertexBindingDescriptionCount,
  16710     const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
  16711     uint32_t                                    vertexAttributeDescriptionCount,
  16712     const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  16713 #endif
  16714 
  16715 
  16716 // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
  16717 #define VK_EXT_physical_device_drm 1
  16718 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
  16719 #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
  16720 typedef struct VkPhysicalDeviceDrmPropertiesEXT {
  16721     VkStructureType    sType;
  16722     void*              pNext;
  16723     VkBool32           hasPrimary;
  16724     VkBool32           hasRender;
  16725     int64_t            primaryMajor;
  16726     int64_t            primaryMinor;
  16727     int64_t            renderMajor;
  16728     int64_t            renderMinor;
  16729 } VkPhysicalDeviceDrmPropertiesEXT;
  16730 
  16731 
  16732 
  16733 // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
  16734 #define VK_EXT_device_address_binding_report 1
  16735 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
  16736 #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
  16737 
  16738 typedef enum VkDeviceAddressBindingTypeEXT {
  16739     VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
  16740     VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
  16741     VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  16742 } VkDeviceAddressBindingTypeEXT;
  16743 
  16744 typedef enum VkDeviceAddressBindingFlagBitsEXT {
  16745     VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
  16746     VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16747 } VkDeviceAddressBindingFlagBitsEXT;
  16748 typedef VkFlags VkDeviceAddressBindingFlagsEXT;
  16749 typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
  16750     VkStructureType    sType;
  16751     void*              pNext;
  16752     VkBool32           reportAddressBinding;
  16753 } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
  16754 
  16755 typedef struct VkDeviceAddressBindingCallbackDataEXT {
  16756     VkStructureType                   sType;
  16757     void*                             pNext;
  16758     VkDeviceAddressBindingFlagsEXT    flags;
  16759     VkDeviceAddress                   baseAddress;
  16760     VkDeviceSize                      size;
  16761     VkDeviceAddressBindingTypeEXT     bindingType;
  16762 } VkDeviceAddressBindingCallbackDataEXT;
  16763 
  16764 
  16765 
  16766 // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
  16767 #define VK_EXT_depth_clip_control 1
  16768 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
  16769 #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
  16770 typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
  16771     VkStructureType    sType;
  16772     void*              pNext;
  16773     VkBool32           depthClipControl;
  16774 } VkPhysicalDeviceDepthClipControlFeaturesEXT;
  16775 
  16776 typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
  16777     VkStructureType    sType;
  16778     const void*        pNext;
  16779     VkBool32           negativeOneToOne;
  16780 } VkPipelineViewportDepthClipControlCreateInfoEXT;
  16781 
  16782 
  16783 
  16784 // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
  16785 #define VK_EXT_primitive_topology_list_restart 1
  16786 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
  16787 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
  16788 typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
  16789     VkStructureType    sType;
  16790     void*              pNext;
  16791     VkBool32           primitiveTopologyListRestart;
  16792     VkBool32           primitiveTopologyPatchListRestart;
  16793 } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  16794 
  16795 
  16796 
  16797 // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
  16798 #define VK_HUAWEI_subpass_shading 1
  16799 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
  16800 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
  16801 typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
  16802     VkStructureType    sType;
  16803     void*              pNext;
  16804     VkRenderPass       renderPass;
  16805     uint32_t           subpass;
  16806 } VkSubpassShadingPipelineCreateInfoHUAWEI;
  16807 
  16808 typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
  16809     VkStructureType    sType;
  16810     void*              pNext;
  16811     VkBool32           subpassShading;
  16812 } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
  16813 
  16814 typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
  16815     VkStructureType    sType;
  16816     void*              pNext;
  16817     uint32_t           maxSubpassShadingWorkgroupSizeAspectRatio;
  16818 } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
  16819 
  16820 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
  16821 typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
  16822 
  16823 #ifndef VK_NO_PROTOTYPES
  16824 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
  16825     VkDevice                                    device,
  16826     VkRenderPass                                renderpass,
  16827     VkExtent2D*                                 pMaxWorkgroupSize);
  16828 
  16829 VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
  16830     VkCommandBuffer                             commandBuffer);
  16831 #endif
  16832 
  16833 
  16834 // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
  16835 #define VK_HUAWEI_invocation_mask 1
  16836 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
  16837 #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
  16838 typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
  16839     VkStructureType    sType;
  16840     void*              pNext;
  16841     VkBool32           invocationMask;
  16842 } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
  16843 
  16844 typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  16845 
  16846 #ifndef VK_NO_PROTOTYPES
  16847 VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
  16848     VkCommandBuffer                             commandBuffer,
  16849     VkImageView                                 imageView,
  16850     VkImageLayout                               imageLayout);
  16851 #endif
  16852 
  16853 
  16854 // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
  16855 #define VK_NV_external_memory_rdma 1
  16856 typedef void* VkRemoteAddressNV;
  16857 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
  16858 #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
  16859 typedef struct VkMemoryGetRemoteAddressInfoNV {
  16860     VkStructureType                       sType;
  16861     const void*                           pNext;
  16862     VkDeviceMemory                        memory;
  16863     VkExternalMemoryHandleTypeFlagBits    handleType;
  16864 } VkMemoryGetRemoteAddressInfoNV;
  16865 
  16866 typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
  16867     VkStructureType    sType;
  16868     void*              pNext;
  16869     VkBool32           externalMemoryRDMA;
  16870 } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
  16871 
  16872 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
  16873 
  16874 #ifndef VK_NO_PROTOTYPES
  16875 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
  16876     VkDevice                                    device,
  16877     const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
  16878     VkRemoteAddressNV*                          pAddress);
  16879 #endif
  16880 
  16881 
  16882 // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
  16883 #define VK_EXT_pipeline_properties 1
  16884 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
  16885 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
  16886 typedef VkPipelineInfoKHR VkPipelineInfoEXT;
  16887 
  16888 typedef struct VkPipelinePropertiesIdentifierEXT {
  16889     VkStructureType    sType;
  16890     void*              pNext;
  16891     uint8_t            pipelineIdentifier[VK_UUID_SIZE];
  16892 } VkPipelinePropertiesIdentifierEXT;
  16893 
  16894 typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
  16895     VkStructureType    sType;
  16896     void*              pNext;
  16897     VkBool32           pipelinePropertiesIdentifier;
  16898 } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
  16899 
  16900 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
  16901 
  16902 #ifndef VK_NO_PROTOTYPES
  16903 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
  16904     VkDevice                                    device,
  16905     const VkPipelineInfoEXT*                    pPipelineInfo,
  16906     VkBaseOutStructure*                         pPipelineProperties);
  16907 #endif
  16908 
  16909 
  16910 // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
  16911 #define VK_EXT_frame_boundary 1
  16912 #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
  16913 #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
  16914 
  16915 typedef enum VkFrameBoundaryFlagBitsEXT {
  16916     VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
  16917     VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16918 } VkFrameBoundaryFlagBitsEXT;
  16919 typedef VkFlags VkFrameBoundaryFlagsEXT;
  16920 typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
  16921     VkStructureType    sType;
  16922     void*              pNext;
  16923     VkBool32           frameBoundary;
  16924 } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
  16925 
  16926 typedef struct VkFrameBoundaryEXT {
  16927     VkStructureType            sType;
  16928     const void*                pNext;
  16929     VkFrameBoundaryFlagsEXT    flags;
  16930     uint64_t                   frameID;
  16931     uint32_t                   imageCount;
  16932     const VkImage*             pImages;
  16933     uint32_t                   bufferCount;
  16934     const VkBuffer*            pBuffers;
  16935     uint64_t                   tagName;
  16936     size_t                     tagSize;
  16937     const void*                pTag;
  16938 } VkFrameBoundaryEXT;
  16939 
  16940 
  16941 
  16942 // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
  16943 #define VK_EXT_multisampled_render_to_single_sampled 1
  16944 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
  16945 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
  16946 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
  16947     VkStructureType    sType;
  16948     void*              pNext;
  16949     VkBool32           multisampledRenderToSingleSampled;
  16950 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  16951 
  16952 typedef struct VkSubpassResolvePerformanceQueryEXT {
  16953     VkStructureType    sType;
  16954     void*              pNext;
  16955     VkBool32           optimal;
  16956 } VkSubpassResolvePerformanceQueryEXT;
  16957 
  16958 typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
  16959     VkStructureType          sType;
  16960     const void*              pNext;
  16961     VkBool32                 multisampledRenderToSingleSampledEnable;
  16962     VkSampleCountFlagBits    rasterizationSamples;
  16963 } VkMultisampledRenderToSingleSampledInfoEXT;
  16964 
  16965 
  16966 
  16967 // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
  16968 #define VK_EXT_extended_dynamic_state2 1
  16969 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
  16970 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
  16971 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
  16972     VkStructureType    sType;
  16973     void*              pNext;
  16974     VkBool32           extendedDynamicState2;
  16975     VkBool32           extendedDynamicState2LogicOp;
  16976     VkBool32           extendedDynamicState2PatchControlPoints;
  16977 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
  16978 
  16979 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
  16980 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
  16981 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
  16982 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
  16983 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
  16984 
  16985 #ifndef VK_NO_PROTOTYPES
  16986 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
  16987     VkCommandBuffer                             commandBuffer,
  16988     uint32_t                                    patchControlPoints);
  16989 
  16990 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
  16991     VkCommandBuffer                             commandBuffer,
  16992     VkBool32                                    rasterizerDiscardEnable);
  16993 
  16994 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
  16995     VkCommandBuffer                             commandBuffer,
  16996     VkBool32                                    depthBiasEnable);
  16997 
  16998 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
  16999     VkCommandBuffer                             commandBuffer,
  17000     VkLogicOp                                   logicOp);
  17001 
  17002 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
  17003     VkCommandBuffer                             commandBuffer,
  17004     VkBool32                                    primitiveRestartEnable);
  17005 #endif
  17006 
  17007 
  17008 // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
  17009 #define VK_EXT_color_write_enable 1
  17010 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
  17011 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
  17012 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
  17013     VkStructureType    sType;
  17014     void*              pNext;
  17015     VkBool32           colorWriteEnable;
  17016 } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
  17017 
  17018 typedef struct VkPipelineColorWriteCreateInfoEXT {
  17019     VkStructureType    sType;
  17020     const void*        pNext;
  17021     uint32_t           attachmentCount;
  17022     const VkBool32*    pColorWriteEnables;
  17023 } VkPipelineColorWriteCreateInfoEXT;
  17024 
  17025 typedef void                                    (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer       commandBuffer, uint32_t                                attachmentCount, const VkBool32*   pColorWriteEnables);
  17026 
  17027 #ifndef VK_NO_PROTOTYPES
  17028 VKAPI_ATTR void                                    VKAPI_CALL vkCmdSetColorWriteEnableEXT(
  17029     VkCommandBuffer                             commandBuffer,
  17030     uint32_t                                    attachmentCount,
  17031     const VkBool32*                             pColorWriteEnables);
  17032 #endif
  17033 
  17034 
  17035 // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
  17036 #define VK_EXT_primitives_generated_query 1
  17037 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
  17038 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
  17039 typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
  17040     VkStructureType    sType;
  17041     void*              pNext;
  17042     VkBool32           primitivesGeneratedQuery;
  17043     VkBool32           primitivesGeneratedQueryWithRasterizerDiscard;
  17044     VkBool32           primitivesGeneratedQueryWithNonZeroStreams;
  17045 } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  17046 
  17047 
  17048 
  17049 // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
  17050 #define VK_EXT_global_priority_query 1
  17051 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
  17052 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
  17053 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT   VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
  17054 typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
  17055 
  17056 typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
  17057 
  17058 
  17059 
  17060 // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
  17061 #define VK_EXT_image_view_min_lod 1
  17062 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
  17063 #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
  17064 typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
  17065     VkStructureType    sType;
  17066     void*              pNext;
  17067     VkBool32           minLod;
  17068 } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
  17069 
  17070 typedef struct VkImageViewMinLodCreateInfoEXT {
  17071     VkStructureType    sType;
  17072     const void*        pNext;
  17073     float              minLod;
  17074 } VkImageViewMinLodCreateInfoEXT;
  17075 
  17076 
  17077 
  17078 // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
  17079 #define VK_EXT_multi_draw 1
  17080 #define VK_EXT_MULTI_DRAW_SPEC_VERSION    1
  17081 #define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
  17082 typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
  17083     VkStructureType    sType;
  17084     void*              pNext;
  17085     VkBool32           multiDraw;
  17086 } VkPhysicalDeviceMultiDrawFeaturesEXT;
  17087 
  17088 typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
  17089     VkStructureType    sType;
  17090     void*              pNext;
  17091     uint32_t           maxMultiDrawCount;
  17092 } VkPhysicalDeviceMultiDrawPropertiesEXT;
  17093 
  17094 typedef struct VkMultiDrawInfoEXT {
  17095     uint32_t    firstVertex;
  17096     uint32_t    vertexCount;
  17097 } VkMultiDrawInfoEXT;
  17098 
  17099 typedef struct VkMultiDrawIndexedInfoEXT {
  17100     uint32_t    firstIndex;
  17101     uint32_t    indexCount;
  17102     int32_t     vertexOffset;
  17103 } VkMultiDrawIndexedInfoEXT;
  17104 
  17105 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
  17106 typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
  17107 
  17108 #ifndef VK_NO_PROTOTYPES
  17109 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
  17110     VkCommandBuffer                             commandBuffer,
  17111     uint32_t                                    drawCount,
  17112     const VkMultiDrawInfoEXT*                   pVertexInfo,
  17113     uint32_t                                    instanceCount,
  17114     uint32_t                                    firstInstance,
  17115     uint32_t                                    stride);
  17116 
  17117 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
  17118     VkCommandBuffer                             commandBuffer,
  17119     uint32_t                                    drawCount,
  17120     const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
  17121     uint32_t                                    instanceCount,
  17122     uint32_t                                    firstInstance,
  17123     uint32_t                                    stride,
  17124     const int32_t*                              pVertexOffset);
  17125 #endif
  17126 
  17127 
  17128 // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
  17129 #define VK_EXT_image_2d_view_of_3d 1
  17130 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
  17131 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
  17132 typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
  17133     VkStructureType    sType;
  17134     void*              pNext;
  17135     VkBool32           image2DViewOf3D;
  17136     VkBool32           sampler2DViewOf3D;
  17137 } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
  17138 
  17139 
  17140 
  17141 // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
  17142 #define VK_EXT_shader_tile_image 1
  17143 #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
  17144 #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
  17145 typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
  17146     VkStructureType    sType;
  17147     void*              pNext;
  17148     VkBool32           shaderTileImageColorReadAccess;
  17149     VkBool32           shaderTileImageDepthReadAccess;
  17150     VkBool32           shaderTileImageStencilReadAccess;
  17151 } VkPhysicalDeviceShaderTileImageFeaturesEXT;
  17152 
  17153 typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
  17154     VkStructureType    sType;
  17155     void*              pNext;
  17156     VkBool32           shaderTileImageCoherentReadAccelerated;
  17157     VkBool32           shaderTileImageReadSampleFromPixelRateInvocation;
  17158     VkBool32           shaderTileImageReadFromHelperInvocation;
  17159 } VkPhysicalDeviceShaderTileImagePropertiesEXT;
  17160 
  17161 
  17162 
  17163 // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
  17164 #define VK_EXT_opacity_micromap 1
  17165 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
  17166 #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
  17167 #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
  17168 
  17169 typedef enum VkMicromapTypeEXT {
  17170     VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
  17171 #ifdef VK_ENABLE_BETA_EXTENSIONS
  17172     VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
  17173 #endif
  17174     VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  17175 } VkMicromapTypeEXT;
  17176 
  17177 typedef enum VkBuildMicromapModeEXT {
  17178     VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
  17179     VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  17180 } VkBuildMicromapModeEXT;
  17181 
  17182 typedef enum VkCopyMicromapModeEXT {
  17183     VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
  17184     VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
  17185     VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
  17186     VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
  17187     VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  17188 } VkCopyMicromapModeEXT;
  17189 
  17190 typedef enum VkOpacityMicromapFormatEXT {
  17191     VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
  17192     VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
  17193     VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
  17194 } VkOpacityMicromapFormatEXT;
  17195 
  17196 typedef enum VkOpacityMicromapSpecialIndexEXT {
  17197     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
  17198     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
  17199     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
  17200     VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
  17201     VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
  17202 } VkOpacityMicromapSpecialIndexEXT;
  17203 
  17204 typedef enum VkAccelerationStructureCompatibilityKHR {
  17205     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
  17206     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
  17207     VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
  17208 } VkAccelerationStructureCompatibilityKHR;
  17209 
  17210 typedef enum VkAccelerationStructureBuildTypeKHR {
  17211     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
  17212     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
  17213     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
  17214     VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  17215 } VkAccelerationStructureBuildTypeKHR;
  17216 
  17217 typedef enum VkBuildMicromapFlagBitsEXT {
  17218     VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
  17219     VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
  17220     VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
  17221     VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  17222 } VkBuildMicromapFlagBitsEXT;
  17223 typedef VkFlags VkBuildMicromapFlagsEXT;
  17224 
  17225 typedef enum VkMicromapCreateFlagBitsEXT {
  17226     VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
  17227     VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  17228 } VkMicromapCreateFlagBitsEXT;
  17229 typedef VkFlags VkMicromapCreateFlagsEXT;
  17230 typedef struct VkMicromapUsageEXT {
  17231     uint32_t    count;
  17232     uint32_t    subdivisionLevel;
  17233     uint32_t    format;
  17234 } VkMicromapUsageEXT;
  17235 
  17236 typedef union VkDeviceOrHostAddressKHR {
  17237     VkDeviceAddress    deviceAddress;
  17238     void*              hostAddress;
  17239 } VkDeviceOrHostAddressKHR;
  17240 
  17241 typedef struct VkMicromapBuildInfoEXT {
  17242     VkStructureType                     sType;
  17243     const void*                         pNext;
  17244     VkMicromapTypeEXT                   type;
  17245     VkBuildMicromapFlagsEXT             flags;
  17246     VkBuildMicromapModeEXT              mode;
  17247     VkMicromapEXT                       dstMicromap;
  17248     uint32_t                            usageCountsCount;
  17249     const VkMicromapUsageEXT*           pUsageCounts;
  17250     const VkMicromapUsageEXT* const*    ppUsageCounts;
  17251     VkDeviceOrHostAddressConstKHR       data;
  17252     VkDeviceOrHostAddressKHR            scratchData;
  17253     VkDeviceOrHostAddressConstKHR       triangleArray;
  17254     VkDeviceSize                        triangleArrayStride;
  17255 } VkMicromapBuildInfoEXT;
  17256 
  17257 typedef struct VkMicromapCreateInfoEXT {
  17258     VkStructureType             sType;
  17259     const void*                 pNext;
  17260     VkMicromapCreateFlagsEXT    createFlags;
  17261     VkBuffer                    buffer;
  17262     VkDeviceSize                offset;
  17263     VkDeviceSize                size;
  17264     VkMicromapTypeEXT           type;
  17265     VkDeviceAddress             deviceAddress;
  17266 } VkMicromapCreateInfoEXT;
  17267 
  17268 typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
  17269     VkStructureType    sType;
  17270     void*              pNext;
  17271     VkBool32           micromap;
  17272     VkBool32           micromapCaptureReplay;
  17273     VkBool32           micromapHostCommands;
  17274 } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
  17275 
  17276 typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
  17277     VkStructureType    sType;
  17278     void*              pNext;
  17279     uint32_t           maxOpacity2StateSubdivisionLevel;
  17280     uint32_t           maxOpacity4StateSubdivisionLevel;
  17281 } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
  17282 
  17283 typedef struct VkMicromapVersionInfoEXT {
  17284     VkStructureType    sType;
  17285     const void*        pNext;
  17286     const uint8_t*     pVersionData;
  17287 } VkMicromapVersionInfoEXT;
  17288 
  17289 typedef struct VkCopyMicromapToMemoryInfoEXT {
  17290     VkStructureType             sType;
  17291     const void*                 pNext;
  17292     VkMicromapEXT               src;
  17293     VkDeviceOrHostAddressKHR    dst;
  17294     VkCopyMicromapModeEXT       mode;
  17295 } VkCopyMicromapToMemoryInfoEXT;
  17296 
  17297 typedef struct VkCopyMemoryToMicromapInfoEXT {
  17298     VkStructureType                  sType;
  17299     const void*                      pNext;
  17300     VkDeviceOrHostAddressConstKHR    src;
  17301     VkMicromapEXT                    dst;
  17302     VkCopyMicromapModeEXT            mode;
  17303 } VkCopyMemoryToMicromapInfoEXT;
  17304 
  17305 typedef struct VkCopyMicromapInfoEXT {
  17306     VkStructureType          sType;
  17307     const void*              pNext;
  17308     VkMicromapEXT            src;
  17309     VkMicromapEXT            dst;
  17310     VkCopyMicromapModeEXT    mode;
  17311 } VkCopyMicromapInfoEXT;
  17312 
  17313 typedef struct VkMicromapBuildSizesInfoEXT {
  17314     VkStructureType    sType;
  17315     const void*        pNext;
  17316     VkDeviceSize       micromapSize;
  17317     VkDeviceSize       buildScratchSize;
  17318     VkBool32           discardable;
  17319 } VkMicromapBuildSizesInfoEXT;
  17320 
  17321 typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
  17322     VkStructureType                     sType;
  17323     void*                               pNext;
  17324     VkIndexType                         indexType;
  17325     VkDeviceOrHostAddressConstKHR       indexBuffer;
  17326     VkDeviceSize                        indexStride;
  17327     uint32_t                            baseTriangle;
  17328     uint32_t                            usageCountsCount;
  17329     const VkMicromapUsageEXT*           pUsageCounts;
  17330     const VkMicromapUsageEXT* const*    ppUsageCounts;
  17331     VkMicromapEXT                       micromap;
  17332 } VkAccelerationStructureTrianglesOpacityMicromapEXT;
  17333 
  17334 typedef struct VkMicromapTriangleEXT {
  17335     uint32_t    dataOffset;
  17336     uint16_t    subdivisionLevel;
  17337     uint16_t    format;
  17338 } VkMicromapTriangleEXT;
  17339 
  17340 typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice                                           device, const VkMicromapCreateInfoEXT*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkMicromapEXT*                        pMicromap);
  17341 typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
  17342 typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
  17343 typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
  17344 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
  17345 typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17346 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17347 typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
  17348 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
  17349 typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17350 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17351 typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  17352 typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
  17353 typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkMicromapBuildInfoEXT*  pBuildInfo, VkMicromapBuildSizesInfoEXT*           pSizeInfo);
  17354 
  17355 #ifndef VK_NO_PROTOTYPES
  17356 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
  17357     VkDevice                                    device,
  17358     const VkMicromapCreateInfoEXT*              pCreateInfo,
  17359     const VkAllocationCallbacks*                pAllocator,
  17360     VkMicromapEXT*                              pMicromap);
  17361 
  17362 VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
  17363     VkDevice                                    device,
  17364     VkMicromapEXT                               micromap,
  17365     const VkAllocationCallbacks*                pAllocator);
  17366 
  17367 VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
  17368     VkCommandBuffer                             commandBuffer,
  17369     uint32_t                                    infoCount,
  17370     const VkMicromapBuildInfoEXT*               pInfos);
  17371 
  17372 VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
  17373     VkDevice                                    device,
  17374     VkDeferredOperationKHR                      deferredOperation,
  17375     uint32_t                                    infoCount,
  17376     const VkMicromapBuildInfoEXT*               pInfos);
  17377 
  17378 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
  17379     VkDevice                                    device,
  17380     VkDeferredOperationKHR                      deferredOperation,
  17381     const VkCopyMicromapInfoEXT*                pInfo);
  17382 
  17383 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
  17384     VkDevice                                    device,
  17385     VkDeferredOperationKHR                      deferredOperation,
  17386     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
  17387 
  17388 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
  17389     VkDevice                                    device,
  17390     VkDeferredOperationKHR                      deferredOperation,
  17391     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
  17392 
  17393 VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
  17394     VkDevice                                    device,
  17395     uint32_t                                    micromapCount,
  17396     const VkMicromapEXT*                        pMicromaps,
  17397     VkQueryType                                 queryType,
  17398     size_t                                      dataSize,
  17399     void*                                       pData,
  17400     size_t                                      stride);
  17401 
  17402 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
  17403     VkCommandBuffer                             commandBuffer,
  17404     const VkCopyMicromapInfoEXT*                pInfo);
  17405 
  17406 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
  17407     VkCommandBuffer                             commandBuffer,
  17408     const VkCopyMicromapToMemoryInfoEXT*        pInfo);
  17409 
  17410 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
  17411     VkCommandBuffer                             commandBuffer,
  17412     const VkCopyMemoryToMicromapInfoEXT*        pInfo);
  17413 
  17414 VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
  17415     VkCommandBuffer                             commandBuffer,
  17416     uint32_t                                    micromapCount,
  17417     const VkMicromapEXT*                        pMicromaps,
  17418     VkQueryType                                 queryType,
  17419     VkQueryPool                                 queryPool,
  17420     uint32_t                                    firstQuery);
  17421 
  17422 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
  17423     VkDevice                                    device,
  17424     const VkMicromapVersionInfoEXT*             pVersionInfo,
  17425     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
  17426 
  17427 VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
  17428     VkDevice                                    device,
  17429     VkAccelerationStructureBuildTypeKHR         buildType,
  17430     const VkMicromapBuildInfoEXT*               pBuildInfo,
  17431     VkMicromapBuildSizesInfoEXT*                pSizeInfo);
  17432 #endif
  17433 
  17434 
  17435 // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
  17436 #define VK_EXT_load_store_op_none 1
  17437 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
  17438 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
  17439 
  17440 
  17441 // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
  17442 #define VK_HUAWEI_cluster_culling_shader 1
  17443 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
  17444 #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
  17445 typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
  17446     VkStructureType    sType;
  17447     void*              pNext;
  17448     VkBool32           clustercullingShader;
  17449     VkBool32           multiviewClusterCullingShader;
  17450 } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  17451 
  17452 typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
  17453     VkStructureType    sType;
  17454     void*              pNext;
  17455     uint32_t           maxWorkGroupCount[3];
  17456     uint32_t           maxWorkGroupSize[3];
  17457     uint32_t           maxOutputClusterCount;
  17458     VkDeviceSize       indirectBufferOffsetAlignment;
  17459 } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  17460 
  17461 typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
  17462     VkStructureType    sType;
  17463     void*              pNext;
  17464     VkBool32           clusterShadingRate;
  17465 } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
  17466 
  17467 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  17468 typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  17469 
  17470 #ifndef VK_NO_PROTOTYPES
  17471 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
  17472     VkCommandBuffer                             commandBuffer,
  17473     uint32_t                                    groupCountX,
  17474     uint32_t                                    groupCountY,
  17475     uint32_t                                    groupCountZ);
  17476 
  17477 VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
  17478     VkCommandBuffer                             commandBuffer,
  17479     VkBuffer                                    buffer,
  17480     VkDeviceSize                                offset);
  17481 #endif
  17482 
  17483 
  17484 // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
  17485 #define VK_EXT_border_color_swizzle 1
  17486 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
  17487 #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
  17488 typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
  17489     VkStructureType    sType;
  17490     void*              pNext;
  17491     VkBool32           borderColorSwizzle;
  17492     VkBool32           borderColorSwizzleFromImage;
  17493 } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
  17494 
  17495 typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
  17496     VkStructureType       sType;
  17497     const void*           pNext;
  17498     VkComponentMapping    components;
  17499     VkBool32              srgb;
  17500 } VkSamplerBorderColorComponentMappingCreateInfoEXT;
  17501 
  17502 
  17503 
  17504 // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
  17505 #define VK_EXT_pageable_device_local_memory 1
  17506 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
  17507 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
  17508 typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
  17509     VkStructureType    sType;
  17510     void*              pNext;
  17511     VkBool32           pageableDeviceLocalMemory;
  17512 } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  17513 
  17514 typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
  17515 
  17516 #ifndef VK_NO_PROTOTYPES
  17517 VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
  17518     VkDevice                                    device,
  17519     VkDeviceMemory                              memory,
  17520     float                                       priority);
  17521 #endif
  17522 
  17523 
  17524 // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
  17525 #define VK_ARM_shader_core_properties 1
  17526 #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
  17527 #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
  17528 typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
  17529     VkStructureType    sType;
  17530     void*              pNext;
  17531     uint32_t           pixelRate;
  17532     uint32_t           texelRate;
  17533     uint32_t           fmaRate;
  17534 } VkPhysicalDeviceShaderCorePropertiesARM;
  17535 
  17536 
  17537 
  17538 // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
  17539 #define VK_ARM_scheduling_controls 1
  17540 #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
  17541 #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
  17542 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
  17543 
  17544 // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
  17545 typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
  17546 static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
  17547 
  17548 typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
  17549     VkStructureType    sType;
  17550     void*              pNext;
  17551     uint32_t           shaderCoreCount;
  17552 } VkDeviceQueueShaderCoreControlCreateInfoARM;
  17553 
  17554 typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
  17555     VkStructureType    sType;
  17556     void*              pNext;
  17557     VkBool32           schedulingControls;
  17558 } VkPhysicalDeviceSchedulingControlsFeaturesARM;
  17559 
  17560 typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
  17561     VkStructureType                               sType;
  17562     void*                                         pNext;
  17563     VkPhysicalDeviceSchedulingControlsFlagsARM    schedulingControlsFlags;
  17564 } VkPhysicalDeviceSchedulingControlsPropertiesARM;
  17565 
  17566 
  17567 
  17568 // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
  17569 #define VK_EXT_image_sliced_view_of_3d 1
  17570 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
  17571 #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
  17572 #define VK_REMAINING_3D_SLICES_EXT        (~0U)
  17573 typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
  17574     VkStructureType    sType;
  17575     void*              pNext;
  17576     VkBool32           imageSlicedViewOf3D;
  17577 } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  17578 
  17579 typedef struct VkImageViewSlicedCreateInfoEXT {
  17580     VkStructureType    sType;
  17581     const void*        pNext;
  17582     uint32_t           sliceOffset;
  17583     uint32_t           sliceCount;
  17584 } VkImageViewSlicedCreateInfoEXT;
  17585 
  17586 
  17587 
  17588 // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
  17589 #define VK_VALVE_descriptor_set_host_mapping 1
  17590 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
  17591 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
  17592 typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
  17593     VkStructureType    sType;
  17594     void*              pNext;
  17595     VkBool32           descriptorSetHostMapping;
  17596 } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  17597 
  17598 typedef struct VkDescriptorSetBindingReferenceVALVE {
  17599     VkStructureType          sType;
  17600     const void*              pNext;
  17601     VkDescriptorSetLayout    descriptorSetLayout;
  17602     uint32_t                 binding;
  17603 } VkDescriptorSetBindingReferenceVALVE;
  17604 
  17605 typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
  17606     VkStructureType    sType;
  17607     void*              pNext;
  17608     size_t             descriptorOffset;
  17609     uint32_t           descriptorSize;
  17610 } VkDescriptorSetLayoutHostMappingInfoVALVE;
  17611 
  17612 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
  17613 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
  17614 
  17615 #ifndef VK_NO_PROTOTYPES
  17616 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
  17617     VkDevice                                    device,
  17618     const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
  17619     VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping);
  17620 
  17621 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
  17622     VkDevice                                    device,
  17623     VkDescriptorSet                             descriptorSet,
  17624     void**                                      ppData);
  17625 #endif
  17626 
  17627 
  17628 // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
  17629 #define VK_EXT_depth_clamp_zero_one 1
  17630 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
  17631 #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
  17632 typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
  17633     VkStructureType    sType;
  17634     void*              pNext;
  17635     VkBool32           depthClampZeroOne;
  17636 } VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
  17637 
  17638 
  17639 
  17640 // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
  17641 #define VK_EXT_non_seamless_cube_map 1
  17642 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
  17643 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
  17644 typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
  17645     VkStructureType    sType;
  17646     void*              pNext;
  17647     VkBool32           nonSeamlessCubeMap;
  17648 } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  17649 
  17650 
  17651 
  17652 // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
  17653 #define VK_ARM_render_pass_striped 1
  17654 #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
  17655 #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
  17656 typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
  17657     VkStructureType    sType;
  17658     void*              pNext;
  17659     VkBool32           renderPassStriped;
  17660 } VkPhysicalDeviceRenderPassStripedFeaturesARM;
  17661 
  17662 typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
  17663     VkStructureType    sType;
  17664     void*              pNext;
  17665     VkExtent2D         renderPassStripeGranularity;
  17666     uint32_t           maxRenderPassStripes;
  17667 } VkPhysicalDeviceRenderPassStripedPropertiesARM;
  17668 
  17669 typedef struct VkRenderPassStripeInfoARM {
  17670     VkStructureType    sType;
  17671     const void*        pNext;
  17672     VkRect2D           stripeArea;
  17673 } VkRenderPassStripeInfoARM;
  17674 
  17675 typedef struct VkRenderPassStripeBeginInfoARM {
  17676     VkStructureType                     sType;
  17677     const void*                         pNext;
  17678     uint32_t                            stripeInfoCount;
  17679     const VkRenderPassStripeInfoARM*    pStripeInfos;
  17680 } VkRenderPassStripeBeginInfoARM;
  17681 
  17682 typedef struct VkRenderPassStripeSubmitInfoARM {
  17683     VkStructureType                 sType;
  17684     const void*                     pNext;
  17685     uint32_t                        stripeSemaphoreInfoCount;
  17686     const VkSemaphoreSubmitInfo*    pStripeSemaphoreInfos;
  17687 } VkRenderPassStripeSubmitInfoARM;
  17688 
  17689 
  17690 
  17691 // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
  17692 #define VK_QCOM_fragment_density_map_offset 1
  17693 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
  17694 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
  17695 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
  17696     VkStructureType    sType;
  17697     void*              pNext;
  17698     VkBool32           fragmentDensityMapOffset;
  17699 } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  17700 
  17701 typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
  17702     VkStructureType    sType;
  17703     void*              pNext;
  17704     VkExtent2D         fragmentDensityOffsetGranularity;
  17705 } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  17706 
  17707 typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
  17708     VkStructureType      sType;
  17709     const void*          pNext;
  17710     uint32_t             fragmentDensityOffsetCount;
  17711     const VkOffset2D*    pFragmentDensityOffsets;
  17712 } VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
  17713 
  17714 
  17715 
  17716 // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
  17717 #define VK_NV_copy_memory_indirect 1
  17718 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
  17719 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
  17720 typedef struct VkCopyMemoryIndirectCommandNV {
  17721     VkDeviceAddress    srcAddress;
  17722     VkDeviceAddress    dstAddress;
  17723     VkDeviceSize       size;
  17724 } VkCopyMemoryIndirectCommandNV;
  17725 
  17726 typedef struct VkCopyMemoryToImageIndirectCommandNV {
  17727     VkDeviceAddress             srcAddress;
  17728     uint32_t                    bufferRowLength;
  17729     uint32_t                    bufferImageHeight;
  17730     VkImageSubresourceLayers    imageSubresource;
  17731     VkOffset3D                  imageOffset;
  17732     VkExtent3D                  imageExtent;
  17733 } VkCopyMemoryToImageIndirectCommandNV;
  17734 
  17735 typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
  17736     VkStructureType    sType;
  17737     void*              pNext;
  17738     VkBool32           indirectCopy;
  17739 } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
  17740 
  17741 typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
  17742     VkStructureType    sType;
  17743     void*              pNext;
  17744     VkQueueFlags       supportedQueues;
  17745 } VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
  17746 
  17747 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
  17748 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
  17749 
  17750 #ifndef VK_NO_PROTOTYPES
  17751 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
  17752     VkCommandBuffer                             commandBuffer,
  17753     VkDeviceAddress                             copyBufferAddress,
  17754     uint32_t                                    copyCount,
  17755     uint32_t                                    stride);
  17756 
  17757 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
  17758     VkCommandBuffer                             commandBuffer,
  17759     VkDeviceAddress                             copyBufferAddress,
  17760     uint32_t                                    copyCount,
  17761     uint32_t                                    stride,
  17762     VkImage                                     dstImage,
  17763     VkImageLayout                               dstImageLayout,
  17764     const VkImageSubresourceLayers*             pImageSubresources);
  17765 #endif
  17766 
  17767 
  17768 // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
  17769 #define VK_NV_memory_decompression 1
  17770 #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
  17771 #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
  17772 
  17773 // Flag bits for VkMemoryDecompressionMethodFlagBitsNV
  17774 typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
  17775 static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
  17776 
  17777 typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
  17778 typedef struct VkDecompressMemoryRegionNV {
  17779     VkDeviceAddress                       srcAddress;
  17780     VkDeviceAddress                       dstAddress;
  17781     VkDeviceSize                          compressedSize;
  17782     VkDeviceSize                          decompressedSize;
  17783     VkMemoryDecompressionMethodFlagsNV    decompressionMethod;
  17784 } VkDecompressMemoryRegionNV;
  17785 
  17786 typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
  17787     VkStructureType    sType;
  17788     void*              pNext;
  17789     VkBool32           memoryDecompression;
  17790 } VkPhysicalDeviceMemoryDecompressionFeaturesNV;
  17791 
  17792 typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
  17793     VkStructureType                       sType;
  17794     void*                                 pNext;
  17795     VkMemoryDecompressionMethodFlagsNV    decompressionMethods;
  17796     uint64_t                              maxDecompressionIndirectCount;
  17797 } VkPhysicalDeviceMemoryDecompressionPropertiesNV;
  17798 
  17799 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
  17800 typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
  17801 
  17802 #ifndef VK_NO_PROTOTYPES
  17803 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
  17804     VkCommandBuffer                             commandBuffer,
  17805     uint32_t                                    decompressRegionCount,
  17806     const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions);
  17807 
  17808 VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
  17809     VkCommandBuffer                             commandBuffer,
  17810     VkDeviceAddress                             indirectCommandsAddress,
  17811     VkDeviceAddress                             indirectCommandsCountAddress,
  17812     uint32_t                                    stride);
  17813 #endif
  17814 
  17815 
  17816 // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
  17817 #define VK_NV_device_generated_commands_compute 1
  17818 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
  17819 #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
  17820 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
  17821     VkStructureType    sType;
  17822     void*              pNext;
  17823     VkBool32           deviceGeneratedCompute;
  17824     VkBool32           deviceGeneratedComputePipelines;
  17825     VkBool32           deviceGeneratedComputeCaptureReplay;
  17826 } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  17827 
  17828 typedef struct VkComputePipelineIndirectBufferInfoNV {
  17829     VkStructureType    sType;
  17830     const void*        pNext;
  17831     VkDeviceAddress    deviceAddress;
  17832     VkDeviceSize       size;
  17833     VkDeviceAddress    pipelineDeviceAddressCaptureReplay;
  17834 } VkComputePipelineIndirectBufferInfoNV;
  17835 
  17836 typedef struct VkPipelineIndirectDeviceAddressInfoNV {
  17837     VkStructureType        sType;
  17838     const void*            pNext;
  17839     VkPipelineBindPoint    pipelineBindPoint;
  17840     VkPipeline             pipeline;
  17841 } VkPipelineIndirectDeviceAddressInfoNV;
  17842 
  17843 typedef struct VkBindPipelineIndirectCommandNV {
  17844     VkDeviceAddress    pipelineAddress;
  17845 } VkBindPipelineIndirectCommandNV;
  17846 
  17847 typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
  17848 typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint           pipelineBindPoint, VkPipeline                    pipeline);
  17849 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
  17850 
  17851 #ifndef VK_NO_PROTOTYPES
  17852 VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
  17853     VkDevice                                    device,
  17854     const VkComputePipelineCreateInfo*          pCreateInfo,
  17855     VkMemoryRequirements2*                      pMemoryRequirements);
  17856 
  17857 VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
  17858     VkCommandBuffer                             commandBuffer,
  17859     VkPipelineBindPoint                         pipelineBindPoint,
  17860     VkPipeline                                  pipeline);
  17861 
  17862 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
  17863     VkDevice                                    device,
  17864     const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
  17865 #endif
  17866 
  17867 
  17868 // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
  17869 #define VK_NV_linear_color_attachment 1
  17870 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
  17871 #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
  17872 typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
  17873     VkStructureType    sType;
  17874     void*              pNext;
  17875     VkBool32           linearColorAttachment;
  17876 } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
  17877 
  17878 
  17879 
  17880 // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
  17881 #define VK_GOOGLE_surfaceless_query 1
  17882 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
  17883 #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
  17884 
  17885 
  17886 // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
  17887 #define VK_EXT_image_compression_control_swapchain 1
  17888 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
  17889 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
  17890 typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
  17891     VkStructureType    sType;
  17892     void*              pNext;
  17893     VkBool32           imageCompressionControlSwapchain;
  17894 } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  17895 
  17896 
  17897 
  17898 // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
  17899 #define VK_QCOM_image_processing 1
  17900 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
  17901 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
  17902 typedef struct VkImageViewSampleWeightCreateInfoQCOM {
  17903     VkStructureType    sType;
  17904     const void*        pNext;
  17905     VkOffset2D         filterCenter;
  17906     VkExtent2D         filterSize;
  17907     uint32_t           numPhases;
  17908 } VkImageViewSampleWeightCreateInfoQCOM;
  17909 
  17910 typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
  17911     VkStructureType    sType;
  17912     void*              pNext;
  17913     VkBool32           textureSampleWeighted;
  17914     VkBool32           textureBoxFilter;
  17915     VkBool32           textureBlockMatch;
  17916 } VkPhysicalDeviceImageProcessingFeaturesQCOM;
  17917 
  17918 typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
  17919     VkStructureType    sType;
  17920     void*              pNext;
  17921     uint32_t           maxWeightFilterPhases;
  17922     VkExtent2D         maxWeightFilterDimension;
  17923     VkExtent2D         maxBlockMatchRegion;
  17924     VkExtent2D         maxBoxFilterBlockSize;
  17925 } VkPhysicalDeviceImageProcessingPropertiesQCOM;
  17926 
  17927 
  17928 
  17929 // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
  17930 #define VK_EXT_nested_command_buffer 1
  17931 #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
  17932 #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
  17933 typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
  17934     VkStructureType    sType;
  17935     void*              pNext;
  17936     VkBool32           nestedCommandBuffer;
  17937     VkBool32           nestedCommandBufferRendering;
  17938     VkBool32           nestedCommandBufferSimultaneousUse;
  17939 } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
  17940 
  17941 typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
  17942     VkStructureType    sType;
  17943     void*              pNext;
  17944     uint32_t           maxCommandBufferNestingLevel;
  17945 } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
  17946 
  17947 
  17948 
  17949 // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
  17950 #define VK_EXT_external_memory_acquire_unmodified 1
  17951 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
  17952 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
  17953 typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
  17954     VkStructureType    sType;
  17955     const void*        pNext;
  17956     VkBool32           acquireUnmodifiedMemory;
  17957 } VkExternalMemoryAcquireUnmodifiedEXT;
  17958 
  17959 
  17960 
  17961 // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
  17962 #define VK_EXT_extended_dynamic_state3 1
  17963 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
  17964 #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
  17965 typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
  17966     VkStructureType    sType;
  17967     void*              pNext;
  17968     VkBool32           extendedDynamicState3TessellationDomainOrigin;
  17969     VkBool32           extendedDynamicState3DepthClampEnable;
  17970     VkBool32           extendedDynamicState3PolygonMode;
  17971     VkBool32           extendedDynamicState3RasterizationSamples;
  17972     VkBool32           extendedDynamicState3SampleMask;
  17973     VkBool32           extendedDynamicState3AlphaToCoverageEnable;
  17974     VkBool32           extendedDynamicState3AlphaToOneEnable;
  17975     VkBool32           extendedDynamicState3LogicOpEnable;
  17976     VkBool32           extendedDynamicState3ColorBlendEnable;
  17977     VkBool32           extendedDynamicState3ColorBlendEquation;
  17978     VkBool32           extendedDynamicState3ColorWriteMask;
  17979     VkBool32           extendedDynamicState3RasterizationStream;
  17980     VkBool32           extendedDynamicState3ConservativeRasterizationMode;
  17981     VkBool32           extendedDynamicState3ExtraPrimitiveOverestimationSize;
  17982     VkBool32           extendedDynamicState3DepthClipEnable;
  17983     VkBool32           extendedDynamicState3SampleLocationsEnable;
  17984     VkBool32           extendedDynamicState3ColorBlendAdvanced;
  17985     VkBool32           extendedDynamicState3ProvokingVertexMode;
  17986     VkBool32           extendedDynamicState3LineRasterizationMode;
  17987     VkBool32           extendedDynamicState3LineStippleEnable;
  17988     VkBool32           extendedDynamicState3DepthClipNegativeOneToOne;
  17989     VkBool32           extendedDynamicState3ViewportWScalingEnable;
  17990     VkBool32           extendedDynamicState3ViewportSwizzle;
  17991     VkBool32           extendedDynamicState3CoverageToColorEnable;
  17992     VkBool32           extendedDynamicState3CoverageToColorLocation;
  17993     VkBool32           extendedDynamicState3CoverageModulationMode;
  17994     VkBool32           extendedDynamicState3CoverageModulationTableEnable;
  17995     VkBool32           extendedDynamicState3CoverageModulationTable;
  17996     VkBool32           extendedDynamicState3CoverageReductionMode;
  17997     VkBool32           extendedDynamicState3RepresentativeFragmentTestEnable;
  17998     VkBool32           extendedDynamicState3ShadingRateImageEnable;
  17999 } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
  18000 
  18001 typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
  18002     VkStructureType    sType;
  18003     void*              pNext;
  18004     VkBool32           dynamicPrimitiveTopologyUnrestricted;
  18005 } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
  18006 
  18007 typedef struct VkColorBlendEquationEXT {
  18008     VkBlendFactor    srcColorBlendFactor;
  18009     VkBlendFactor    dstColorBlendFactor;
  18010     VkBlendOp        colorBlendOp;
  18011     VkBlendFactor    srcAlphaBlendFactor;
  18012     VkBlendFactor    dstAlphaBlendFactor;
  18013     VkBlendOp        alphaBlendOp;
  18014 } VkColorBlendEquationEXT;
  18015 
  18016 typedef struct VkColorBlendAdvancedEXT {
  18017     VkBlendOp            advancedBlendOp;
  18018     VkBool32             srcPremultiplied;
  18019     VkBool32             dstPremultiplied;
  18020     VkBlendOverlapEXT    blendOverlap;
  18021     VkBool32             clampResults;
  18022 } VkColorBlendAdvancedEXT;
  18023 
  18024 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
  18025 typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
  18026 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  rasterizationSamples);
  18027 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits  samples, const VkSampleMask*    pSampleMask);
  18028 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
  18029 typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
  18030 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
  18031 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
  18032 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
  18033 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
  18034 typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
  18035 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
  18036 typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
  18037 typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
  18038 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
  18039 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
  18040 typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
  18041 typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
  18042 typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
  18043 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
  18044 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
  18045 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
  18046 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
  18047 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
  18048 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
  18049 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
  18050 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
  18051 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
  18052 typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
  18053 typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
  18054 typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
  18055 
  18056 #ifndef VK_NO_PROTOTYPES
  18057 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
  18058     VkCommandBuffer                             commandBuffer,
  18059     VkBool32                                    depthClampEnable);
  18060 
  18061 VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
  18062     VkCommandBuffer                             commandBuffer,
  18063     VkPolygonMode                               polygonMode);
  18064 
  18065 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
  18066     VkCommandBuffer                             commandBuffer,
  18067     VkSampleCountFlagBits                       rasterizationSamples);
  18068 
  18069 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
  18070     VkCommandBuffer                             commandBuffer,
  18071     VkSampleCountFlagBits                       samples,
  18072     const VkSampleMask*                         pSampleMask);
  18073 
  18074 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
  18075     VkCommandBuffer                             commandBuffer,
  18076     VkBool32                                    alphaToCoverageEnable);
  18077 
  18078 VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
  18079     VkCommandBuffer                             commandBuffer,
  18080     VkBool32                                    alphaToOneEnable);
  18081 
  18082 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
  18083     VkCommandBuffer                             commandBuffer,
  18084     VkBool32                                    logicOpEnable);
  18085 
  18086 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
  18087     VkCommandBuffer                             commandBuffer,
  18088     uint32_t                                    firstAttachment,
  18089     uint32_t                                    attachmentCount,
  18090     const VkBool32*                             pColorBlendEnables);
  18091 
  18092 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
  18093     VkCommandBuffer                             commandBuffer,
  18094     uint32_t                                    firstAttachment,
  18095     uint32_t                                    attachmentCount,
  18096     const VkColorBlendEquationEXT*              pColorBlendEquations);
  18097 
  18098 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
  18099     VkCommandBuffer                             commandBuffer,
  18100     uint32_t                                    firstAttachment,
  18101     uint32_t                                    attachmentCount,
  18102     const VkColorComponentFlags*                pColorWriteMasks);
  18103 
  18104 VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
  18105     VkCommandBuffer                             commandBuffer,
  18106     VkTessellationDomainOrigin                  domainOrigin);
  18107 
  18108 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
  18109     VkCommandBuffer                             commandBuffer,
  18110     uint32_t                                    rasterizationStream);
  18111 
  18112 VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
  18113     VkCommandBuffer                             commandBuffer,
  18114     VkConservativeRasterizationModeEXT          conservativeRasterizationMode);
  18115 
  18116 VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
  18117     VkCommandBuffer                             commandBuffer,
  18118     float                                       extraPrimitiveOverestimationSize);
  18119 
  18120 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
  18121     VkCommandBuffer                             commandBuffer,
  18122     VkBool32                                    depthClipEnable);
  18123 
  18124 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
  18125     VkCommandBuffer                             commandBuffer,
  18126     VkBool32                                    sampleLocationsEnable);
  18127 
  18128 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
  18129     VkCommandBuffer                             commandBuffer,
  18130     uint32_t                                    firstAttachment,
  18131     uint32_t                                    attachmentCount,
  18132     const VkColorBlendAdvancedEXT*              pColorBlendAdvanced);
  18133 
  18134 VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
  18135     VkCommandBuffer                             commandBuffer,
  18136     VkProvokingVertexModeEXT                    provokingVertexMode);
  18137 
  18138 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
  18139     VkCommandBuffer                             commandBuffer,
  18140     VkLineRasterizationModeEXT                  lineRasterizationMode);
  18141 
  18142 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
  18143     VkCommandBuffer                             commandBuffer,
  18144     VkBool32                                    stippledLineEnable);
  18145 
  18146 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
  18147     VkCommandBuffer                             commandBuffer,
  18148     VkBool32                                    negativeOneToOne);
  18149 
  18150 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
  18151     VkCommandBuffer                             commandBuffer,
  18152     VkBool32                                    viewportWScalingEnable);
  18153 
  18154 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
  18155     VkCommandBuffer                             commandBuffer,
  18156     uint32_t                                    firstViewport,
  18157     uint32_t                                    viewportCount,
  18158     const VkViewportSwizzleNV*                  pViewportSwizzles);
  18159 
  18160 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
  18161     VkCommandBuffer                             commandBuffer,
  18162     VkBool32                                    coverageToColorEnable);
  18163 
  18164 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
  18165     VkCommandBuffer                             commandBuffer,
  18166     uint32_t                                    coverageToColorLocation);
  18167 
  18168 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
  18169     VkCommandBuffer                             commandBuffer,
  18170     VkCoverageModulationModeNV                  coverageModulationMode);
  18171 
  18172 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
  18173     VkCommandBuffer                             commandBuffer,
  18174     VkBool32                                    coverageModulationTableEnable);
  18175 
  18176 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
  18177     VkCommandBuffer                             commandBuffer,
  18178     uint32_t                                    coverageModulationTableCount,
  18179     const float*                                pCoverageModulationTable);
  18180 
  18181 VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
  18182     VkCommandBuffer                             commandBuffer,
  18183     VkBool32                                    shadingRateImageEnable);
  18184 
  18185 VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
  18186     VkCommandBuffer                             commandBuffer,
  18187     VkBool32                                    representativeFragmentTestEnable);
  18188 
  18189 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
  18190     VkCommandBuffer                             commandBuffer,
  18191     VkCoverageReductionModeNV                   coverageReductionMode);
  18192 #endif
  18193 
  18194 
  18195 // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
  18196 #define VK_EXT_subpass_merge_feedback 1
  18197 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
  18198 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
  18199 
  18200 typedef enum VkSubpassMergeStatusEXT {
  18201     VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
  18202     VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
  18203     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
  18204     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
  18205     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
  18206     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
  18207     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
  18208     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
  18209     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
  18210     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
  18211     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
  18212     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
  18213     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
  18214     VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
  18215     VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
  18216 } VkSubpassMergeStatusEXT;
  18217 typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
  18218     VkStructureType    sType;
  18219     void*              pNext;
  18220     VkBool32           subpassMergeFeedback;
  18221 } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  18222 
  18223 typedef struct VkRenderPassCreationControlEXT {
  18224     VkStructureType    sType;
  18225     const void*        pNext;
  18226     VkBool32           disallowMerging;
  18227 } VkRenderPassCreationControlEXT;
  18228 
  18229 typedef struct VkRenderPassCreationFeedbackInfoEXT {
  18230     uint32_t    postMergeSubpassCount;
  18231 } VkRenderPassCreationFeedbackInfoEXT;
  18232 
  18233 typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
  18234     VkStructureType                         sType;
  18235     const void*                             pNext;
  18236     VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
  18237 } VkRenderPassCreationFeedbackCreateInfoEXT;
  18238 
  18239 typedef struct VkRenderPassSubpassFeedbackInfoEXT {
  18240     VkSubpassMergeStatusEXT    subpassMergeStatus;
  18241     char                       description[VK_MAX_DESCRIPTION_SIZE];
  18242     uint32_t                   postMergeIndex;
  18243 } VkRenderPassSubpassFeedbackInfoEXT;
  18244 
  18245 typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
  18246     VkStructureType                        sType;
  18247     const void*                            pNext;
  18248     VkRenderPassSubpassFeedbackInfoEXT*    pSubpassFeedback;
  18249 } VkRenderPassSubpassFeedbackCreateInfoEXT;
  18250 
  18251 
  18252 
  18253 // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
  18254 #define VK_LUNARG_direct_driver_loading 1
  18255 #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
  18256 #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
  18257 
  18258 typedef enum VkDirectDriverLoadingModeLUNARG {
  18259     VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
  18260     VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
  18261     VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
  18262 } VkDirectDriverLoadingModeLUNARG;
  18263 typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
  18264 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
  18265     VkInstance instance, const char* pName);
  18266 
  18267 typedef struct VkDirectDriverLoadingInfoLUNARG {
  18268     VkStructureType                     sType;
  18269     void*                               pNext;
  18270     VkDirectDriverLoadingFlagsLUNARG    flags;
  18271     PFN_vkGetInstanceProcAddrLUNARG     pfnGetInstanceProcAddr;
  18272 } VkDirectDriverLoadingInfoLUNARG;
  18273 
  18274 typedef struct VkDirectDriverLoadingListLUNARG {
  18275     VkStructureType                           sType;
  18276     const void*                               pNext;
  18277     VkDirectDriverLoadingModeLUNARG           mode;
  18278     uint32_t                                  driverCount;
  18279     const VkDirectDriverLoadingInfoLUNARG*    pDrivers;
  18280 } VkDirectDriverLoadingListLUNARG;
  18281 
  18282 
  18283 
  18284 // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
  18285 #define VK_EXT_shader_module_identifier 1
  18286 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
  18287 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
  18288 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
  18289 typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
  18290     VkStructureType    sType;
  18291     void*              pNext;
  18292     VkBool32           shaderModuleIdentifier;
  18293 } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  18294 
  18295 typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
  18296     VkStructureType    sType;
  18297     void*              pNext;
  18298     uint8_t            shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
  18299 } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  18300 
  18301 typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
  18302     VkStructureType    sType;
  18303     const void*        pNext;
  18304     uint32_t           identifierSize;
  18305     const uint8_t*     pIdentifier;
  18306 } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
  18307 
  18308 typedef struct VkShaderModuleIdentifierEXT {
  18309     VkStructureType    sType;
  18310     void*              pNext;
  18311     uint32_t           identifierSize;
  18312     uint8_t            identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
  18313 } VkShaderModuleIdentifierEXT;
  18314 
  18315 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
  18316 typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
  18317 
  18318 #ifndef VK_NO_PROTOTYPES
  18319 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
  18320     VkDevice                                    device,
  18321     VkShaderModule                              shaderModule,
  18322     VkShaderModuleIdentifierEXT*                pIdentifier);
  18323 
  18324 VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
  18325     VkDevice                                    device,
  18326     const VkShaderModuleCreateInfo*             pCreateInfo,
  18327     VkShaderModuleIdentifierEXT*                pIdentifier);
  18328 #endif
  18329 
  18330 
  18331 // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
  18332 #define VK_EXT_rasterization_order_attachment_access 1
  18333 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
  18334 #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
  18335 
  18336 
  18337 // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
  18338 #define VK_NV_optical_flow 1
  18339 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
  18340 #define VK_NV_OPTICAL_FLOW_SPEC_VERSION   1
  18341 #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
  18342 
  18343 typedef enum VkOpticalFlowPerformanceLevelNV {
  18344     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
  18345     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
  18346     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
  18347     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
  18348     VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
  18349 } VkOpticalFlowPerformanceLevelNV;
  18350 
  18351 typedef enum VkOpticalFlowSessionBindingPointNV {
  18352     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
  18353     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
  18354     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
  18355     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
  18356     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
  18357     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
  18358     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
  18359     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
  18360     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
  18361     VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
  18362 } VkOpticalFlowSessionBindingPointNV;
  18363 
  18364 typedef enum VkOpticalFlowGridSizeFlagBitsNV {
  18365     VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
  18366     VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
  18367     VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
  18368     VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
  18369     VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
  18370     VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18371 } VkOpticalFlowGridSizeFlagBitsNV;
  18372 typedef VkFlags   VkOpticalFlowGridSizeFlagsNV;
  18373 
  18374 typedef enum VkOpticalFlowUsageFlagBitsNV {
  18375     VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
  18376     VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
  18377     VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
  18378     VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
  18379     VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
  18380     VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
  18381     VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18382 } VkOpticalFlowUsageFlagBitsNV;
  18383 typedef VkFlags   VkOpticalFlowUsageFlagsNV;
  18384 
  18385 typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
  18386     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
  18387     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
  18388     VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
  18389     VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
  18390     VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
  18391     VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18392 } VkOpticalFlowSessionCreateFlagBitsNV;
  18393 typedef VkFlags   VkOpticalFlowSessionCreateFlagsNV;
  18394 
  18395 typedef enum VkOpticalFlowExecuteFlagBitsNV {
  18396     VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
  18397     VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18398 } VkOpticalFlowExecuteFlagBitsNV;
  18399 typedef VkFlags   VkOpticalFlowExecuteFlagsNV;
  18400 typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
  18401     VkStructureType    sType;
  18402     void*              pNext;
  18403     VkBool32           opticalFlow;
  18404 } VkPhysicalDeviceOpticalFlowFeaturesNV;
  18405 
  18406 typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
  18407     VkStructureType                 sType;
  18408     void*                           pNext;
  18409     VkOpticalFlowGridSizeFlagsNV    supportedOutputGridSizes;
  18410     VkOpticalFlowGridSizeFlagsNV    supportedHintGridSizes;
  18411     VkBool32                        hintSupported;
  18412     VkBool32                        costSupported;
  18413     VkBool32                        bidirectionalFlowSupported;
  18414     VkBool32                        globalFlowSupported;
  18415     uint32_t                        minWidth;
  18416     uint32_t                        minHeight;
  18417     uint32_t                        maxWidth;
  18418     uint32_t                        maxHeight;
  18419     uint32_t                        maxNumRegionsOfInterest;
  18420 } VkPhysicalDeviceOpticalFlowPropertiesNV;
  18421 
  18422 typedef struct VkOpticalFlowImageFormatInfoNV {
  18423     VkStructureType              sType;
  18424     const void*                  pNext;
  18425     VkOpticalFlowUsageFlagsNV    usage;
  18426 } VkOpticalFlowImageFormatInfoNV;
  18427 
  18428 typedef struct VkOpticalFlowImageFormatPropertiesNV {
  18429     VkStructureType    sType;
  18430     const void*        pNext;
  18431     VkFormat           format;
  18432 } VkOpticalFlowImageFormatPropertiesNV;
  18433 
  18434 typedef struct VkOpticalFlowSessionCreateInfoNV {
  18435     VkStructureType                      sType;
  18436     void*                                pNext;
  18437     uint32_t                             width;
  18438     uint32_t                             height;
  18439     VkFormat                             imageFormat;
  18440     VkFormat                             flowVectorFormat;
  18441     VkFormat                             costFormat;
  18442     VkOpticalFlowGridSizeFlagsNV         outputGridSize;
  18443     VkOpticalFlowGridSizeFlagsNV         hintGridSize;
  18444     VkOpticalFlowPerformanceLevelNV      performanceLevel;
  18445     VkOpticalFlowSessionCreateFlagsNV    flags;
  18446 } VkOpticalFlowSessionCreateInfoNV;
  18447 
  18448 typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
  18449     VkStructureType    sType;
  18450     void*              pNext;
  18451     uint32_t           id;
  18452     uint32_t           size;
  18453     const void*        pPrivateData;
  18454 } VkOpticalFlowSessionCreatePrivateDataInfoNV;
  18455 
  18456 typedef struct VkOpticalFlowExecuteInfoNV {
  18457     VkStructureType                sType;
  18458     void*                          pNext;
  18459     VkOpticalFlowExecuteFlagsNV    flags;
  18460     uint32_t                       regionCount;
  18461     const VkRect2D*                pRegions;
  18462 } VkOpticalFlowExecuteInfoNV;
  18463 
  18464 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
  18465 typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
  18466 typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
  18467 typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
  18468 typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
  18469 
  18470 #ifndef VK_NO_PROTOTYPES
  18471 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
  18472     VkPhysicalDevice                            physicalDevice,
  18473     const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
  18474     uint32_t*                                   pFormatCount,
  18475     VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties);
  18476 
  18477 VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
  18478     VkDevice                                    device,
  18479     const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
  18480     const VkAllocationCallbacks*                pAllocator,
  18481     VkOpticalFlowSessionNV*                     pSession);
  18482 
  18483 VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
  18484     VkDevice                                    device,
  18485     VkOpticalFlowSessionNV                      session,
  18486     const VkAllocationCallbacks*                pAllocator);
  18487 
  18488 VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
  18489     VkDevice                                    device,
  18490     VkOpticalFlowSessionNV                      session,
  18491     VkOpticalFlowSessionBindingPointNV          bindingPoint,
  18492     VkImageView                                 view,
  18493     VkImageLayout                               layout);
  18494 
  18495 VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
  18496     VkCommandBuffer                             commandBuffer,
  18497     VkOpticalFlowSessionNV                      session,
  18498     const VkOpticalFlowExecuteInfoNV*           pExecuteInfo);
  18499 #endif
  18500 
  18501 
  18502 // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
  18503 #define VK_EXT_legacy_dithering 1
  18504 #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1
  18505 #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
  18506 typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
  18507     VkStructureType    sType;
  18508     void*              pNext;
  18509     VkBool32           legacyDithering;
  18510 } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
  18511 
  18512 
  18513 
  18514 // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
  18515 #define VK_EXT_pipeline_protected_access 1
  18516 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
  18517 #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
  18518 typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT {
  18519     VkStructureType    sType;
  18520     void*              pNext;
  18521     VkBool32           pipelineProtectedAccess;
  18522 } VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
  18523 
  18524 
  18525 
  18526 // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
  18527 #define VK_EXT_shader_object 1
  18528 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
  18529 #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
  18530 #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
  18531 
  18532 typedef enum VkShaderCodeTypeEXT {
  18533     VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
  18534     VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
  18535     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  18536 } VkShaderCodeTypeEXT;
  18537 
  18538 typedef enum VkShaderCreateFlagBitsEXT {
  18539     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
  18540     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
  18541     VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
  18542     VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
  18543     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
  18544     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
  18545     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
  18546     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  18547 } VkShaderCreateFlagBitsEXT;
  18548 typedef VkFlags VkShaderCreateFlagsEXT;
  18549 typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
  18550     VkStructureType    sType;
  18551     void*              pNext;
  18552     VkBool32           shaderObject;
  18553 } VkPhysicalDeviceShaderObjectFeaturesEXT;
  18554 
  18555 typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
  18556     VkStructureType    sType;
  18557     void*              pNext;
  18558     uint8_t            shaderBinaryUUID[VK_UUID_SIZE];
  18559     uint32_t           shaderBinaryVersion;
  18560 } VkPhysicalDeviceShaderObjectPropertiesEXT;
  18561 
  18562 typedef struct VkShaderCreateInfoEXT {
  18563     VkStructureType                 sType;
  18564     const void*                     pNext;
  18565     VkShaderCreateFlagsEXT          flags;
  18566     VkShaderStageFlagBits           stage;
  18567     VkShaderStageFlags              nextStage;
  18568     VkShaderCodeTypeEXT             codeType;
  18569     size_t                          codeSize;
  18570     const void*                     pCode;
  18571     const char*                     pName;
  18572     uint32_t                        setLayoutCount;
  18573     const VkDescriptorSetLayout*    pSetLayouts;
  18574     uint32_t                        pushConstantRangeCount;
  18575     const VkPushConstantRange*      pPushConstantRanges;
  18576     const VkSpecializationInfo*     pSpecializationInfo;
  18577 } VkShaderCreateInfoEXT;
  18578 
  18579 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
  18580 
  18581 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
  18582 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
  18583 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
  18584 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
  18585 
  18586 #ifndef VK_NO_PROTOTYPES
  18587 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
  18588     VkDevice                                    device,
  18589     uint32_t                                    createInfoCount,
  18590     const VkShaderCreateInfoEXT*                pCreateInfos,
  18591     const VkAllocationCallbacks*                pAllocator,
  18592     VkShaderEXT*                                pShaders);
  18593 
  18594 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
  18595     VkDevice                                    device,
  18596     VkShaderEXT                                 shader,
  18597     const VkAllocationCallbacks*                pAllocator);
  18598 
  18599 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
  18600     VkDevice                                    device,
  18601     VkShaderEXT                                 shader,
  18602     size_t*                                     pDataSize,
  18603     void*                                       pData);
  18604 
  18605 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
  18606     VkCommandBuffer                             commandBuffer,
  18607     uint32_t                                    stageCount,
  18608     const VkShaderStageFlagBits*                pStages,
  18609     const VkShaderEXT*                          pShaders);
  18610 #endif
  18611 
  18612 
  18613 // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
  18614 #define VK_QCOM_tile_properties 1
  18615 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
  18616 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
  18617 typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
  18618     VkStructureType    sType;
  18619     void*              pNext;
  18620     VkBool32           tileProperties;
  18621 } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
  18622 
  18623 typedef struct VkTilePropertiesQCOM {
  18624     VkStructureType    sType;
  18625     void*              pNext;
  18626     VkExtent3D         tileSize;
  18627     VkExtent2D         apronSize;
  18628     VkOffset2D         origin;
  18629 } VkTilePropertiesQCOM;
  18630 
  18631 typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
  18632 typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
  18633 
  18634 #ifndef VK_NO_PROTOTYPES
  18635 VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
  18636     VkDevice                                    device,
  18637     VkFramebuffer                               framebuffer,
  18638     uint32_t*                                   pPropertiesCount,
  18639     VkTilePropertiesQCOM*                       pProperties);
  18640 
  18641 VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
  18642     VkDevice                                    device,
  18643     const VkRenderingInfo*                      pRenderingInfo,
  18644     VkTilePropertiesQCOM*                       pProperties);
  18645 #endif
  18646 
  18647 
  18648 // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
  18649 #define VK_SEC_amigo_profiling 1
  18650 #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
  18651 #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
  18652 typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
  18653     VkStructureType    sType;
  18654     void*              pNext;
  18655     VkBool32           amigoProfiling;
  18656 } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
  18657 
  18658 typedef struct VkAmigoProfilingSubmitInfoSEC {
  18659     VkStructureType    sType;
  18660     const void*        pNext;
  18661     uint64_t           firstDrawTimestamp;
  18662     uint64_t           swapBufferTimestamp;
  18663 } VkAmigoProfilingSubmitInfoSEC;
  18664 
  18665 
  18666 
  18667 // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
  18668 #define VK_QCOM_multiview_per_view_viewports 1
  18669 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
  18670 #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
  18671 typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
  18672     VkStructureType    sType;
  18673     void*              pNext;
  18674     VkBool32           multiviewPerViewViewports;
  18675 } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  18676 
  18677 
  18678 
  18679 // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
  18680 #define VK_NV_ray_tracing_invocation_reorder 1
  18681 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
  18682 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
  18683 
  18684 typedef enum VkRayTracingInvocationReorderModeNV {
  18685     VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
  18686     VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
  18687     VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  18688 } VkRayTracingInvocationReorderModeNV;
  18689 typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
  18690     VkStructureType                        sType;
  18691     void*                                  pNext;
  18692     VkRayTracingInvocationReorderModeNV    rayTracingInvocationReorderReorderingHint;
  18693 } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  18694 
  18695 typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
  18696     VkStructureType    sType;
  18697     void*              pNext;
  18698     VkBool32           rayTracingInvocationReorder;
  18699 } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  18700 
  18701 
  18702 
  18703 // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
  18704 #define VK_NV_extended_sparse_address_space 1
  18705 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
  18706 #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
  18707 typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
  18708     VkStructureType    sType;
  18709     void*              pNext;
  18710     VkBool32           extendedSparseAddressSpace;
  18711 } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  18712 
  18713 typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
  18714     VkStructureType       sType;
  18715     void*                 pNext;
  18716     VkDeviceSize          extendedSparseAddressSpaceSize;
  18717     VkImageUsageFlags     extendedSparseImageUsageFlags;
  18718     VkBufferUsageFlags    extendedSparseBufferUsageFlags;
  18719 } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  18720 
  18721 
  18722 
  18723 // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
  18724 #define VK_EXT_mutable_descriptor_type 1
  18725 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
  18726 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
  18727 
  18728 
  18729 // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
  18730 #define VK_EXT_layer_settings 1
  18731 #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
  18732 #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
  18733 
  18734 typedef enum VkLayerSettingTypeEXT {
  18735     VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
  18736     VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
  18737     VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
  18738     VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
  18739     VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
  18740     VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
  18741     VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
  18742     VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
  18743     VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  18744 } VkLayerSettingTypeEXT;
  18745 typedef struct VkLayerSettingEXT {
  18746     const char*              pLayerName;
  18747     const char*              pSettingName;
  18748     VkLayerSettingTypeEXT    type;
  18749     uint32_t                 valueCount;
  18750     const void*              pValues;
  18751 } VkLayerSettingEXT;
  18752 
  18753 typedef struct VkLayerSettingsCreateInfoEXT {
  18754     VkStructureType             sType;
  18755     const void*                 pNext;
  18756     uint32_t                    settingCount;
  18757     const VkLayerSettingEXT*    pSettings;
  18758 } VkLayerSettingsCreateInfoEXT;
  18759 
  18760 
  18761 
  18762 // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
  18763 #define VK_ARM_shader_core_builtins 1
  18764 #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
  18765 #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
  18766 typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
  18767     VkStructureType    sType;
  18768     void*              pNext;
  18769     VkBool32           shaderCoreBuiltins;
  18770 } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  18771 
  18772 typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
  18773     VkStructureType    sType;
  18774     void*              pNext;
  18775     uint64_t           shaderCoreMask;
  18776     uint32_t           shaderCoreCount;
  18777     uint32_t           shaderWarpsPerCore;
  18778 } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  18779 
  18780 
  18781 
  18782 // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
  18783 #define VK_EXT_pipeline_library_group_handles 1
  18784 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
  18785 #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
  18786 typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
  18787     VkStructureType    sType;
  18788     void*              pNext;
  18789     VkBool32           pipelineLibraryGroupHandles;
  18790 } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  18791 
  18792 
  18793 
  18794 // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
  18795 #define VK_EXT_dynamic_rendering_unused_attachments 1
  18796 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
  18797 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
  18798 typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
  18799     VkStructureType    sType;
  18800     void*              pNext;
  18801     VkBool32           dynamicRenderingUnusedAttachments;
  18802 } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  18803 
  18804 
  18805 
  18806 // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
  18807 #define VK_NV_low_latency2 1
  18808 #define VK_NV_LOW_LATENCY_2_SPEC_VERSION  2
  18809 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
  18810 
  18811 typedef enum VkLatencyMarkerNV {
  18812     VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
  18813     VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
  18814     VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
  18815     VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
  18816     VK_LATENCY_MARKER_PRESENT_START_NV = 4,
  18817     VK_LATENCY_MARKER_PRESENT_END_NV = 5,
  18818     VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
  18819     VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
  18820     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
  18821     VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
  18822     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
  18823     VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
  18824     VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
  18825 } VkLatencyMarkerNV;
  18826 
  18827 typedef enum VkOutOfBandQueueTypeNV {
  18828     VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
  18829     VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
  18830     VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  18831 } VkOutOfBandQueueTypeNV;
  18832 typedef struct VkLatencySleepModeInfoNV {
  18833     VkStructureType    sType;
  18834     const void*        pNext;
  18835     VkBool32           lowLatencyMode;
  18836     VkBool32           lowLatencyBoost;
  18837     uint32_t           minimumIntervalUs;
  18838 } VkLatencySleepModeInfoNV;
  18839 
  18840 typedef struct VkLatencySleepInfoNV {
  18841     VkStructureType    sType;
  18842     const void*        pNext;
  18843     VkSemaphore        signalSemaphore;
  18844     uint64_t           value;
  18845 } VkLatencySleepInfoNV;
  18846 
  18847 typedef struct VkSetLatencyMarkerInfoNV {
  18848     VkStructureType      sType;
  18849     const void*          pNext;
  18850     uint64_t             presentID;
  18851     VkLatencyMarkerNV    marker;
  18852 } VkSetLatencyMarkerInfoNV;
  18853 
  18854 typedef struct VkLatencyTimingsFrameReportNV {
  18855     VkStructureType    sType;
  18856     const void*        pNext;
  18857     uint64_t           presentID;
  18858     uint64_t           inputSampleTimeUs;
  18859     uint64_t           simStartTimeUs;
  18860     uint64_t           simEndTimeUs;
  18861     uint64_t           renderSubmitStartTimeUs;
  18862     uint64_t           renderSubmitEndTimeUs;
  18863     uint64_t           presentStartTimeUs;
  18864     uint64_t           presentEndTimeUs;
  18865     uint64_t           driverStartTimeUs;
  18866     uint64_t           driverEndTimeUs;
  18867     uint64_t           osRenderQueueStartTimeUs;
  18868     uint64_t           osRenderQueueEndTimeUs;
  18869     uint64_t           gpuRenderStartTimeUs;
  18870     uint64_t           gpuRenderEndTimeUs;
  18871 } VkLatencyTimingsFrameReportNV;
  18872 
  18873 typedef struct VkGetLatencyMarkerInfoNV {
  18874     VkStructureType                   sType;
  18875     const void*                       pNext;
  18876     uint32_t                          timingCount;
  18877     VkLatencyTimingsFrameReportNV*    pTimings;
  18878 } VkGetLatencyMarkerInfoNV;
  18879 
  18880 typedef struct VkLatencySubmissionPresentIdNV {
  18881     VkStructureType    sType;
  18882     const void*        pNext;
  18883     uint64_t           presentID;
  18884 } VkLatencySubmissionPresentIdNV;
  18885 
  18886 typedef struct VkSwapchainLatencyCreateInfoNV {
  18887     VkStructureType    sType;
  18888     const void*        pNext;
  18889     VkBool32           latencyModeEnable;
  18890 } VkSwapchainLatencyCreateInfoNV;
  18891 
  18892 typedef struct VkOutOfBandQueueTypeInfoNV {
  18893     VkStructureType           sType;
  18894     const void*               pNext;
  18895     VkOutOfBandQueueTypeNV    queueType;
  18896 } VkOutOfBandQueueTypeInfoNV;
  18897 
  18898 typedef struct VkLatencySurfaceCapabilitiesNV {
  18899     VkStructureType      sType;
  18900     const void*          pNext;
  18901     uint32_t             presentModeCount;
  18902     VkPresentModeKHR*    pPresentModes;
  18903 } VkLatencySurfaceCapabilitiesNV;
  18904 
  18905 typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
  18906 typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
  18907 typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  18908 typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  18909 typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
  18910 
  18911 #ifndef VK_NO_PROTOTYPES
  18912 VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
  18913     VkDevice                                    device,
  18914     VkSwapchainKHR                              swapchain,
  18915     const VkLatencySleepModeInfoNV*             pSleepModeInfo);
  18916 
  18917 VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
  18918     VkDevice                                    device,
  18919     VkSwapchainKHR                              swapchain,
  18920     const VkLatencySleepInfoNV*                 pSleepInfo);
  18921 
  18922 VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
  18923     VkDevice                                    device,
  18924     VkSwapchainKHR                              swapchain,
  18925     const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo);
  18926 
  18927 VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
  18928     VkDevice                                    device,
  18929     VkSwapchainKHR                              swapchain,
  18930     VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo);
  18931 
  18932 VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
  18933     VkQueue                                     queue,
  18934     const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo);
  18935 #endif
  18936 
  18937 
  18938 // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
  18939 #define VK_QCOM_multiview_per_view_render_areas 1
  18940 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
  18941 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
  18942 typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
  18943     VkStructureType    sType;
  18944     void*              pNext;
  18945     VkBool32           multiviewPerViewRenderAreas;
  18946 } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  18947 
  18948 typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
  18949     VkStructureType    sType;
  18950     const void*        pNext;
  18951     uint32_t           perViewRenderAreaCount;
  18952     const VkRect2D*    pPerViewRenderAreas;
  18953 } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  18954 
  18955 
  18956 
  18957 // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
  18958 #define VK_NV_per_stage_descriptor_set 1
  18959 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
  18960 #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
  18961 typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
  18962     VkStructureType    sType;
  18963     void*              pNext;
  18964     VkBool32           perStageDescriptorSet;
  18965     VkBool32           dynamicPipelineLayout;
  18966 } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
  18967 
  18968 
  18969 
  18970 // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
  18971 #define VK_QCOM_image_processing2 1
  18972 #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
  18973 #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
  18974 
  18975 typedef enum VkBlockMatchWindowCompareModeQCOM {
  18976     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
  18977     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
  18978     VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
  18979 } VkBlockMatchWindowCompareModeQCOM;
  18980 typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
  18981     VkStructureType    sType;
  18982     void*              pNext;
  18983     VkBool32           textureBlockMatch2;
  18984 } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
  18985 
  18986 typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
  18987     VkStructureType    sType;
  18988     void*              pNext;
  18989     VkExtent2D         maxBlockMatchWindow;
  18990 } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
  18991 
  18992 typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
  18993     VkStructureType                      sType;
  18994     const void*                          pNext;
  18995     VkExtent2D                           windowExtent;
  18996     VkBlockMatchWindowCompareModeQCOM    windowCompareMode;
  18997 } VkSamplerBlockMatchWindowCreateInfoQCOM;
  18998 
  18999 
  19000 
  19001 // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
  19002 #define VK_QCOM_filter_cubic_weights 1
  19003 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
  19004 #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
  19005 
  19006 typedef enum VkCubicFilterWeightsQCOM {
  19007     VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
  19008     VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
  19009     VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
  19010     VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
  19011     VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
  19012 } VkCubicFilterWeightsQCOM;
  19013 typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
  19014     VkStructureType    sType;
  19015     void*              pNext;
  19016     VkBool32           selectableCubicWeights;
  19017 } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
  19018 
  19019 typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
  19020     VkStructureType             sType;
  19021     const void*                 pNext;
  19022     VkCubicFilterWeightsQCOM    cubicWeights;
  19023 } VkSamplerCubicWeightsCreateInfoQCOM;
  19024 
  19025 typedef struct VkBlitImageCubicWeightsInfoQCOM {
  19026     VkStructureType             sType;
  19027     const void*                 pNext;
  19028     VkCubicFilterWeightsQCOM    cubicWeights;
  19029 } VkBlitImageCubicWeightsInfoQCOM;
  19030 
  19031 
  19032 
  19033 // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
  19034 #define VK_QCOM_ycbcr_degamma 1
  19035 #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
  19036 #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
  19037 typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
  19038     VkStructureType    sType;
  19039     void*              pNext;
  19040     VkBool32           ycbcrDegamma;
  19041 } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
  19042 
  19043 typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
  19044     VkStructureType    sType;
  19045     void*              pNext;
  19046     VkBool32           enableYDegamma;
  19047     VkBool32           enableCbCrDegamma;
  19048 } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  19049 
  19050 
  19051 
  19052 // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
  19053 #define VK_QCOM_filter_cubic_clamp 1
  19054 #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
  19055 #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
  19056 typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
  19057     VkStructureType    sType;
  19058     void*              pNext;
  19059     VkBool32           cubicRangeClamp;
  19060 } VkPhysicalDeviceCubicClampFeaturesQCOM;
  19061 
  19062 
  19063 
  19064 // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  19065 #define VK_EXT_attachment_feedback_loop_dynamic_state 1
  19066 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
  19067 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
  19068 typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
  19069     VkStructureType    sType;
  19070     void*              pNext;
  19071     VkBool32           attachmentFeedbackLoopDynamicState;
  19072 } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  19073 
  19074 typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
  19075 
  19076 #ifndef VK_NO_PROTOTYPES
  19077 VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
  19078     VkCommandBuffer                             commandBuffer,
  19079     VkImageAspectFlags                          aspectMask);
  19080 #endif
  19081 
  19082 
  19083 // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
  19084 #define VK_MSFT_layered_driver 1
  19085 #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
  19086 #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
  19087 
  19088 typedef enum VkLayeredDriverUnderlyingApiMSFT {
  19089     VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
  19090     VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
  19091     VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
  19092 } VkLayeredDriverUnderlyingApiMSFT;
  19093 typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
  19094     VkStructureType                     sType;
  19095     void*                               pNext;
  19096     VkLayeredDriverUnderlyingApiMSFT    underlyingAPI;
  19097 } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
  19098 
  19099 
  19100 
  19101 // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
  19102 #define VK_NV_descriptor_pool_overallocation 1
  19103 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
  19104 #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
  19105 typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
  19106     VkStructureType    sType;
  19107     void*              pNext;
  19108     VkBool32           descriptorPoolOverallocation;
  19109 } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  19110 
  19111 
  19112 
  19113 // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
  19114 #define VK_NV_raw_access_chains 1
  19115 #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
  19116 #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
  19117 typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
  19118     VkStructureType    sType;
  19119     void*              pNext;
  19120     VkBool32           shaderRawAccessChains;
  19121 } VkPhysicalDeviceRawAccessChainsFeaturesNV;
  19122 
  19123 
  19124 
  19125 // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
  19126 #define VK_NV_shader_atomic_float16_vector 1
  19127 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
  19128 #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
  19129 typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
  19130     VkStructureType    sType;
  19131     void*              pNext;
  19132     VkBool32           shaderFloat16VectorAtomics;
  19133 } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
  19134 
  19135 
  19136 
  19137 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
  19138 #define VK_KHR_acceleration_structure 1
  19139 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
  19140 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
  19141 
  19142 typedef enum VkBuildAccelerationStructureModeKHR {
  19143     VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
  19144     VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
  19145     VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  19146 } VkBuildAccelerationStructureModeKHR;
  19147 
  19148 typedef enum VkAccelerationStructureCreateFlagBitsKHR {
  19149     VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
  19150     VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
  19151     VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
  19152     VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  19153 } VkAccelerationStructureCreateFlagBitsKHR;
  19154 typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
  19155 typedef struct VkAccelerationStructureBuildRangeInfoKHR {
  19156     uint32_t    primitiveCount;
  19157     uint32_t    primitiveOffset;
  19158     uint32_t    firstVertex;
  19159     uint32_t    transformOffset;
  19160 } VkAccelerationStructureBuildRangeInfoKHR;
  19161 
  19162 typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
  19163     VkStructureType                  sType;
  19164     const void*                      pNext;
  19165     VkFormat                         vertexFormat;
  19166     VkDeviceOrHostAddressConstKHR    vertexData;
  19167     VkDeviceSize                     vertexStride;
  19168     uint32_t                         maxVertex;
  19169     VkIndexType                      indexType;
  19170     VkDeviceOrHostAddressConstKHR    indexData;
  19171     VkDeviceOrHostAddressConstKHR    transformData;
  19172 } VkAccelerationStructureGeometryTrianglesDataKHR;
  19173 
  19174 typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
  19175     VkStructureType                  sType;
  19176     const void*                      pNext;
  19177     VkDeviceOrHostAddressConstKHR    data;
  19178     VkDeviceSize                     stride;
  19179 } VkAccelerationStructureGeometryAabbsDataKHR;
  19180 
  19181 typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
  19182     VkStructureType                  sType;
  19183     const void*                      pNext;
  19184     VkBool32                         arrayOfPointers;
  19185     VkDeviceOrHostAddressConstKHR    data;
  19186 } VkAccelerationStructureGeometryInstancesDataKHR;
  19187 
  19188 typedef union VkAccelerationStructureGeometryDataKHR {
  19189     VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
  19190     VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
  19191     VkAccelerationStructureGeometryInstancesDataKHR    instances;
  19192 } VkAccelerationStructureGeometryDataKHR;
  19193 
  19194 typedef struct VkAccelerationStructureGeometryKHR {
  19195     VkStructureType                           sType;
  19196     const void*                               pNext;
  19197     VkGeometryTypeKHR                         geometryType;
  19198     VkAccelerationStructureGeometryDataKHR    geometry;
  19199     VkGeometryFlagsKHR                        flags;
  19200 } VkAccelerationStructureGeometryKHR;
  19201 
  19202 typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
  19203     VkStructureType                                     sType;
  19204     const void*                                         pNext;
  19205     VkAccelerationStructureTypeKHR                      type;
  19206     VkBuildAccelerationStructureFlagsKHR                flags;
  19207     VkBuildAccelerationStructureModeKHR                 mode;
  19208     VkAccelerationStructureKHR                          srcAccelerationStructure;
  19209     VkAccelerationStructureKHR                          dstAccelerationStructure;
  19210     uint32_t                                            geometryCount;
  19211     const VkAccelerationStructureGeometryKHR*           pGeometries;
  19212     const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
  19213     VkDeviceOrHostAddressKHR                            scratchData;
  19214 } VkAccelerationStructureBuildGeometryInfoKHR;
  19215 
  19216 typedef struct VkAccelerationStructureCreateInfoKHR {
  19217     VkStructureType                          sType;
  19218     const void*                              pNext;
  19219     VkAccelerationStructureCreateFlagsKHR    createFlags;
  19220     VkBuffer                                 buffer;
  19221     VkDeviceSize                             offset;
  19222     VkDeviceSize                             size;
  19223     VkAccelerationStructureTypeKHR           type;
  19224     VkDeviceAddress                          deviceAddress;
  19225 } VkAccelerationStructureCreateInfoKHR;
  19226 
  19227 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
  19228     VkStructureType                      sType;
  19229     const void*                          pNext;
  19230     uint32_t                             accelerationStructureCount;
  19231     const VkAccelerationStructureKHR*    pAccelerationStructures;
  19232 } VkWriteDescriptorSetAccelerationStructureKHR;
  19233 
  19234 typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
  19235     VkStructureType    sType;
  19236     void*              pNext;
  19237     VkBool32           accelerationStructure;
  19238     VkBool32           accelerationStructureCaptureReplay;
  19239     VkBool32           accelerationStructureIndirectBuild;
  19240     VkBool32           accelerationStructureHostCommands;
  19241     VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
  19242 } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
  19243 
  19244 typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
  19245     VkStructureType    sType;
  19246     void*              pNext;
  19247     uint64_t           maxGeometryCount;
  19248     uint64_t           maxInstanceCount;
  19249     uint64_t           maxPrimitiveCount;
  19250     uint32_t           maxPerStageDescriptorAccelerationStructures;
  19251     uint32_t           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
  19252     uint32_t           maxDescriptorSetAccelerationStructures;
  19253     uint32_t           maxDescriptorSetUpdateAfterBindAccelerationStructures;
  19254     uint32_t           minAccelerationStructureScratchOffsetAlignment;
  19255 } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
  19256 
  19257 typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
  19258     VkStructureType               sType;
  19259     const void*                   pNext;
  19260     VkAccelerationStructureKHR    accelerationStructure;
  19261 } VkAccelerationStructureDeviceAddressInfoKHR;
  19262 
  19263 typedef struct VkAccelerationStructureVersionInfoKHR {
  19264     VkStructureType    sType;
  19265     const void*        pNext;
  19266     const uint8_t*     pVersionData;
  19267 } VkAccelerationStructureVersionInfoKHR;
  19268 
  19269 typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
  19270     VkStructureType                       sType;
  19271     const void*                           pNext;
  19272     VkAccelerationStructureKHR            src;
  19273     VkDeviceOrHostAddressKHR              dst;
  19274     VkCopyAccelerationStructureModeKHR    mode;
  19275 } VkCopyAccelerationStructureToMemoryInfoKHR;
  19276 
  19277 typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
  19278     VkStructureType                       sType;
  19279     const void*                           pNext;
  19280     VkDeviceOrHostAddressConstKHR         src;
  19281     VkAccelerationStructureKHR            dst;
  19282     VkCopyAccelerationStructureModeKHR    mode;
  19283 } VkCopyMemoryToAccelerationStructureInfoKHR;
  19284 
  19285 typedef struct VkCopyAccelerationStructureInfoKHR {
  19286     VkStructureType                       sType;
  19287     const void*                           pNext;
  19288     VkAccelerationStructureKHR            src;
  19289     VkAccelerationStructureKHR            dst;
  19290     VkCopyAccelerationStructureModeKHR    mode;
  19291 } VkCopyAccelerationStructureInfoKHR;
  19292 
  19293 typedef struct VkAccelerationStructureBuildSizesInfoKHR {
  19294     VkStructureType    sType;
  19295     const void*        pNext;
  19296     VkDeviceSize       accelerationStructureSize;
  19297     VkDeviceSize       updateScratchSize;
  19298     VkDeviceSize       buildScratchSize;
  19299 } VkAccelerationStructureBuildSizesInfoKHR;
  19300 
  19301 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
  19302 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
  19303 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  19304 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer                  commandBuffer, uint32_t                                           infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress*             pIndirectDeviceAddresses, const uint32_t*                    pIndirectStrides, const uint32_t* const*             ppMaxPrimitiveCounts);
  19305 typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  19306 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
  19307 typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  19308 typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  19309 typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
  19310 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
  19311 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  19312 typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  19313 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  19314 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  19315 typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
  19316 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t*  pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
  19317 
  19318 #ifndef VK_NO_PROTOTYPES
  19319 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
  19320     VkDevice                                    device,
  19321     const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
  19322     const VkAllocationCallbacks*                pAllocator,
  19323     VkAccelerationStructureKHR*                 pAccelerationStructure);
  19324 
  19325 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
  19326     VkDevice                                    device,
  19327     VkAccelerationStructureKHR                  accelerationStructure,
  19328     const VkAllocationCallbacks*                pAllocator);
  19329 
  19330 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
  19331     VkCommandBuffer                             commandBuffer,
  19332     uint32_t                                    infoCount,
  19333     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  19334     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  19335 
  19336 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
  19337     VkCommandBuffer                             commandBuffer,
  19338     uint32_t                                    infoCount,
  19339     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  19340     const VkDeviceAddress*                      pIndirectDeviceAddresses,
  19341     const uint32_t*                             pIndirectStrides,
  19342     const uint32_t* const*                      ppMaxPrimitiveCounts);
  19343 
  19344 VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
  19345     VkDevice                                    device,
  19346     VkDeferredOperationKHR                      deferredOperation,
  19347     uint32_t                                    infoCount,
  19348     const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  19349     const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  19350 
  19351 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
  19352     VkDevice                                    device,
  19353     VkDeferredOperationKHR                      deferredOperation,
  19354     const VkCopyAccelerationStructureInfoKHR*   pInfo);
  19355 
  19356 VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
  19357     VkDevice                                    device,
  19358     VkDeferredOperationKHR                      deferredOperation,
  19359     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  19360 
  19361 VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
  19362     VkDevice                                    device,
  19363     VkDeferredOperationKHR                      deferredOperation,
  19364     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  19365 
  19366 VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
  19367     VkDevice                                    device,
  19368     uint32_t                                    accelerationStructureCount,
  19369     const VkAccelerationStructureKHR*           pAccelerationStructures,
  19370     VkQueryType                                 queryType,
  19371     size_t                                      dataSize,
  19372     void*                                       pData,
  19373     size_t                                      stride);
  19374 
  19375 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
  19376     VkCommandBuffer                             commandBuffer,
  19377     const VkCopyAccelerationStructureInfoKHR*   pInfo);
  19378 
  19379 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
  19380     VkCommandBuffer                             commandBuffer,
  19381     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  19382 
  19383 VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
  19384     VkCommandBuffer                             commandBuffer,
  19385     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  19386 
  19387 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
  19388     VkDevice                                    device,
  19389     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  19390 
  19391 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
  19392     VkCommandBuffer                             commandBuffer,
  19393     uint32_t                                    accelerationStructureCount,
  19394     const VkAccelerationStructureKHR*           pAccelerationStructures,
  19395     VkQueryType                                 queryType,
  19396     VkQueryPool                                 queryPool,
  19397     uint32_t                                    firstQuery);
  19398 
  19399 VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
  19400     VkDevice                                    device,
  19401     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
  19402     VkAccelerationStructureCompatibilityKHR*    pCompatibility);
  19403 
  19404 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
  19405     VkDevice                                    device,
  19406     VkAccelerationStructureBuildTypeKHR         buildType,
  19407     const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
  19408     const uint32_t*                             pMaxPrimitiveCounts,
  19409     VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
  19410 #endif
  19411 
  19412 
  19413 // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
  19414 #define VK_KHR_ray_tracing_pipeline 1
  19415 #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
  19416 #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
  19417 
  19418 typedef enum VkShaderGroupShaderKHR {
  19419     VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
  19420     VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
  19421     VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
  19422     VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
  19423     VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
  19424 } VkShaderGroupShaderKHR;
  19425 typedef struct VkRayTracingShaderGroupCreateInfoKHR {
  19426     VkStructureType                   sType;
  19427     const void*                       pNext;
  19428     VkRayTracingShaderGroupTypeKHR    type;
  19429     uint32_t                          generalShader;
  19430     uint32_t                          closestHitShader;
  19431     uint32_t                          anyHitShader;
  19432     uint32_t                          intersectionShader;
  19433     const void*                       pShaderGroupCaptureReplayHandle;
  19434 } VkRayTracingShaderGroupCreateInfoKHR;
  19435 
  19436 typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
  19437     VkStructureType    sType;
  19438     const void*        pNext;
  19439     uint32_t           maxPipelineRayPayloadSize;
  19440     uint32_t           maxPipelineRayHitAttributeSize;
  19441 } VkRayTracingPipelineInterfaceCreateInfoKHR;
  19442 
  19443 typedef struct VkRayTracingPipelineCreateInfoKHR {
  19444     VkStructureType                                      sType;
  19445     const void*                                          pNext;
  19446     VkPipelineCreateFlags                                flags;
  19447     uint32_t                                             stageCount;
  19448     const VkPipelineShaderStageCreateInfo*               pStages;
  19449     uint32_t                                             groupCount;
  19450     const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
  19451     uint32_t                                             maxPipelineRayRecursionDepth;
  19452     const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
  19453     const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
  19454     const VkPipelineDynamicStateCreateInfo*              pDynamicState;
  19455     VkPipelineLayout                                     layout;
  19456     VkPipeline                                           basePipelineHandle;
  19457     int32_t                                              basePipelineIndex;
  19458 } VkRayTracingPipelineCreateInfoKHR;
  19459 
  19460 typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
  19461     VkStructureType    sType;
  19462     void*              pNext;
  19463     VkBool32           rayTracingPipeline;
  19464     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
  19465     VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
  19466     VkBool32           rayTracingPipelineTraceRaysIndirect;
  19467     VkBool32           rayTraversalPrimitiveCulling;
  19468 } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
  19469 
  19470 typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
  19471     VkStructureType    sType;
  19472     void*              pNext;
  19473     uint32_t           shaderGroupHandleSize;
  19474     uint32_t           maxRayRecursionDepth;
  19475     uint32_t           maxShaderGroupStride;
  19476     uint32_t           shaderGroupBaseAlignment;
  19477     uint32_t           shaderGroupHandleCaptureReplaySize;
  19478     uint32_t           maxRayDispatchInvocationCount;
  19479     uint32_t           shaderGroupHandleAlignment;
  19480     uint32_t           maxRayHitAttributeSize;
  19481 } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
  19482 
  19483 typedef struct VkStridedDeviceAddressRegionKHR {
  19484     VkDeviceAddress    deviceAddress;
  19485     VkDeviceSize       stride;
  19486     VkDeviceSize       size;
  19487 } VkStridedDeviceAddressRegionKHR;
  19488 
  19489 typedef struct VkTraceRaysIndirectCommandKHR {
  19490     uint32_t    width;
  19491     uint32_t    height;
  19492     uint32_t    depth;
  19493 } VkTraceRaysIndirectCommandKHR;
  19494 
  19495 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
  19496 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  19497 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  19498 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
  19499 typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
  19500 typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
  19501 
  19502 #ifndef VK_NO_PROTOTYPES
  19503 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
  19504     VkCommandBuffer                             commandBuffer,
  19505     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
  19506     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
  19507     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
  19508     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
  19509     uint32_t                                    width,
  19510     uint32_t                                    height,
  19511     uint32_t                                    depth);
  19512 
  19513 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
  19514     VkDevice                                    device,
  19515     VkDeferredOperationKHR                      deferredOperation,
  19516     VkPipelineCache                             pipelineCache,
  19517     uint32_t                                    createInfoCount,
  19518     const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
  19519     const VkAllocationCallbacks*                pAllocator,
  19520     VkPipeline*                                 pPipelines);
  19521 
  19522 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
  19523     VkDevice                                    device,
  19524     VkPipeline                                  pipeline,
  19525     uint32_t                                    firstGroup,
  19526     uint32_t                                    groupCount,
  19527     size_t                                      dataSize,
  19528     void*                                       pData);
  19529 
  19530 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
  19531     VkCommandBuffer                             commandBuffer,
  19532     const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
  19533     const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
  19534     const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
  19535     const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
  19536     VkDeviceAddress                             indirectDeviceAddress);
  19537 
  19538 VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
  19539     VkDevice                                    device,
  19540     VkPipeline                                  pipeline,
  19541     uint32_t                                    group,
  19542     VkShaderGroupShaderKHR                      groupShader);
  19543 
  19544 VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
  19545     VkCommandBuffer                             commandBuffer,
  19546     uint32_t                                    pipelineStackSize);
  19547 #endif
  19548 
  19549 
  19550 // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
  19551 #define VK_KHR_ray_query 1
  19552 #define VK_KHR_RAY_QUERY_SPEC_VERSION     1
  19553 #define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
  19554 typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
  19555     VkStructureType    sType;
  19556     void*              pNext;
  19557     VkBool32           rayQuery;
  19558 } VkPhysicalDeviceRayQueryFeaturesKHR;
  19559 
  19560 
  19561 
  19562 // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
  19563 #define VK_EXT_mesh_shader 1
  19564 #define VK_EXT_MESH_SHADER_SPEC_VERSION   1
  19565 #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
  19566 typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
  19567     VkStructureType    sType;
  19568     void*              pNext;
  19569     VkBool32           taskShader;
  19570     VkBool32           meshShader;
  19571     VkBool32           multiviewMeshShader;
  19572     VkBool32           primitiveFragmentShadingRateMeshShader;
  19573     VkBool32           meshShaderQueries;
  19574 } VkPhysicalDeviceMeshShaderFeaturesEXT;
  19575 
  19576 typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
  19577     VkStructureType    sType;
  19578     void*              pNext;
  19579     uint32_t           maxTaskWorkGroupTotalCount;
  19580     uint32_t           maxTaskWorkGroupCount[3];
  19581     uint32_t           maxTaskWorkGroupInvocations;
  19582     uint32_t           maxTaskWorkGroupSize[3];
  19583     uint32_t           maxTaskPayloadSize;
  19584     uint32_t           maxTaskSharedMemorySize;
  19585     uint32_t           maxTaskPayloadAndSharedMemorySize;
  19586     uint32_t           maxMeshWorkGroupTotalCount;
  19587     uint32_t           maxMeshWorkGroupCount[3];
  19588     uint32_t           maxMeshWorkGroupInvocations;
  19589     uint32_t           maxMeshWorkGroupSize[3];
  19590     uint32_t           maxMeshSharedMemorySize;
  19591     uint32_t           maxMeshPayloadAndSharedMemorySize;
  19592     uint32_t           maxMeshOutputMemorySize;
  19593     uint32_t           maxMeshPayloadAndOutputMemorySize;
  19594     uint32_t           maxMeshOutputComponents;
  19595     uint32_t           maxMeshOutputVertices;
  19596     uint32_t           maxMeshOutputPrimitives;
  19597     uint32_t           maxMeshOutputLayers;
  19598     uint32_t           maxMeshMultiviewViewCount;
  19599     uint32_t           meshOutputPerVertexGranularity;
  19600     uint32_t           meshOutputPerPrimitiveGranularity;
  19601     uint32_t           maxPreferredTaskWorkGroupInvocations;
  19602     uint32_t           maxPreferredMeshWorkGroupInvocations;
  19603     VkBool32           prefersLocalInvocationVertexOutput;
  19604     VkBool32           prefersLocalInvocationPrimitiveOutput;
  19605     VkBool32           prefersCompactVertexOutput;
  19606     VkBool32           prefersCompactPrimitiveOutput;
  19607 } VkPhysicalDeviceMeshShaderPropertiesEXT;
  19608 
  19609 typedef struct VkDrawMeshTasksIndirectCommandEXT {
  19610     uint32_t    groupCountX;
  19611     uint32_t    groupCountY;
  19612     uint32_t    groupCountZ;
  19613 } VkDrawMeshTasksIndirectCommandEXT;
  19614 
  19615 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  19616 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  19617 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  19618 
  19619 #ifndef VK_NO_PROTOTYPES
  19620 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
  19621     VkCommandBuffer                             commandBuffer,
  19622     uint32_t                                    groupCountX,
  19623     uint32_t                                    groupCountY,
  19624     uint32_t                                    groupCountZ);
  19625 
  19626 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
  19627     VkCommandBuffer                             commandBuffer,
  19628     VkBuffer                                    buffer,
  19629     VkDeviceSize                                offset,
  19630     uint32_t                                    drawCount,
  19631     uint32_t                                    stride);
  19632 
  19633 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
  19634     VkCommandBuffer                             commandBuffer,
  19635     VkBuffer                                    buffer,
  19636     VkDeviceSize                                offset,
  19637     VkBuffer                                    countBuffer,
  19638     VkDeviceSize                                countBufferOffset,
  19639     uint32_t                                    maxDrawCount,
  19640     uint32_t                                    stride);
  19641 #endif
  19642 
  19643 #ifdef __cplusplus
  19644 }
  19645 #endif
  19646 
  19647 #endif