sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

vulkan_core.h (556428B)


      1 #ifndef VULKAN_CORE_H_
      2 #define VULKAN_CORE_H_ 1
      3 
      4 /*
      5 ** Copyright (c) 2015-2020 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 #define VK_VERSION_1_0 1
     23 #include "vk_platform.h"
     24 
     25 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
     26 
     27 
     28 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
     29 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
     30         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
     31 #else
     32         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
     33 #endif
     34 #endif
     35 
     36 #define VK_MAKE_VERSION(major, minor, patch) \
     37     ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
     38 
     39 // 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.
     40 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
     41 
     42 // Vulkan 1.0 version number
     43 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
     44 
     45 // Version of this file
     46 #define VK_HEADER_VERSION 158
     47 
     48 // Complete version of this file
     49 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
     50 
     51 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
     52 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
     53 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
     54 
     55 #define VK_NULL_HANDLE 0
     56 
     57 typedef uint32_t VkBool32;
     58 typedef uint64_t VkDeviceAddress;
     59 typedef uint64_t VkDeviceSize;
     60 typedef uint32_t VkFlags;
     61 typedef uint32_t VkSampleMask;
     62 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
     63 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
     64 VK_DEFINE_HANDLE(VkInstance)
     65 VK_DEFINE_HANDLE(VkPhysicalDevice)
     66 VK_DEFINE_HANDLE(VkDevice)
     67 VK_DEFINE_HANDLE(VkQueue)
     68 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
     69 VK_DEFINE_HANDLE(VkCommandBuffer)
     70 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
     71 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
     72 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
     73 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
     74 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
     75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
     76 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
     77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
     78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
     79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
     80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
     81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
     82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
     83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
     84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
     85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
     86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
     87 #define VK_ATTACHMENT_UNUSED              (~0U)
     88 #define VK_FALSE                          0
     89 #define VK_LOD_CLAMP_NONE                 1000.0f
     90 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
     91 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
     92 #define VK_REMAINING_MIP_LEVELS           (~0U)
     93 #define VK_SUBPASS_EXTERNAL               (~0U)
     94 #define VK_TRUE                           1
     95 #define VK_WHOLE_SIZE                     (~0ULL)
     96 #define VK_MAX_MEMORY_TYPES               32
     97 #define VK_MAX_MEMORY_HEAPS               16
     98 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
     99 #define VK_UUID_SIZE                      16
    100 #define VK_MAX_EXTENSION_NAME_SIZE        256
    101 #define VK_MAX_DESCRIPTION_SIZE           256
    102 
    103 typedef enum VkResult {
    104     VK_SUCCESS = 0,
    105     VK_NOT_READY = 1,
    106     VK_TIMEOUT = 2,
    107     VK_EVENT_SET = 3,
    108     VK_EVENT_RESET = 4,
    109     VK_INCOMPLETE = 5,
    110     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
    111     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
    112     VK_ERROR_INITIALIZATION_FAILED = -3,
    113     VK_ERROR_DEVICE_LOST = -4,
    114     VK_ERROR_MEMORY_MAP_FAILED = -5,
    115     VK_ERROR_LAYER_NOT_PRESENT = -6,
    116     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
    117     VK_ERROR_FEATURE_NOT_PRESENT = -8,
    118     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
    119     VK_ERROR_TOO_MANY_OBJECTS = -10,
    120     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
    121     VK_ERROR_FRAGMENTED_POOL = -12,
    122     VK_ERROR_UNKNOWN = -13,
    123     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
    124     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
    125     VK_ERROR_FRAGMENTATION = -1000161000,
    126     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
    127     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
    128     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
    129     VK_SUBOPTIMAL_KHR = 1000001003,
    130     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
    131     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
    132     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
    133     VK_ERROR_INVALID_SHADER_NV = -1000012000,
    134     VK_ERROR_INCOMPATIBLE_VERSION_KHR = -1000150000,
    135     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
    136     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
    137     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
    138     VK_THREAD_IDLE_KHR = 1000268000,
    139     VK_THREAD_DONE_KHR = 1000268001,
    140     VK_OPERATION_DEFERRED_KHR = 1000268002,
    141     VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
    142     VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000,
    143     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
    144     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
    145     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
    146     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    147     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    148     VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
    149     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
    150 } VkResult;
    151 
    152 typedef enum VkStructureType {
    153     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
    154     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
    155     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
    156     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
    157     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
    158     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
    159     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
    160     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
    161     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
    162     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
    163     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
    164     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
    165     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
    166     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
    167     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
    168     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
    169     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
    170     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
    171     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
    172     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
    173     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
    174     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
    175     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
    176     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
    177     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
    178     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
    179     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
    180     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
    181     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
    182     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
    183     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
    184     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
    185     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
    186     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
    187     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
    188     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
    189     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
    190     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
    191     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
    192     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
    193     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
    194     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
    195     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
    196     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
    197     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
    198     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
    199     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
    200     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
    201     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
    202     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
    203     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
    204     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
    205     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
    206     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
    207     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
    208     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
    209     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
    210     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
    211     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
    212     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
    213     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
    214     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
    215     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
    216     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
    217     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
    218     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
    219     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
    220     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
    221     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
    222     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
    223     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
    224     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
    225     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
    226     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
    227     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
    228     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
    229     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
    230     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
    231     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
    232     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
    233     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
    234     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
    235     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
    236     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
    237     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
    238     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
    239     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
    240     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
    241     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
    242     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
    243     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
    244     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
    245     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
    246     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
    247     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
    248     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
    249     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
    250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
    251     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
    252     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
    253     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
    254     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
    255     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
    256     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
    257     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
    258     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
    259     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
    260     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
    261     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
    262     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
    263     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
    264     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
    265     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
    266     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
    267     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
    268     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
    269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
    270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
    271     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
    272     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
    273     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
    274     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
    275     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
    276     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
    277     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
    278     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
    279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
    280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
    281     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
    282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
    283     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
    284     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
    285     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
    286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
    287     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
    288     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
    289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
    290     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
    291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
    292     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
    293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
    294     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
    295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
    296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
    297     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
    298     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
    299     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
    300     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
    301     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
    302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
    303     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
    304     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
    305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
    306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
    307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
    308     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
    309     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
    310     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
    311     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
    312     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
    313     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
    314     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
    315     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
    316     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
    317     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
    318     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
    319     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
    320     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
    321     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
    322     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
    323     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
    324     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
    325     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
    326     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
    327     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
    328     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
    329     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
    330     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
    331     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
    332     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
    333     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
    334     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
    335     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
    336     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
    337     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
    338     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
    339     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
    340     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
    341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
    342     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
    343     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
    344     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
    345     VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
    346     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
    347     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
    348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
    349     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
    350     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
    351     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
    352     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
    353     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
    354     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
    355     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
    356     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
    357     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
    358     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
    359     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
    360     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
    361     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
    362     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
    363     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
    364     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
    365     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
    366     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
    367     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
    368     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
    369     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
    370     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
    371     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
    372     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
    373     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
    374     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
    375     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
    376     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
    377     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
    378     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
    379     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
    380     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
    381     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
    382     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
    383     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
    384     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
    385     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
    386     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
    387     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
    388     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
    389     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
    390     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
    391     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
    392     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
    393     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
    394     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
    395     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
    396     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
    397     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
    398     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
    399     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
    400     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
    401     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
    402     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
    403     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
    404     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
    405     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
    406     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
    407     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
    408     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
    409     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
    410     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
    411     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
    412     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
    413     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
    414     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
    415     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
    416     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
    417     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
    418     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
    419     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
    420     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
    421     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
    422     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
    423     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
    424     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
    425     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
    426     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
    427     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
    428     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
    429     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
    430     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
    431     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
    432     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
    433     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
    434     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
    435     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
    436     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
    437     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
    438     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
    439     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
    440     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
    441     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR = 1000165006,
    442     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000165007,
    443     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
    444     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR = 1000150001,
    445     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
    446     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
    447     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
    448     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
    449     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
    450     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR = 1000150008,
    451     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR = 1000150009,
    452     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
    453     VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
    454     VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
    455     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR = 1000150013,
    456     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR = 1000150014,
    457     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
    458     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
    459     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
    460     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
    461     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
    462     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
    463     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
    464     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
    465     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
    466     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
    467     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
    468     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
    469     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
    470     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
    471     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
    472     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
    473     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
    474     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
    475     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
    476     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
    477     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
    478     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
    479     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
    480     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
    481     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
    482     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
    483     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
    484     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
    485     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
    486     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
    487     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
    488     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
    489     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
    490     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
    491     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
    492     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
    493     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
    494     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
    495     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
    496     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
    497     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
    498     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
    499     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
    500     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
    501     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
    502     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
    503     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
    504     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
    505     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
    506     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
    507     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
    508     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
    509     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
    510     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
    511     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
    512     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
    513     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
    514     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
    515     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
    516     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
    517     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
    518     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
    519     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
    520     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
    521     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
    522     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
    523     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
    524     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000,
    525     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
    526     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
    527     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
    528     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
    529     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
    530     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
    531     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
    532     VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
    533     VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
    534     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
    535     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
    536     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
    537     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
    538     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
    539     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
    540     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
    541     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
    542     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
    543     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
    544     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
    545     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
    546     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
    547     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000,
    548     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
    549     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
    550     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
    551     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
    552     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
    553     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
    554     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
    555     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
    556     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
    557     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
    558     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
    559     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
    560     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
    561     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
    562     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
    563     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
    564     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
    565     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
    566     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
    567     VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR = 1000268000,
    568     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
    569     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
    570     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
    571     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
    572     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
    573     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
    574     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
    575     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
    576     VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
    577     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
    578     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
    579     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
    580     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
    581     VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
    582     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
    583     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
    584     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
    585     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
    586     VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
    587     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
    588     VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
    589     VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
    590     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
    591     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
    592     VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
    593     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
    594     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
    595     VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
    596     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
    597     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
    598     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
    599     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
    600     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
    601     VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
    602     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
    603     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
    604     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000,
    605     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000,
    606     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001,
    607     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002,
    608     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003,
    609     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004,
    610     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005,
    611     VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006,
    612     VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007,
    613     VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008,
    614     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009,
    615     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010,
    616     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
    617     VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
    618     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
    619     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
    620     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
    621     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
    622     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
    623     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
    624     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
    625     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
    626     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
    627     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
    628     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
    629     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
    630     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
    631     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
    632     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
    633     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
    634     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
    635     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
    636     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
    637     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
    638     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
    639     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
    640     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
    641     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
    642     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
    643     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
    644     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
    645     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
    646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
    647     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
    648     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
    649     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
    650     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
    651     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
    652     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
    653     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
    654     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
    655     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
    656     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
    657     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
    658     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
    659     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
    660     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
    661     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
    662     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
    663     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
    664     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
    665     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
    666     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
    667     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
    668     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
    669     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
    670     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
    671     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
    672     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
    673     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
    674     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
    675     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
    676     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
    677     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
    678     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
    679     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
    680     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
    681     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
    682     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
    683     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
    684     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
    685     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
    686     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
    687     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
    688     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
    689     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
    690     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
    691     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
    692     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
    693     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
    694     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
    695     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
    696     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
    697     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
    698     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
    699     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
    700     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
    701     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
    702     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
    703     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
    704     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
    705     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
    706     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
    707     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
    708     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
    709     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
    710     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
    711     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
    712     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
    713     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
    714     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
    715     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
    716     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
    717     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
    718     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
    719     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
    720     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
    721     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
    722     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
    723     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
    724     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
    725     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
    726     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
    727     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
    728     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
    729     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
    730     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
    731     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
    732     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
    733     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
    734     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
    735 } VkStructureType;
    736 
    737 typedef enum VkImageLayout {
    738     VK_IMAGE_LAYOUT_UNDEFINED = 0,
    739     VK_IMAGE_LAYOUT_GENERAL = 1,
    740     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
    741     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
    742     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
    743     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
    744     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
    745     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
    746     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
    747     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
    748     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
    749     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
    750     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
    751     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
    752     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
    753     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
    754     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
    755     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
    756     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
    757     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
    758     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
    759     VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
    760     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
    761     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
    762     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
    763     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
    764     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
    765 } VkImageLayout;
    766 
    767 typedef enum VkObjectType {
    768     VK_OBJECT_TYPE_UNKNOWN = 0,
    769     VK_OBJECT_TYPE_INSTANCE = 1,
    770     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
    771     VK_OBJECT_TYPE_DEVICE = 3,
    772     VK_OBJECT_TYPE_QUEUE = 4,
    773     VK_OBJECT_TYPE_SEMAPHORE = 5,
    774     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
    775     VK_OBJECT_TYPE_FENCE = 7,
    776     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
    777     VK_OBJECT_TYPE_BUFFER = 9,
    778     VK_OBJECT_TYPE_IMAGE = 10,
    779     VK_OBJECT_TYPE_EVENT = 11,
    780     VK_OBJECT_TYPE_QUERY_POOL = 12,
    781     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
    782     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
    783     VK_OBJECT_TYPE_SHADER_MODULE = 15,
    784     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
    785     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
    786     VK_OBJECT_TYPE_RENDER_PASS = 18,
    787     VK_OBJECT_TYPE_PIPELINE = 19,
    788     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
    789     VK_OBJECT_TYPE_SAMPLER = 21,
    790     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
    791     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
    792     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
    793     VK_OBJECT_TYPE_COMMAND_POOL = 25,
    794     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
    795     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
    796     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
    797     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
    798     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
    799     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
    800     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
    801     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
    802     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
    803     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
    804     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
    805     VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
    806     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
    807     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000,
    808     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
    809     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
    810     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
    811     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
    812 } VkObjectType;
    813 
    814 typedef enum VkVendorId {
    815     VK_VENDOR_ID_VIV = 0x10001,
    816     VK_VENDOR_ID_VSI = 0x10002,
    817     VK_VENDOR_ID_KAZAN = 0x10003,
    818     VK_VENDOR_ID_CODEPLAY = 0x10004,
    819     VK_VENDOR_ID_MESA = 0x10005,
    820     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
    821 } VkVendorId;
    822 
    823 typedef enum VkPipelineCacheHeaderVersion {
    824     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
    825     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
    826 } VkPipelineCacheHeaderVersion;
    827 
    828 typedef enum VkSystemAllocationScope {
    829     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
    830     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
    831     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
    832     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
    833     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
    834     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
    835 } VkSystemAllocationScope;
    836 
    837 typedef enum VkInternalAllocationType {
    838     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
    839     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
    840 } VkInternalAllocationType;
    841 
    842 typedef enum VkFormat {
    843     VK_FORMAT_UNDEFINED = 0,
    844     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
    845     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
    846     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
    847     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
    848     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
    849     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
    850     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
    851     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
    852     VK_FORMAT_R8_UNORM = 9,
    853     VK_FORMAT_R8_SNORM = 10,
    854     VK_FORMAT_R8_USCALED = 11,
    855     VK_FORMAT_R8_SSCALED = 12,
    856     VK_FORMAT_R8_UINT = 13,
    857     VK_FORMAT_R8_SINT = 14,
    858     VK_FORMAT_R8_SRGB = 15,
    859     VK_FORMAT_R8G8_UNORM = 16,
    860     VK_FORMAT_R8G8_SNORM = 17,
    861     VK_FORMAT_R8G8_USCALED = 18,
    862     VK_FORMAT_R8G8_SSCALED = 19,
    863     VK_FORMAT_R8G8_UINT = 20,
    864     VK_FORMAT_R8G8_SINT = 21,
    865     VK_FORMAT_R8G8_SRGB = 22,
    866     VK_FORMAT_R8G8B8_UNORM = 23,
    867     VK_FORMAT_R8G8B8_SNORM = 24,
    868     VK_FORMAT_R8G8B8_USCALED = 25,
    869     VK_FORMAT_R8G8B8_SSCALED = 26,
    870     VK_FORMAT_R8G8B8_UINT = 27,
    871     VK_FORMAT_R8G8B8_SINT = 28,
    872     VK_FORMAT_R8G8B8_SRGB = 29,
    873     VK_FORMAT_B8G8R8_UNORM = 30,
    874     VK_FORMAT_B8G8R8_SNORM = 31,
    875     VK_FORMAT_B8G8R8_USCALED = 32,
    876     VK_FORMAT_B8G8R8_SSCALED = 33,
    877     VK_FORMAT_B8G8R8_UINT = 34,
    878     VK_FORMAT_B8G8R8_SINT = 35,
    879     VK_FORMAT_B8G8R8_SRGB = 36,
    880     VK_FORMAT_R8G8B8A8_UNORM = 37,
    881     VK_FORMAT_R8G8B8A8_SNORM = 38,
    882     VK_FORMAT_R8G8B8A8_USCALED = 39,
    883     VK_FORMAT_R8G8B8A8_SSCALED = 40,
    884     VK_FORMAT_R8G8B8A8_UINT = 41,
    885     VK_FORMAT_R8G8B8A8_SINT = 42,
    886     VK_FORMAT_R8G8B8A8_SRGB = 43,
    887     VK_FORMAT_B8G8R8A8_UNORM = 44,
    888     VK_FORMAT_B8G8R8A8_SNORM = 45,
    889     VK_FORMAT_B8G8R8A8_USCALED = 46,
    890     VK_FORMAT_B8G8R8A8_SSCALED = 47,
    891     VK_FORMAT_B8G8R8A8_UINT = 48,
    892     VK_FORMAT_B8G8R8A8_SINT = 49,
    893     VK_FORMAT_B8G8R8A8_SRGB = 50,
    894     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
    895     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
    896     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
    897     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
    898     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
    899     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
    900     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
    901     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
    902     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
    903     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
    904     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
    905     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
    906     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
    907     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
    908     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
    909     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
    910     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
    911     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
    912     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
    913     VK_FORMAT_R16_UNORM = 70,
    914     VK_FORMAT_R16_SNORM = 71,
    915     VK_FORMAT_R16_USCALED = 72,
    916     VK_FORMAT_R16_SSCALED = 73,
    917     VK_FORMAT_R16_UINT = 74,
    918     VK_FORMAT_R16_SINT = 75,
    919     VK_FORMAT_R16_SFLOAT = 76,
    920     VK_FORMAT_R16G16_UNORM = 77,
    921     VK_FORMAT_R16G16_SNORM = 78,
    922     VK_FORMAT_R16G16_USCALED = 79,
    923     VK_FORMAT_R16G16_SSCALED = 80,
    924     VK_FORMAT_R16G16_UINT = 81,
    925     VK_FORMAT_R16G16_SINT = 82,
    926     VK_FORMAT_R16G16_SFLOAT = 83,
    927     VK_FORMAT_R16G16B16_UNORM = 84,
    928     VK_FORMAT_R16G16B16_SNORM = 85,
    929     VK_FORMAT_R16G16B16_USCALED = 86,
    930     VK_FORMAT_R16G16B16_SSCALED = 87,
    931     VK_FORMAT_R16G16B16_UINT = 88,
    932     VK_FORMAT_R16G16B16_SINT = 89,
    933     VK_FORMAT_R16G16B16_SFLOAT = 90,
    934     VK_FORMAT_R16G16B16A16_UNORM = 91,
    935     VK_FORMAT_R16G16B16A16_SNORM = 92,
    936     VK_FORMAT_R16G16B16A16_USCALED = 93,
    937     VK_FORMAT_R16G16B16A16_SSCALED = 94,
    938     VK_FORMAT_R16G16B16A16_UINT = 95,
    939     VK_FORMAT_R16G16B16A16_SINT = 96,
    940     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
    941     VK_FORMAT_R32_UINT = 98,
    942     VK_FORMAT_R32_SINT = 99,
    943     VK_FORMAT_R32_SFLOAT = 100,
    944     VK_FORMAT_R32G32_UINT = 101,
    945     VK_FORMAT_R32G32_SINT = 102,
    946     VK_FORMAT_R32G32_SFLOAT = 103,
    947     VK_FORMAT_R32G32B32_UINT = 104,
    948     VK_FORMAT_R32G32B32_SINT = 105,
    949     VK_FORMAT_R32G32B32_SFLOAT = 106,
    950     VK_FORMAT_R32G32B32A32_UINT = 107,
    951     VK_FORMAT_R32G32B32A32_SINT = 108,
    952     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
    953     VK_FORMAT_R64_UINT = 110,
    954     VK_FORMAT_R64_SINT = 111,
    955     VK_FORMAT_R64_SFLOAT = 112,
    956     VK_FORMAT_R64G64_UINT = 113,
    957     VK_FORMAT_R64G64_SINT = 114,
    958     VK_FORMAT_R64G64_SFLOAT = 115,
    959     VK_FORMAT_R64G64B64_UINT = 116,
    960     VK_FORMAT_R64G64B64_SINT = 117,
    961     VK_FORMAT_R64G64B64_SFLOAT = 118,
    962     VK_FORMAT_R64G64B64A64_UINT = 119,
    963     VK_FORMAT_R64G64B64A64_SINT = 120,
    964     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
    965     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
    966     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
    967     VK_FORMAT_D16_UNORM = 124,
    968     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
    969     VK_FORMAT_D32_SFLOAT = 126,
    970     VK_FORMAT_S8_UINT = 127,
    971     VK_FORMAT_D16_UNORM_S8_UINT = 128,
    972     VK_FORMAT_D24_UNORM_S8_UINT = 129,
    973     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
    974     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
    975     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
    976     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
    977     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
    978     VK_FORMAT_BC2_UNORM_BLOCK = 135,
    979     VK_FORMAT_BC2_SRGB_BLOCK = 136,
    980     VK_FORMAT_BC3_UNORM_BLOCK = 137,
    981     VK_FORMAT_BC3_SRGB_BLOCK = 138,
    982     VK_FORMAT_BC4_UNORM_BLOCK = 139,
    983     VK_FORMAT_BC4_SNORM_BLOCK = 140,
    984     VK_FORMAT_BC5_UNORM_BLOCK = 141,
    985     VK_FORMAT_BC5_SNORM_BLOCK = 142,
    986     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
    987     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
    988     VK_FORMAT_BC7_UNORM_BLOCK = 145,
    989     VK_FORMAT_BC7_SRGB_BLOCK = 146,
    990     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
    991     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
    992     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
    993     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
    994     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
    995     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
    996     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
    997     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
    998     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
    999     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
   1000     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
   1001     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
   1002     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
   1003     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
   1004     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
   1005     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
   1006     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
   1007     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
   1008     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
   1009     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
   1010     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
   1011     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
   1012     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
   1013     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
   1014     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
   1015     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
   1016     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
   1017     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
   1018     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
   1019     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
   1020     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
   1021     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
   1022     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
   1023     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
   1024     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
   1025     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
   1026     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
   1027     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
   1028     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
   1029     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
   1030     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
   1031     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
   1032     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
   1033     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
   1034     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
   1035     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
   1036     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
   1037     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
   1038     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
   1039     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
   1040     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
   1041     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
   1042     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
   1043     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
   1044     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
   1045     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
   1046     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
   1047     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
   1048     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
   1049     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
   1050     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
   1051     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
   1052     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
   1053     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
   1054     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
   1055     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
   1056     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
   1057     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
   1058     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
   1059     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
   1060     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
   1061     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
   1062     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
   1063     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
   1064     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
   1065     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
   1066     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
   1067     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
   1068     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
   1069     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
   1070     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000,
   1071     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,
   1072     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,
   1073     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,
   1074     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,
   1075     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,
   1076     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,
   1077     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,
   1078     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,
   1079     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,
   1080     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,
   1081     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,
   1082     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,
   1083     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,
   1084     VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000,
   1085     VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001,
   1086     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
   1087     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
   1088     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
   1089     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
   1090     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
   1091     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
   1092     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
   1093     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
   1094     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
   1095     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
   1096     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
   1097     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
   1098     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
   1099     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
   1100     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
   1101     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
   1102     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
   1103     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
   1104     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
   1105     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
   1106     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
   1107     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
   1108     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
   1109     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
   1110     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
   1111     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
   1112     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
   1113     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
   1114     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
   1115     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
   1116     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
   1117     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
   1118     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
   1119     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
   1120     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
   1121 } VkFormat;
   1122 
   1123 typedef enum VkImageTiling {
   1124     VK_IMAGE_TILING_OPTIMAL = 0,
   1125     VK_IMAGE_TILING_LINEAR = 1,
   1126     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
   1127     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
   1128 } VkImageTiling;
   1129 
   1130 typedef enum VkImageType {
   1131     VK_IMAGE_TYPE_1D = 0,
   1132     VK_IMAGE_TYPE_2D = 1,
   1133     VK_IMAGE_TYPE_3D = 2,
   1134     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1135 } VkImageType;
   1136 
   1137 typedef enum VkPhysicalDeviceType {
   1138     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
   1139     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
   1140     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
   1141     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
   1142     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
   1143     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1144 } VkPhysicalDeviceType;
   1145 
   1146 typedef enum VkQueryType {
   1147     VK_QUERY_TYPE_OCCLUSION = 0,
   1148     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
   1149     VK_QUERY_TYPE_TIMESTAMP = 2,
   1150     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
   1151     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
   1152     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000165000,
   1153     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150000,
   1154     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
   1155     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
   1156     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
   1157 } VkQueryType;
   1158 
   1159 typedef enum VkSharingMode {
   1160     VK_SHARING_MODE_EXCLUSIVE = 0,
   1161     VK_SHARING_MODE_CONCURRENT = 1,
   1162     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
   1163 } VkSharingMode;
   1164 
   1165 typedef enum VkComponentSwizzle {
   1166     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
   1167     VK_COMPONENT_SWIZZLE_ZERO = 1,
   1168     VK_COMPONENT_SWIZZLE_ONE = 2,
   1169     VK_COMPONENT_SWIZZLE_R = 3,
   1170     VK_COMPONENT_SWIZZLE_G = 4,
   1171     VK_COMPONENT_SWIZZLE_B = 5,
   1172     VK_COMPONENT_SWIZZLE_A = 6,
   1173     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
   1174 } VkComponentSwizzle;
   1175 
   1176 typedef enum VkImageViewType {
   1177     VK_IMAGE_VIEW_TYPE_1D = 0,
   1178     VK_IMAGE_VIEW_TYPE_2D = 1,
   1179     VK_IMAGE_VIEW_TYPE_3D = 2,
   1180     VK_IMAGE_VIEW_TYPE_CUBE = 3,
   1181     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
   1182     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
   1183     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
   1184     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
   1185 } VkImageViewType;
   1186 
   1187 typedef enum VkBlendFactor {
   1188     VK_BLEND_FACTOR_ZERO = 0,
   1189     VK_BLEND_FACTOR_ONE = 1,
   1190     VK_BLEND_FACTOR_SRC_COLOR = 2,
   1191     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
   1192     VK_BLEND_FACTOR_DST_COLOR = 4,
   1193     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
   1194     VK_BLEND_FACTOR_SRC_ALPHA = 6,
   1195     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
   1196     VK_BLEND_FACTOR_DST_ALPHA = 8,
   1197     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
   1198     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
   1199     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
   1200     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
   1201     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
   1202     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
   1203     VK_BLEND_FACTOR_SRC1_COLOR = 15,
   1204     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
   1205     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
   1206     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
   1207     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
   1208 } VkBlendFactor;
   1209 
   1210 typedef enum VkBlendOp {
   1211     VK_BLEND_OP_ADD = 0,
   1212     VK_BLEND_OP_SUBTRACT = 1,
   1213     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
   1214     VK_BLEND_OP_MIN = 3,
   1215     VK_BLEND_OP_MAX = 4,
   1216     VK_BLEND_OP_ZERO_EXT = 1000148000,
   1217     VK_BLEND_OP_SRC_EXT = 1000148001,
   1218     VK_BLEND_OP_DST_EXT = 1000148002,
   1219     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
   1220     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
   1221     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
   1222     VK_BLEND_OP_DST_IN_EXT = 1000148006,
   1223     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
   1224     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
   1225     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
   1226     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
   1227     VK_BLEND_OP_XOR_EXT = 1000148011,
   1228     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
   1229     VK_BLEND_OP_SCREEN_EXT = 1000148013,
   1230     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
   1231     VK_BLEND_OP_DARKEN_EXT = 1000148015,
   1232     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
   1233     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
   1234     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
   1235     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
   1236     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
   1237     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
   1238     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
   1239     VK_BLEND_OP_INVERT_EXT = 1000148023,
   1240     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
   1241     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
   1242     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
   1243     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
   1244     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
   1245     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
   1246     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
   1247     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
   1248     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
   1249     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
   1250     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
   1251     VK_BLEND_OP_PLUS_EXT = 1000148035,
   1252     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
   1253     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
   1254     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
   1255     VK_BLEND_OP_MINUS_EXT = 1000148039,
   1256     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
   1257     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
   1258     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
   1259     VK_BLEND_OP_RED_EXT = 1000148043,
   1260     VK_BLEND_OP_GREEN_EXT = 1000148044,
   1261     VK_BLEND_OP_BLUE_EXT = 1000148045,
   1262     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
   1263 } VkBlendOp;
   1264 
   1265 typedef enum VkCompareOp {
   1266     VK_COMPARE_OP_NEVER = 0,
   1267     VK_COMPARE_OP_LESS = 1,
   1268     VK_COMPARE_OP_EQUAL = 2,
   1269     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
   1270     VK_COMPARE_OP_GREATER = 4,
   1271     VK_COMPARE_OP_NOT_EQUAL = 5,
   1272     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
   1273     VK_COMPARE_OP_ALWAYS = 7,
   1274     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
   1275 } VkCompareOp;
   1276 
   1277 typedef enum VkDynamicState {
   1278     VK_DYNAMIC_STATE_VIEWPORT = 0,
   1279     VK_DYNAMIC_STATE_SCISSOR = 1,
   1280     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
   1281     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
   1282     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
   1283     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
   1284     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
   1285     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
   1286     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
   1287     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
   1288     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
   1289     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
   1290     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
   1291     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
   1292     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
   1293     VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
   1294     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
   1295     VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
   1296     VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
   1297     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002,
   1298     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003,
   1299     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004,
   1300     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005,
   1301     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006,
   1302     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007,
   1303     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008,
   1304     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009,
   1305     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010,
   1306     VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011,
   1307     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
   1308 } VkDynamicState;
   1309 
   1310 typedef enum VkFrontFace {
   1311     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
   1312     VK_FRONT_FACE_CLOCKWISE = 1,
   1313     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
   1314 } VkFrontFace;
   1315 
   1316 typedef enum VkVertexInputRate {
   1317     VK_VERTEX_INPUT_RATE_VERTEX = 0,
   1318     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
   1319     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
   1320 } VkVertexInputRate;
   1321 
   1322 typedef enum VkPrimitiveTopology {
   1323     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
   1324     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
   1325     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
   1326     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
   1327     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
   1328     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
   1329     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
   1330     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
   1331     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
   1332     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
   1333     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
   1334     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
   1335 } VkPrimitiveTopology;
   1336 
   1337 typedef enum VkPolygonMode {
   1338     VK_POLYGON_MODE_FILL = 0,
   1339     VK_POLYGON_MODE_LINE = 1,
   1340     VK_POLYGON_MODE_POINT = 2,
   1341     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
   1342     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
   1343 } VkPolygonMode;
   1344 
   1345 typedef enum VkStencilOp {
   1346     VK_STENCIL_OP_KEEP = 0,
   1347     VK_STENCIL_OP_ZERO = 1,
   1348     VK_STENCIL_OP_REPLACE = 2,
   1349     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
   1350     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
   1351     VK_STENCIL_OP_INVERT = 5,
   1352     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
   1353     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
   1354     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
   1355 } VkStencilOp;
   1356 
   1357 typedef enum VkLogicOp {
   1358     VK_LOGIC_OP_CLEAR = 0,
   1359     VK_LOGIC_OP_AND = 1,
   1360     VK_LOGIC_OP_AND_REVERSE = 2,
   1361     VK_LOGIC_OP_COPY = 3,
   1362     VK_LOGIC_OP_AND_INVERTED = 4,
   1363     VK_LOGIC_OP_NO_OP = 5,
   1364     VK_LOGIC_OP_XOR = 6,
   1365     VK_LOGIC_OP_OR = 7,
   1366     VK_LOGIC_OP_NOR = 8,
   1367     VK_LOGIC_OP_EQUIVALENT = 9,
   1368     VK_LOGIC_OP_INVERT = 10,
   1369     VK_LOGIC_OP_OR_REVERSE = 11,
   1370     VK_LOGIC_OP_COPY_INVERTED = 12,
   1371     VK_LOGIC_OP_OR_INVERTED = 13,
   1372     VK_LOGIC_OP_NAND = 14,
   1373     VK_LOGIC_OP_SET = 15,
   1374     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
   1375 } VkLogicOp;
   1376 
   1377 typedef enum VkBorderColor {
   1378     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
   1379     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
   1380     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
   1381     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
   1382     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
   1383     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
   1384     VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
   1385     VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
   1386     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
   1387 } VkBorderColor;
   1388 
   1389 typedef enum VkFilter {
   1390     VK_FILTER_NEAREST = 0,
   1391     VK_FILTER_LINEAR = 1,
   1392     VK_FILTER_CUBIC_IMG = 1000015000,
   1393     VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
   1394     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
   1395 } VkFilter;
   1396 
   1397 typedef enum VkSamplerAddressMode {
   1398     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
   1399     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
   1400     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
   1401     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
   1402     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
   1403     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
   1404     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
   1405 } VkSamplerAddressMode;
   1406 
   1407 typedef enum VkSamplerMipmapMode {
   1408     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
   1409     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
   1410     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
   1411 } VkSamplerMipmapMode;
   1412 
   1413 typedef enum VkDescriptorType {
   1414     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
   1415     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
   1416     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
   1417     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
   1418     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
   1419     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
   1420     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
   1421     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
   1422     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
   1423     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
   1424     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
   1425     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
   1426     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
   1427     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
   1428     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
   1429 } VkDescriptorType;
   1430 
   1431 typedef enum VkAttachmentLoadOp {
   1432     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
   1433     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
   1434     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
   1435     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
   1436 } VkAttachmentLoadOp;
   1437 
   1438 typedef enum VkAttachmentStoreOp {
   1439     VK_ATTACHMENT_STORE_OP_STORE = 0,
   1440     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
   1441     VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000,
   1442     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
   1443 } VkAttachmentStoreOp;
   1444 
   1445 typedef enum VkPipelineBindPoint {
   1446     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
   1447     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
   1448     VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
   1449     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
   1450     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
   1451 } VkPipelineBindPoint;
   1452 
   1453 typedef enum VkCommandBufferLevel {
   1454     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
   1455     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
   1456     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
   1457 } VkCommandBufferLevel;
   1458 
   1459 typedef enum VkIndexType {
   1460     VK_INDEX_TYPE_UINT16 = 0,
   1461     VK_INDEX_TYPE_UINT32 = 1,
   1462     VK_INDEX_TYPE_NONE_KHR = 1000165000,
   1463     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
   1464     VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
   1465     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
   1466 } VkIndexType;
   1467 
   1468 typedef enum VkSubpassContents {
   1469     VK_SUBPASS_CONTENTS_INLINE = 0,
   1470     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
   1471     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
   1472 } VkSubpassContents;
   1473 
   1474 typedef enum VkAccessFlagBits {
   1475     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
   1476     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
   1477     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
   1478     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
   1479     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
   1480     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
   1481     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
   1482     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
   1483     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
   1484     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
   1485     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
   1486     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
   1487     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
   1488     VK_ACCESS_HOST_READ_BIT = 0x00002000,
   1489     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
   1490     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
   1491     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
   1492     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
   1493     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
   1494     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
   1495     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
   1496     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
   1497     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
   1498     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
   1499     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
   1500     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
   1501     VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
   1502     VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
   1503     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
   1504     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
   1505     VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
   1506     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1507 } VkAccessFlagBits;
   1508 typedef VkFlags VkAccessFlags;
   1509 
   1510 typedef enum VkImageAspectFlagBits {
   1511     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
   1512     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
   1513     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
   1514     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
   1515     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
   1516     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
   1517     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
   1518     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
   1519     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
   1520     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
   1521     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
   1522     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
   1523     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
   1524     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
   1525     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1526 } VkImageAspectFlagBits;
   1527 typedef VkFlags VkImageAspectFlags;
   1528 
   1529 typedef enum VkFormatFeatureFlagBits {
   1530     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
   1531     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
   1532     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
   1533     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
   1534     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
   1535     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
   1536     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
   1537     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
   1538     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
   1539     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
   1540     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
   1541     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
   1542     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
   1543     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
   1544     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
   1545     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
   1546     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
   1547     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
   1548     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
   1549     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
   1550     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
   1551     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
   1552     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
   1553     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
   1554     VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
   1555     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
   1556     VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
   1557     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
   1558     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
   1559     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
   1560     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
   1561     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
   1562     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
   1563     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
   1564     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,
   1565     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
   1566     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
   1567     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
   1568     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1569 } VkFormatFeatureFlagBits;
   1570 typedef VkFlags VkFormatFeatureFlags;
   1571 
   1572 typedef enum VkImageCreateFlagBits {
   1573     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
   1574     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
   1575     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
   1576     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
   1577     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
   1578     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
   1579     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
   1580     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
   1581     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
   1582     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
   1583     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
   1584     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
   1585     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
   1586     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
   1587     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
   1588     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
   1589     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
   1590     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
   1591     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
   1592     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
   1593     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
   1594     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1595 } VkImageCreateFlagBits;
   1596 typedef VkFlags VkImageCreateFlags;
   1597 
   1598 typedef enum VkSampleCountFlagBits {
   1599     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
   1600     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
   1601     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
   1602     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
   1603     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
   1604     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
   1605     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
   1606     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1607 } VkSampleCountFlagBits;
   1608 typedef VkFlags VkSampleCountFlags;
   1609 
   1610 typedef enum VkImageUsageFlagBits {
   1611     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
   1612     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
   1613     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
   1614     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
   1615     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
   1616     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
   1617     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
   1618     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
   1619     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
   1620     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
   1621     VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
   1622     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1623 } VkImageUsageFlagBits;
   1624 typedef VkFlags VkImageUsageFlags;
   1625 typedef VkFlags VkInstanceCreateFlags;
   1626 
   1627 typedef enum VkMemoryHeapFlagBits {
   1628     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
   1629     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
   1630     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
   1631     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1632 } VkMemoryHeapFlagBits;
   1633 typedef VkFlags VkMemoryHeapFlags;
   1634 
   1635 typedef enum VkMemoryPropertyFlagBits {
   1636     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
   1637     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
   1638     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
   1639     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
   1640     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
   1641     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
   1642     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
   1643     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
   1644     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1645 } VkMemoryPropertyFlagBits;
   1646 typedef VkFlags VkMemoryPropertyFlags;
   1647 
   1648 typedef enum VkQueueFlagBits {
   1649     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
   1650     VK_QUEUE_COMPUTE_BIT = 0x00000002,
   1651     VK_QUEUE_TRANSFER_BIT = 0x00000004,
   1652     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
   1653     VK_QUEUE_PROTECTED_BIT = 0x00000010,
   1654     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1655 } VkQueueFlagBits;
   1656 typedef VkFlags VkQueueFlags;
   1657 typedef VkFlags VkDeviceCreateFlags;
   1658 
   1659 typedef enum VkDeviceQueueCreateFlagBits {
   1660     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
   1661     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1662 } VkDeviceQueueCreateFlagBits;
   1663 typedef VkFlags VkDeviceQueueCreateFlags;
   1664 
   1665 typedef enum VkPipelineStageFlagBits {
   1666     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
   1667     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
   1668     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
   1669     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
   1670     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
   1671     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
   1672     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
   1673     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
   1674     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
   1675     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
   1676     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
   1677     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
   1678     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
   1679     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
   1680     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
   1681     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
   1682     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
   1683     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
   1684     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
   1685     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
   1686     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
   1687     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
   1688     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
   1689     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
   1690     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
   1691     VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
   1692     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
   1693     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
   1694     VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
   1695     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1696 } VkPipelineStageFlagBits;
   1697 typedef VkFlags VkPipelineStageFlags;
   1698 typedef VkFlags VkMemoryMapFlags;
   1699 
   1700 typedef enum VkSparseMemoryBindFlagBits {
   1701     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
   1702     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1703 } VkSparseMemoryBindFlagBits;
   1704 typedef VkFlags VkSparseMemoryBindFlags;
   1705 
   1706 typedef enum VkSparseImageFormatFlagBits {
   1707     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
   1708     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
   1709     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
   1710     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1711 } VkSparseImageFormatFlagBits;
   1712 typedef VkFlags VkSparseImageFormatFlags;
   1713 
   1714 typedef enum VkFenceCreateFlagBits {
   1715     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
   1716     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1717 } VkFenceCreateFlagBits;
   1718 typedef VkFlags VkFenceCreateFlags;
   1719 typedef VkFlags VkSemaphoreCreateFlags;
   1720 typedef VkFlags VkEventCreateFlags;
   1721 
   1722 typedef enum VkQueryPipelineStatisticFlagBits {
   1723     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
   1724     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
   1725     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
   1726     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
   1727     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
   1728     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
   1729     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
   1730     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
   1731     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
   1732     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
   1733     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
   1734     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1735 } VkQueryPipelineStatisticFlagBits;
   1736 typedef VkFlags VkQueryPipelineStatisticFlags;
   1737 typedef VkFlags VkQueryPoolCreateFlags;
   1738 
   1739 typedef enum VkQueryResultFlagBits {
   1740     VK_QUERY_RESULT_64_BIT = 0x00000001,
   1741     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
   1742     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
   1743     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
   1744     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1745 } VkQueryResultFlagBits;
   1746 typedef VkFlags VkQueryResultFlags;
   1747 
   1748 typedef enum VkBufferCreateFlagBits {
   1749     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
   1750     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
   1751     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
   1752     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
   1753     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
   1754     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   1755     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   1756     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1757 } VkBufferCreateFlagBits;
   1758 typedef VkFlags VkBufferCreateFlags;
   1759 
   1760 typedef enum VkBufferUsageFlagBits {
   1761     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
   1762     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
   1763     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
   1764     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
   1765     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
   1766     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
   1767     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
   1768     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
   1769     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
   1770     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
   1771     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
   1772     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
   1773     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
   1774     VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR = 0x00000400,
   1775     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
   1776     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
   1777     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
   1778     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1779 } VkBufferUsageFlagBits;
   1780 typedef VkFlags VkBufferUsageFlags;
   1781 typedef VkFlags VkBufferViewCreateFlags;
   1782 
   1783 typedef enum VkImageViewCreateFlagBits {
   1784     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
   1785     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
   1786     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1787 } VkImageViewCreateFlagBits;
   1788 typedef VkFlags VkImageViewCreateFlags;
   1789 
   1790 typedef enum VkShaderModuleCreateFlagBits {
   1791     VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1792 } VkShaderModuleCreateFlagBits;
   1793 typedef VkFlags VkShaderModuleCreateFlags;
   1794 
   1795 typedef enum VkPipelineCacheCreateFlagBits {
   1796     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001,
   1797     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1798 } VkPipelineCacheCreateFlagBits;
   1799 typedef VkFlags VkPipelineCacheCreateFlags;
   1800 
   1801 typedef enum VkColorComponentFlagBits {
   1802     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
   1803     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
   1804     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
   1805     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
   1806     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1807 } VkColorComponentFlagBits;
   1808 typedef VkFlags VkColorComponentFlags;
   1809 
   1810 typedef enum VkPipelineCreateFlagBits {
   1811     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
   1812     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
   1813     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
   1814     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
   1815     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
   1816     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
   1817     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
   1818     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
   1819     VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
   1820     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
   1821     VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
   1822     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
   1823     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
   1824     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
   1825     VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
   1826     VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
   1827     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100,
   1828     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200,
   1829     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
   1830     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
   1831     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
   1832     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1833 } VkPipelineCreateFlagBits;
   1834 typedef VkFlags VkPipelineCreateFlags;
   1835 
   1836 typedef enum VkPipelineShaderStageCreateFlagBits {
   1837     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001,
   1838     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002,
   1839     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1840 } VkPipelineShaderStageCreateFlagBits;
   1841 typedef VkFlags VkPipelineShaderStageCreateFlags;
   1842 
   1843 typedef enum VkShaderStageFlagBits {
   1844     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
   1845     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
   1846     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
   1847     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
   1848     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
   1849     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
   1850     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
   1851     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
   1852     VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
   1853     VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
   1854     VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
   1855     VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
   1856     VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
   1857     VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
   1858     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
   1859     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
   1860     VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
   1861     VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
   1862     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
   1863     VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
   1864     VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
   1865     VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
   1866     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1867 } VkShaderStageFlagBits;
   1868 
   1869 typedef enum VkCullModeFlagBits {
   1870     VK_CULL_MODE_NONE = 0,
   1871     VK_CULL_MODE_FRONT_BIT = 0x00000001,
   1872     VK_CULL_MODE_BACK_BIT = 0x00000002,
   1873     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
   1874     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1875 } VkCullModeFlagBits;
   1876 typedef VkFlags VkCullModeFlags;
   1877 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
   1878 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
   1879 typedef VkFlags VkPipelineTessellationStateCreateFlags;
   1880 typedef VkFlags VkPipelineViewportStateCreateFlags;
   1881 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
   1882 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
   1883 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
   1884 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
   1885 typedef VkFlags VkPipelineDynamicStateCreateFlags;
   1886 typedef VkFlags VkPipelineLayoutCreateFlags;
   1887 typedef VkFlags VkShaderStageFlags;
   1888 
   1889 typedef enum VkSamplerCreateFlagBits {
   1890     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
   1891     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
   1892     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1893 } VkSamplerCreateFlagBits;
   1894 typedef VkFlags VkSamplerCreateFlags;
   1895 
   1896 typedef enum VkDescriptorPoolCreateFlagBits {
   1897     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
   1898     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
   1899     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
   1900     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1901 } VkDescriptorPoolCreateFlagBits;
   1902 typedef VkFlags VkDescriptorPoolCreateFlags;
   1903 typedef VkFlags VkDescriptorPoolResetFlags;
   1904 
   1905 typedef enum VkDescriptorSetLayoutCreateFlagBits {
   1906     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
   1907     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
   1908     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
   1909     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1910 } VkDescriptorSetLayoutCreateFlagBits;
   1911 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
   1912 
   1913 typedef enum VkAttachmentDescriptionFlagBits {
   1914     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
   1915     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1916 } VkAttachmentDescriptionFlagBits;
   1917 typedef VkFlags VkAttachmentDescriptionFlags;
   1918 
   1919 typedef enum VkDependencyFlagBits {
   1920     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
   1921     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
   1922     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
   1923     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
   1924     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
   1925     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1926 } VkDependencyFlagBits;
   1927 typedef VkFlags VkDependencyFlags;
   1928 
   1929 typedef enum VkFramebufferCreateFlagBits {
   1930     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
   1931     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
   1932     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1933 } VkFramebufferCreateFlagBits;
   1934 typedef VkFlags VkFramebufferCreateFlags;
   1935 
   1936 typedef enum VkRenderPassCreateFlagBits {
   1937     VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
   1938     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1939 } VkRenderPassCreateFlagBits;
   1940 typedef VkFlags VkRenderPassCreateFlags;
   1941 
   1942 typedef enum VkSubpassDescriptionFlagBits {
   1943     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
   1944     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
   1945     VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
   1946     VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
   1947     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1948 } VkSubpassDescriptionFlagBits;
   1949 typedef VkFlags VkSubpassDescriptionFlags;
   1950 
   1951 typedef enum VkCommandPoolCreateFlagBits {
   1952     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
   1953     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
   1954     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
   1955     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1956 } VkCommandPoolCreateFlagBits;
   1957 typedef VkFlags VkCommandPoolCreateFlags;
   1958 
   1959 typedef enum VkCommandPoolResetFlagBits {
   1960     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
   1961     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1962 } VkCommandPoolResetFlagBits;
   1963 typedef VkFlags VkCommandPoolResetFlags;
   1964 
   1965 typedef enum VkCommandBufferUsageFlagBits {
   1966     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
   1967     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
   1968     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
   1969     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1970 } VkCommandBufferUsageFlagBits;
   1971 typedef VkFlags VkCommandBufferUsageFlags;
   1972 
   1973 typedef enum VkQueryControlFlagBits {
   1974     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
   1975     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1976 } VkQueryControlFlagBits;
   1977 typedef VkFlags VkQueryControlFlags;
   1978 
   1979 typedef enum VkCommandBufferResetFlagBits {
   1980     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
   1981     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1982 } VkCommandBufferResetFlagBits;
   1983 typedef VkFlags VkCommandBufferResetFlags;
   1984 
   1985 typedef enum VkStencilFaceFlagBits {
   1986     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
   1987     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
   1988     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
   1989     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
   1990     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1991 } VkStencilFaceFlagBits;
   1992 typedef VkFlags VkStencilFaceFlags;
   1993 typedef struct VkExtent2D {
   1994     uint32_t    width;
   1995     uint32_t    height;
   1996 } VkExtent2D;
   1997 
   1998 typedef struct VkExtent3D {
   1999     uint32_t    width;
   2000     uint32_t    height;
   2001     uint32_t    depth;
   2002 } VkExtent3D;
   2003 
   2004 typedef struct VkOffset2D {
   2005     int32_t    x;
   2006     int32_t    y;
   2007 } VkOffset2D;
   2008 
   2009 typedef struct VkOffset3D {
   2010     int32_t    x;
   2011     int32_t    y;
   2012     int32_t    z;
   2013 } VkOffset3D;
   2014 
   2015 typedef struct VkRect2D {
   2016     VkOffset2D    offset;
   2017     VkExtent2D    extent;
   2018 } VkRect2D;
   2019 
   2020 typedef struct VkBaseInStructure {
   2021     VkStructureType                    sType;
   2022     const struct VkBaseInStructure*    pNext;
   2023 } VkBaseInStructure;
   2024 
   2025 typedef struct VkBaseOutStructure {
   2026     VkStructureType               sType;
   2027     struct VkBaseOutStructure*    pNext;
   2028 } VkBaseOutStructure;
   2029 
   2030 typedef struct VkBufferMemoryBarrier {
   2031     VkStructureType    sType;
   2032     const void*        pNext;
   2033     VkAccessFlags      srcAccessMask;
   2034     VkAccessFlags      dstAccessMask;
   2035     uint32_t           srcQueueFamilyIndex;
   2036     uint32_t           dstQueueFamilyIndex;
   2037     VkBuffer           buffer;
   2038     VkDeviceSize       offset;
   2039     VkDeviceSize       size;
   2040 } VkBufferMemoryBarrier;
   2041 
   2042 typedef struct VkDispatchIndirectCommand {
   2043     uint32_t    x;
   2044     uint32_t    y;
   2045     uint32_t    z;
   2046 } VkDispatchIndirectCommand;
   2047 
   2048 typedef struct VkDrawIndexedIndirectCommand {
   2049     uint32_t    indexCount;
   2050     uint32_t    instanceCount;
   2051     uint32_t    firstIndex;
   2052     int32_t     vertexOffset;
   2053     uint32_t    firstInstance;
   2054 } VkDrawIndexedIndirectCommand;
   2055 
   2056 typedef struct VkDrawIndirectCommand {
   2057     uint32_t    vertexCount;
   2058     uint32_t    instanceCount;
   2059     uint32_t    firstVertex;
   2060     uint32_t    firstInstance;
   2061 } VkDrawIndirectCommand;
   2062 
   2063 typedef struct VkImageSubresourceRange {
   2064     VkImageAspectFlags    aspectMask;
   2065     uint32_t              baseMipLevel;
   2066     uint32_t              levelCount;
   2067     uint32_t              baseArrayLayer;
   2068     uint32_t              layerCount;
   2069 } VkImageSubresourceRange;
   2070 
   2071 typedef struct VkImageMemoryBarrier {
   2072     VkStructureType            sType;
   2073     const void*                pNext;
   2074     VkAccessFlags              srcAccessMask;
   2075     VkAccessFlags              dstAccessMask;
   2076     VkImageLayout              oldLayout;
   2077     VkImageLayout              newLayout;
   2078     uint32_t                   srcQueueFamilyIndex;
   2079     uint32_t                   dstQueueFamilyIndex;
   2080     VkImage                    image;
   2081     VkImageSubresourceRange    subresourceRange;
   2082 } VkImageMemoryBarrier;
   2083 
   2084 typedef struct VkMemoryBarrier {
   2085     VkStructureType    sType;
   2086     const void*        pNext;
   2087     VkAccessFlags      srcAccessMask;
   2088     VkAccessFlags      dstAccessMask;
   2089 } VkMemoryBarrier;
   2090 
   2091 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
   2092     void*                                       pUserData,
   2093     size_t                                      size,
   2094     size_t                                      alignment,
   2095     VkSystemAllocationScope                     allocationScope);
   2096 
   2097 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
   2098     void*                                       pUserData,
   2099     void*                                       pMemory);
   2100 
   2101 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
   2102     void*                                       pUserData,
   2103     size_t                                      size,
   2104     VkInternalAllocationType                    allocationType,
   2105     VkSystemAllocationScope                     allocationScope);
   2106 
   2107 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
   2108     void*                                       pUserData,
   2109     size_t                                      size,
   2110     VkInternalAllocationType                    allocationType,
   2111     VkSystemAllocationScope                     allocationScope);
   2112 
   2113 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
   2114     void*                                       pUserData,
   2115     void*                                       pOriginal,
   2116     size_t                                      size,
   2117     size_t                                      alignment,
   2118     VkSystemAllocationScope                     allocationScope);
   2119 
   2120 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
   2121 typedef struct VkAllocationCallbacks {
   2122     void*                                   pUserData;
   2123     PFN_vkAllocationFunction                pfnAllocation;
   2124     PFN_vkReallocationFunction              pfnReallocation;
   2125     PFN_vkFreeFunction                      pfnFree;
   2126     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
   2127     PFN_vkInternalFreeNotification          pfnInternalFree;
   2128 } VkAllocationCallbacks;
   2129 
   2130 typedef struct VkApplicationInfo {
   2131     VkStructureType    sType;
   2132     const void*        pNext;
   2133     const char*        pApplicationName;
   2134     uint32_t           applicationVersion;
   2135     const char*        pEngineName;
   2136     uint32_t           engineVersion;
   2137     uint32_t           apiVersion;
   2138 } VkApplicationInfo;
   2139 
   2140 typedef struct VkFormatProperties {
   2141     VkFormatFeatureFlags    linearTilingFeatures;
   2142     VkFormatFeatureFlags    optimalTilingFeatures;
   2143     VkFormatFeatureFlags    bufferFeatures;
   2144 } VkFormatProperties;
   2145 
   2146 typedef struct VkImageFormatProperties {
   2147     VkExtent3D            maxExtent;
   2148     uint32_t              maxMipLevels;
   2149     uint32_t              maxArrayLayers;
   2150     VkSampleCountFlags    sampleCounts;
   2151     VkDeviceSize          maxResourceSize;
   2152 } VkImageFormatProperties;
   2153 
   2154 typedef struct VkInstanceCreateInfo {
   2155     VkStructureType             sType;
   2156     const void*                 pNext;
   2157     VkInstanceCreateFlags       flags;
   2158     const VkApplicationInfo*    pApplicationInfo;
   2159     uint32_t                    enabledLayerCount;
   2160     const char* const*          ppEnabledLayerNames;
   2161     uint32_t                    enabledExtensionCount;
   2162     const char* const*          ppEnabledExtensionNames;
   2163 } VkInstanceCreateInfo;
   2164 
   2165 typedef struct VkMemoryHeap {
   2166     VkDeviceSize         size;
   2167     VkMemoryHeapFlags    flags;
   2168 } VkMemoryHeap;
   2169 
   2170 typedef struct VkMemoryType {
   2171     VkMemoryPropertyFlags    propertyFlags;
   2172     uint32_t                 heapIndex;
   2173 } VkMemoryType;
   2174 
   2175 typedef struct VkPhysicalDeviceFeatures {
   2176     VkBool32    robustBufferAccess;
   2177     VkBool32    fullDrawIndexUint32;
   2178     VkBool32    imageCubeArray;
   2179     VkBool32    independentBlend;
   2180     VkBool32    geometryShader;
   2181     VkBool32    tessellationShader;
   2182     VkBool32    sampleRateShading;
   2183     VkBool32    dualSrcBlend;
   2184     VkBool32    logicOp;
   2185     VkBool32    multiDrawIndirect;
   2186     VkBool32    drawIndirectFirstInstance;
   2187     VkBool32    depthClamp;
   2188     VkBool32    depthBiasClamp;
   2189     VkBool32    fillModeNonSolid;
   2190     VkBool32    depthBounds;
   2191     VkBool32    wideLines;
   2192     VkBool32    largePoints;
   2193     VkBool32    alphaToOne;
   2194     VkBool32    multiViewport;
   2195     VkBool32    samplerAnisotropy;
   2196     VkBool32    textureCompressionETC2;
   2197     VkBool32    textureCompressionASTC_LDR;
   2198     VkBool32    textureCompressionBC;
   2199     VkBool32    occlusionQueryPrecise;
   2200     VkBool32    pipelineStatisticsQuery;
   2201     VkBool32    vertexPipelineStoresAndAtomics;
   2202     VkBool32    fragmentStoresAndAtomics;
   2203     VkBool32    shaderTessellationAndGeometryPointSize;
   2204     VkBool32    shaderImageGatherExtended;
   2205     VkBool32    shaderStorageImageExtendedFormats;
   2206     VkBool32    shaderStorageImageMultisample;
   2207     VkBool32    shaderStorageImageReadWithoutFormat;
   2208     VkBool32    shaderStorageImageWriteWithoutFormat;
   2209     VkBool32    shaderUniformBufferArrayDynamicIndexing;
   2210     VkBool32    shaderSampledImageArrayDynamicIndexing;
   2211     VkBool32    shaderStorageBufferArrayDynamicIndexing;
   2212     VkBool32    shaderStorageImageArrayDynamicIndexing;
   2213     VkBool32    shaderClipDistance;
   2214     VkBool32    shaderCullDistance;
   2215     VkBool32    shaderFloat64;
   2216     VkBool32    shaderInt64;
   2217     VkBool32    shaderInt16;
   2218     VkBool32    shaderResourceResidency;
   2219     VkBool32    shaderResourceMinLod;
   2220     VkBool32    sparseBinding;
   2221     VkBool32    sparseResidencyBuffer;
   2222     VkBool32    sparseResidencyImage2D;
   2223     VkBool32    sparseResidencyImage3D;
   2224     VkBool32    sparseResidency2Samples;
   2225     VkBool32    sparseResidency4Samples;
   2226     VkBool32    sparseResidency8Samples;
   2227     VkBool32    sparseResidency16Samples;
   2228     VkBool32    sparseResidencyAliased;
   2229     VkBool32    variableMultisampleRate;
   2230     VkBool32    inheritedQueries;
   2231 } VkPhysicalDeviceFeatures;
   2232 
   2233 typedef struct VkPhysicalDeviceLimits {
   2234     uint32_t              maxImageDimension1D;
   2235     uint32_t              maxImageDimension2D;
   2236     uint32_t              maxImageDimension3D;
   2237     uint32_t              maxImageDimensionCube;
   2238     uint32_t              maxImageArrayLayers;
   2239     uint32_t              maxTexelBufferElements;
   2240     uint32_t              maxUniformBufferRange;
   2241     uint32_t              maxStorageBufferRange;
   2242     uint32_t              maxPushConstantsSize;
   2243     uint32_t              maxMemoryAllocationCount;
   2244     uint32_t              maxSamplerAllocationCount;
   2245     VkDeviceSize          bufferImageGranularity;
   2246     VkDeviceSize          sparseAddressSpaceSize;
   2247     uint32_t              maxBoundDescriptorSets;
   2248     uint32_t              maxPerStageDescriptorSamplers;
   2249     uint32_t              maxPerStageDescriptorUniformBuffers;
   2250     uint32_t              maxPerStageDescriptorStorageBuffers;
   2251     uint32_t              maxPerStageDescriptorSampledImages;
   2252     uint32_t              maxPerStageDescriptorStorageImages;
   2253     uint32_t              maxPerStageDescriptorInputAttachments;
   2254     uint32_t              maxPerStageResources;
   2255     uint32_t              maxDescriptorSetSamplers;
   2256     uint32_t              maxDescriptorSetUniformBuffers;
   2257     uint32_t              maxDescriptorSetUniformBuffersDynamic;
   2258     uint32_t              maxDescriptorSetStorageBuffers;
   2259     uint32_t              maxDescriptorSetStorageBuffersDynamic;
   2260     uint32_t              maxDescriptorSetSampledImages;
   2261     uint32_t              maxDescriptorSetStorageImages;
   2262     uint32_t              maxDescriptorSetInputAttachments;
   2263     uint32_t              maxVertexInputAttributes;
   2264     uint32_t              maxVertexInputBindings;
   2265     uint32_t              maxVertexInputAttributeOffset;
   2266     uint32_t              maxVertexInputBindingStride;
   2267     uint32_t              maxVertexOutputComponents;
   2268     uint32_t              maxTessellationGenerationLevel;
   2269     uint32_t              maxTessellationPatchSize;
   2270     uint32_t              maxTessellationControlPerVertexInputComponents;
   2271     uint32_t              maxTessellationControlPerVertexOutputComponents;
   2272     uint32_t              maxTessellationControlPerPatchOutputComponents;
   2273     uint32_t              maxTessellationControlTotalOutputComponents;
   2274     uint32_t              maxTessellationEvaluationInputComponents;
   2275     uint32_t              maxTessellationEvaluationOutputComponents;
   2276     uint32_t              maxGeometryShaderInvocations;
   2277     uint32_t              maxGeometryInputComponents;
   2278     uint32_t              maxGeometryOutputComponents;
   2279     uint32_t              maxGeometryOutputVertices;
   2280     uint32_t              maxGeometryTotalOutputComponents;
   2281     uint32_t              maxFragmentInputComponents;
   2282     uint32_t              maxFragmentOutputAttachments;
   2283     uint32_t              maxFragmentDualSrcAttachments;
   2284     uint32_t              maxFragmentCombinedOutputResources;
   2285     uint32_t              maxComputeSharedMemorySize;
   2286     uint32_t              maxComputeWorkGroupCount[3];
   2287     uint32_t              maxComputeWorkGroupInvocations;
   2288     uint32_t              maxComputeWorkGroupSize[3];
   2289     uint32_t              subPixelPrecisionBits;
   2290     uint32_t              subTexelPrecisionBits;
   2291     uint32_t              mipmapPrecisionBits;
   2292     uint32_t              maxDrawIndexedIndexValue;
   2293     uint32_t              maxDrawIndirectCount;
   2294     float                 maxSamplerLodBias;
   2295     float                 maxSamplerAnisotropy;
   2296     uint32_t              maxViewports;
   2297     uint32_t              maxViewportDimensions[2];
   2298     float                 viewportBoundsRange[2];
   2299     uint32_t              viewportSubPixelBits;
   2300     size_t                minMemoryMapAlignment;
   2301     VkDeviceSize          minTexelBufferOffsetAlignment;
   2302     VkDeviceSize          minUniformBufferOffsetAlignment;
   2303     VkDeviceSize          minStorageBufferOffsetAlignment;
   2304     int32_t               minTexelOffset;
   2305     uint32_t              maxTexelOffset;
   2306     int32_t               minTexelGatherOffset;
   2307     uint32_t              maxTexelGatherOffset;
   2308     float                 minInterpolationOffset;
   2309     float                 maxInterpolationOffset;
   2310     uint32_t              subPixelInterpolationOffsetBits;
   2311     uint32_t              maxFramebufferWidth;
   2312     uint32_t              maxFramebufferHeight;
   2313     uint32_t              maxFramebufferLayers;
   2314     VkSampleCountFlags    framebufferColorSampleCounts;
   2315     VkSampleCountFlags    framebufferDepthSampleCounts;
   2316     VkSampleCountFlags    framebufferStencilSampleCounts;
   2317     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
   2318     uint32_t              maxColorAttachments;
   2319     VkSampleCountFlags    sampledImageColorSampleCounts;
   2320     VkSampleCountFlags    sampledImageIntegerSampleCounts;
   2321     VkSampleCountFlags    sampledImageDepthSampleCounts;
   2322     VkSampleCountFlags    sampledImageStencilSampleCounts;
   2323     VkSampleCountFlags    storageImageSampleCounts;
   2324     uint32_t              maxSampleMaskWords;
   2325     VkBool32              timestampComputeAndGraphics;
   2326     float                 timestampPeriod;
   2327     uint32_t              maxClipDistances;
   2328     uint32_t              maxCullDistances;
   2329     uint32_t              maxCombinedClipAndCullDistances;
   2330     uint32_t              discreteQueuePriorities;
   2331     float                 pointSizeRange[2];
   2332     float                 lineWidthRange[2];
   2333     float                 pointSizeGranularity;
   2334     float                 lineWidthGranularity;
   2335     VkBool32              strictLines;
   2336     VkBool32              standardSampleLocations;
   2337     VkDeviceSize          optimalBufferCopyOffsetAlignment;
   2338     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
   2339     VkDeviceSize          nonCoherentAtomSize;
   2340 } VkPhysicalDeviceLimits;
   2341 
   2342 typedef struct VkPhysicalDeviceMemoryProperties {
   2343     uint32_t        memoryTypeCount;
   2344     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
   2345     uint32_t        memoryHeapCount;
   2346     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
   2347 } VkPhysicalDeviceMemoryProperties;
   2348 
   2349 typedef struct VkPhysicalDeviceSparseProperties {
   2350     VkBool32    residencyStandard2DBlockShape;
   2351     VkBool32    residencyStandard2DMultisampleBlockShape;
   2352     VkBool32    residencyStandard3DBlockShape;
   2353     VkBool32    residencyAlignedMipSize;
   2354     VkBool32    residencyNonResidentStrict;
   2355 } VkPhysicalDeviceSparseProperties;
   2356 
   2357 typedef struct VkPhysicalDeviceProperties {
   2358     uint32_t                            apiVersion;
   2359     uint32_t                            driverVersion;
   2360     uint32_t                            vendorID;
   2361     uint32_t                            deviceID;
   2362     VkPhysicalDeviceType                deviceType;
   2363     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
   2364     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
   2365     VkPhysicalDeviceLimits              limits;
   2366     VkPhysicalDeviceSparseProperties    sparseProperties;
   2367 } VkPhysicalDeviceProperties;
   2368 
   2369 typedef struct VkQueueFamilyProperties {
   2370     VkQueueFlags    queueFlags;
   2371     uint32_t        queueCount;
   2372     uint32_t        timestampValidBits;
   2373     VkExtent3D      minImageTransferGranularity;
   2374 } VkQueueFamilyProperties;
   2375 
   2376 typedef struct VkDeviceQueueCreateInfo {
   2377     VkStructureType             sType;
   2378     const void*                 pNext;
   2379     VkDeviceQueueCreateFlags    flags;
   2380     uint32_t                    queueFamilyIndex;
   2381     uint32_t                    queueCount;
   2382     const float*                pQueuePriorities;
   2383 } VkDeviceQueueCreateInfo;
   2384 
   2385 typedef struct VkDeviceCreateInfo {
   2386     VkStructureType                    sType;
   2387     const void*                        pNext;
   2388     VkDeviceCreateFlags                flags;
   2389     uint32_t                           queueCreateInfoCount;
   2390     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
   2391     uint32_t                           enabledLayerCount;
   2392     const char* const*                 ppEnabledLayerNames;
   2393     uint32_t                           enabledExtensionCount;
   2394     const char* const*                 ppEnabledExtensionNames;
   2395     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
   2396 } VkDeviceCreateInfo;
   2397 
   2398 typedef struct VkExtensionProperties {
   2399     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
   2400     uint32_t    specVersion;
   2401 } VkExtensionProperties;
   2402 
   2403 typedef struct VkLayerProperties {
   2404     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
   2405     uint32_t    specVersion;
   2406     uint32_t    implementationVersion;
   2407     char        description[VK_MAX_DESCRIPTION_SIZE];
   2408 } VkLayerProperties;
   2409 
   2410 typedef struct VkSubmitInfo {
   2411     VkStructureType                sType;
   2412     const void*                    pNext;
   2413     uint32_t                       waitSemaphoreCount;
   2414     const VkSemaphore*             pWaitSemaphores;
   2415     const VkPipelineStageFlags*    pWaitDstStageMask;
   2416     uint32_t                       commandBufferCount;
   2417     const VkCommandBuffer*         pCommandBuffers;
   2418     uint32_t                       signalSemaphoreCount;
   2419     const VkSemaphore*             pSignalSemaphores;
   2420 } VkSubmitInfo;
   2421 
   2422 typedef struct VkMappedMemoryRange {
   2423     VkStructureType    sType;
   2424     const void*        pNext;
   2425     VkDeviceMemory     memory;
   2426     VkDeviceSize       offset;
   2427     VkDeviceSize       size;
   2428 } VkMappedMemoryRange;
   2429 
   2430 typedef struct VkMemoryAllocateInfo {
   2431     VkStructureType    sType;
   2432     const void*        pNext;
   2433     VkDeviceSize       allocationSize;
   2434     uint32_t           memoryTypeIndex;
   2435 } VkMemoryAllocateInfo;
   2436 
   2437 typedef struct VkMemoryRequirements {
   2438     VkDeviceSize    size;
   2439     VkDeviceSize    alignment;
   2440     uint32_t        memoryTypeBits;
   2441 } VkMemoryRequirements;
   2442 
   2443 typedef struct VkSparseMemoryBind {
   2444     VkDeviceSize               resourceOffset;
   2445     VkDeviceSize               size;
   2446     VkDeviceMemory             memory;
   2447     VkDeviceSize               memoryOffset;
   2448     VkSparseMemoryBindFlags    flags;
   2449 } VkSparseMemoryBind;
   2450 
   2451 typedef struct VkSparseBufferMemoryBindInfo {
   2452     VkBuffer                     buffer;
   2453     uint32_t                     bindCount;
   2454     const VkSparseMemoryBind*    pBinds;
   2455 } VkSparseBufferMemoryBindInfo;
   2456 
   2457 typedef struct VkSparseImageOpaqueMemoryBindInfo {
   2458     VkImage                      image;
   2459     uint32_t                     bindCount;
   2460     const VkSparseMemoryBind*    pBinds;
   2461 } VkSparseImageOpaqueMemoryBindInfo;
   2462 
   2463 typedef struct VkImageSubresource {
   2464     VkImageAspectFlags    aspectMask;
   2465     uint32_t              mipLevel;
   2466     uint32_t              arrayLayer;
   2467 } VkImageSubresource;
   2468 
   2469 typedef struct VkSparseImageMemoryBind {
   2470     VkImageSubresource         subresource;
   2471     VkOffset3D                 offset;
   2472     VkExtent3D                 extent;
   2473     VkDeviceMemory             memory;
   2474     VkDeviceSize               memoryOffset;
   2475     VkSparseMemoryBindFlags    flags;
   2476 } VkSparseImageMemoryBind;
   2477 
   2478 typedef struct VkSparseImageMemoryBindInfo {
   2479     VkImage                           image;
   2480     uint32_t                          bindCount;
   2481     const VkSparseImageMemoryBind*    pBinds;
   2482 } VkSparseImageMemoryBindInfo;
   2483 
   2484 typedef struct VkBindSparseInfo {
   2485     VkStructureType                             sType;
   2486     const void*                                 pNext;
   2487     uint32_t                                    waitSemaphoreCount;
   2488     const VkSemaphore*                          pWaitSemaphores;
   2489     uint32_t                                    bufferBindCount;
   2490     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
   2491     uint32_t                                    imageOpaqueBindCount;
   2492     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
   2493     uint32_t                                    imageBindCount;
   2494     const VkSparseImageMemoryBindInfo*          pImageBinds;
   2495     uint32_t                                    signalSemaphoreCount;
   2496     const VkSemaphore*                          pSignalSemaphores;
   2497 } VkBindSparseInfo;
   2498 
   2499 typedef struct VkSparseImageFormatProperties {
   2500     VkImageAspectFlags          aspectMask;
   2501     VkExtent3D                  imageGranularity;
   2502     VkSparseImageFormatFlags    flags;
   2503 } VkSparseImageFormatProperties;
   2504 
   2505 typedef struct VkSparseImageMemoryRequirements {
   2506     VkSparseImageFormatProperties    formatProperties;
   2507     uint32_t                         imageMipTailFirstLod;
   2508     VkDeviceSize                     imageMipTailSize;
   2509     VkDeviceSize                     imageMipTailOffset;
   2510     VkDeviceSize                     imageMipTailStride;
   2511 } VkSparseImageMemoryRequirements;
   2512 
   2513 typedef struct VkFenceCreateInfo {
   2514     VkStructureType       sType;
   2515     const void*           pNext;
   2516     VkFenceCreateFlags    flags;
   2517 } VkFenceCreateInfo;
   2518 
   2519 typedef struct VkSemaphoreCreateInfo {
   2520     VkStructureType           sType;
   2521     const void*               pNext;
   2522     VkSemaphoreCreateFlags    flags;
   2523 } VkSemaphoreCreateInfo;
   2524 
   2525 typedef struct VkEventCreateInfo {
   2526     VkStructureType       sType;
   2527     const void*           pNext;
   2528     VkEventCreateFlags    flags;
   2529 } VkEventCreateInfo;
   2530 
   2531 typedef struct VkQueryPoolCreateInfo {
   2532     VkStructureType                  sType;
   2533     const void*                      pNext;
   2534     VkQueryPoolCreateFlags           flags;
   2535     VkQueryType                      queryType;
   2536     uint32_t                         queryCount;
   2537     VkQueryPipelineStatisticFlags    pipelineStatistics;
   2538 } VkQueryPoolCreateInfo;
   2539 
   2540 typedef struct VkBufferCreateInfo {
   2541     VkStructureType        sType;
   2542     const void*            pNext;
   2543     VkBufferCreateFlags    flags;
   2544     VkDeviceSize           size;
   2545     VkBufferUsageFlags     usage;
   2546     VkSharingMode          sharingMode;
   2547     uint32_t               queueFamilyIndexCount;
   2548     const uint32_t*        pQueueFamilyIndices;
   2549 } VkBufferCreateInfo;
   2550 
   2551 typedef struct VkBufferViewCreateInfo {
   2552     VkStructureType            sType;
   2553     const void*                pNext;
   2554     VkBufferViewCreateFlags    flags;
   2555     VkBuffer                   buffer;
   2556     VkFormat                   format;
   2557     VkDeviceSize               offset;
   2558     VkDeviceSize               range;
   2559 } VkBufferViewCreateInfo;
   2560 
   2561 typedef struct VkImageCreateInfo {
   2562     VkStructureType          sType;
   2563     const void*              pNext;
   2564     VkImageCreateFlags       flags;
   2565     VkImageType              imageType;
   2566     VkFormat                 format;
   2567     VkExtent3D               extent;
   2568     uint32_t                 mipLevels;
   2569     uint32_t                 arrayLayers;
   2570     VkSampleCountFlagBits    samples;
   2571     VkImageTiling            tiling;
   2572     VkImageUsageFlags        usage;
   2573     VkSharingMode            sharingMode;
   2574     uint32_t                 queueFamilyIndexCount;
   2575     const uint32_t*          pQueueFamilyIndices;
   2576     VkImageLayout            initialLayout;
   2577 } VkImageCreateInfo;
   2578 
   2579 typedef struct VkSubresourceLayout {
   2580     VkDeviceSize    offset;
   2581     VkDeviceSize    size;
   2582     VkDeviceSize    rowPitch;
   2583     VkDeviceSize    arrayPitch;
   2584     VkDeviceSize    depthPitch;
   2585 } VkSubresourceLayout;
   2586 
   2587 typedef struct VkComponentMapping {
   2588     VkComponentSwizzle    r;
   2589     VkComponentSwizzle    g;
   2590     VkComponentSwizzle    b;
   2591     VkComponentSwizzle    a;
   2592 } VkComponentMapping;
   2593 
   2594 typedef struct VkImageViewCreateInfo {
   2595     VkStructureType            sType;
   2596     const void*                pNext;
   2597     VkImageViewCreateFlags     flags;
   2598     VkImage                    image;
   2599     VkImageViewType            viewType;
   2600     VkFormat                   format;
   2601     VkComponentMapping         components;
   2602     VkImageSubresourceRange    subresourceRange;
   2603 } VkImageViewCreateInfo;
   2604 
   2605 typedef struct VkShaderModuleCreateInfo {
   2606     VkStructureType              sType;
   2607     const void*                  pNext;
   2608     VkShaderModuleCreateFlags    flags;
   2609     size_t                       codeSize;
   2610     const uint32_t*              pCode;
   2611 } VkShaderModuleCreateInfo;
   2612 
   2613 typedef struct VkPipelineCacheCreateInfo {
   2614     VkStructureType               sType;
   2615     const void*                   pNext;
   2616     VkPipelineCacheCreateFlags    flags;
   2617     size_t                        initialDataSize;
   2618     const void*                   pInitialData;
   2619 } VkPipelineCacheCreateInfo;
   2620 
   2621 typedef struct VkSpecializationMapEntry {
   2622     uint32_t    constantID;
   2623     uint32_t    offset;
   2624     size_t      size;
   2625 } VkSpecializationMapEntry;
   2626 
   2627 typedef struct VkSpecializationInfo {
   2628     uint32_t                           mapEntryCount;
   2629     const VkSpecializationMapEntry*    pMapEntries;
   2630     size_t                             dataSize;
   2631     const void*                        pData;
   2632 } VkSpecializationInfo;
   2633 
   2634 typedef struct VkPipelineShaderStageCreateInfo {
   2635     VkStructureType                     sType;
   2636     const void*                         pNext;
   2637     VkPipelineShaderStageCreateFlags    flags;
   2638     VkShaderStageFlagBits               stage;
   2639     VkShaderModule                      module;
   2640     const char*                         pName;
   2641     const VkSpecializationInfo*         pSpecializationInfo;
   2642 } VkPipelineShaderStageCreateInfo;
   2643 
   2644 typedef struct VkComputePipelineCreateInfo {
   2645     VkStructureType                    sType;
   2646     const void*                        pNext;
   2647     VkPipelineCreateFlags              flags;
   2648     VkPipelineShaderStageCreateInfo    stage;
   2649     VkPipelineLayout                   layout;
   2650     VkPipeline                         basePipelineHandle;
   2651     int32_t                            basePipelineIndex;
   2652 } VkComputePipelineCreateInfo;
   2653 
   2654 typedef struct VkVertexInputBindingDescription {
   2655     uint32_t             binding;
   2656     uint32_t             stride;
   2657     VkVertexInputRate    inputRate;
   2658 } VkVertexInputBindingDescription;
   2659 
   2660 typedef struct VkVertexInputAttributeDescription {
   2661     uint32_t    location;
   2662     uint32_t    binding;
   2663     VkFormat    format;
   2664     uint32_t    offset;
   2665 } VkVertexInputAttributeDescription;
   2666 
   2667 typedef struct VkPipelineVertexInputStateCreateInfo {
   2668     VkStructureType                             sType;
   2669     const void*                                 pNext;
   2670     VkPipelineVertexInputStateCreateFlags       flags;
   2671     uint32_t                                    vertexBindingDescriptionCount;
   2672     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
   2673     uint32_t                                    vertexAttributeDescriptionCount;
   2674     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
   2675 } VkPipelineVertexInputStateCreateInfo;
   2676 
   2677 typedef struct VkPipelineInputAssemblyStateCreateInfo {
   2678     VkStructureType                            sType;
   2679     const void*                                pNext;
   2680     VkPipelineInputAssemblyStateCreateFlags    flags;
   2681     VkPrimitiveTopology                        topology;
   2682     VkBool32                                   primitiveRestartEnable;
   2683 } VkPipelineInputAssemblyStateCreateInfo;
   2684 
   2685 typedef struct VkPipelineTessellationStateCreateInfo {
   2686     VkStructureType                           sType;
   2687     const void*                               pNext;
   2688     VkPipelineTessellationStateCreateFlags    flags;
   2689     uint32_t                                  patchControlPoints;
   2690 } VkPipelineTessellationStateCreateInfo;
   2691 
   2692 typedef struct VkViewport {
   2693     float    x;
   2694     float    y;
   2695     float    width;
   2696     float    height;
   2697     float    minDepth;
   2698     float    maxDepth;
   2699 } VkViewport;
   2700 
   2701 typedef struct VkPipelineViewportStateCreateInfo {
   2702     VkStructureType                       sType;
   2703     const void*                           pNext;
   2704     VkPipelineViewportStateCreateFlags    flags;
   2705     uint32_t                              viewportCount;
   2706     const VkViewport*                     pViewports;
   2707     uint32_t                              scissorCount;
   2708     const VkRect2D*                       pScissors;
   2709 } VkPipelineViewportStateCreateInfo;
   2710 
   2711 typedef struct VkPipelineRasterizationStateCreateInfo {
   2712     VkStructureType                            sType;
   2713     const void*                                pNext;
   2714     VkPipelineRasterizationStateCreateFlags    flags;
   2715     VkBool32                                   depthClampEnable;
   2716     VkBool32                                   rasterizerDiscardEnable;
   2717     VkPolygonMode                              polygonMode;
   2718     VkCullModeFlags                            cullMode;
   2719     VkFrontFace                                frontFace;
   2720     VkBool32                                   depthBiasEnable;
   2721     float                                      depthBiasConstantFactor;
   2722     float                                      depthBiasClamp;
   2723     float                                      depthBiasSlopeFactor;
   2724     float                                      lineWidth;
   2725 } VkPipelineRasterizationStateCreateInfo;
   2726 
   2727 typedef struct VkPipelineMultisampleStateCreateInfo {
   2728     VkStructureType                          sType;
   2729     const void*                              pNext;
   2730     VkPipelineMultisampleStateCreateFlags    flags;
   2731     VkSampleCountFlagBits                    rasterizationSamples;
   2732     VkBool32                                 sampleShadingEnable;
   2733     float                                    minSampleShading;
   2734     const VkSampleMask*                      pSampleMask;
   2735     VkBool32                                 alphaToCoverageEnable;
   2736     VkBool32                                 alphaToOneEnable;
   2737 } VkPipelineMultisampleStateCreateInfo;
   2738 
   2739 typedef struct VkStencilOpState {
   2740     VkStencilOp    failOp;
   2741     VkStencilOp    passOp;
   2742     VkStencilOp    depthFailOp;
   2743     VkCompareOp    compareOp;
   2744     uint32_t       compareMask;
   2745     uint32_t       writeMask;
   2746     uint32_t       reference;
   2747 } VkStencilOpState;
   2748 
   2749 typedef struct VkPipelineDepthStencilStateCreateInfo {
   2750     VkStructureType                           sType;
   2751     const void*                               pNext;
   2752     VkPipelineDepthStencilStateCreateFlags    flags;
   2753     VkBool32                                  depthTestEnable;
   2754     VkBool32                                  depthWriteEnable;
   2755     VkCompareOp                               depthCompareOp;
   2756     VkBool32                                  depthBoundsTestEnable;
   2757     VkBool32                                  stencilTestEnable;
   2758     VkStencilOpState                          front;
   2759     VkStencilOpState                          back;
   2760     float                                     minDepthBounds;
   2761     float                                     maxDepthBounds;
   2762 } VkPipelineDepthStencilStateCreateInfo;
   2763 
   2764 typedef struct VkPipelineColorBlendAttachmentState {
   2765     VkBool32                 blendEnable;
   2766     VkBlendFactor            srcColorBlendFactor;
   2767     VkBlendFactor            dstColorBlendFactor;
   2768     VkBlendOp                colorBlendOp;
   2769     VkBlendFactor            srcAlphaBlendFactor;
   2770     VkBlendFactor            dstAlphaBlendFactor;
   2771     VkBlendOp                alphaBlendOp;
   2772     VkColorComponentFlags    colorWriteMask;
   2773 } VkPipelineColorBlendAttachmentState;
   2774 
   2775 typedef struct VkPipelineColorBlendStateCreateInfo {
   2776     VkStructureType                               sType;
   2777     const void*                                   pNext;
   2778     VkPipelineColorBlendStateCreateFlags          flags;
   2779     VkBool32                                      logicOpEnable;
   2780     VkLogicOp                                     logicOp;
   2781     uint32_t                                      attachmentCount;
   2782     const VkPipelineColorBlendAttachmentState*    pAttachments;
   2783     float                                         blendConstants[4];
   2784 } VkPipelineColorBlendStateCreateInfo;
   2785 
   2786 typedef struct VkPipelineDynamicStateCreateInfo {
   2787     VkStructureType                      sType;
   2788     const void*                          pNext;
   2789     VkPipelineDynamicStateCreateFlags    flags;
   2790     uint32_t                             dynamicStateCount;
   2791     const VkDynamicState*                pDynamicStates;
   2792 } VkPipelineDynamicStateCreateInfo;
   2793 
   2794 typedef struct VkGraphicsPipelineCreateInfo {
   2795     VkStructureType                                  sType;
   2796     const void*                                      pNext;
   2797     VkPipelineCreateFlags                            flags;
   2798     uint32_t                                         stageCount;
   2799     const VkPipelineShaderStageCreateInfo*           pStages;
   2800     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
   2801     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
   2802     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
   2803     const VkPipelineViewportStateCreateInfo*         pViewportState;
   2804     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
   2805     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
   2806     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
   2807     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
   2808     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
   2809     VkPipelineLayout                                 layout;
   2810     VkRenderPass                                     renderPass;
   2811     uint32_t                                         subpass;
   2812     VkPipeline                                       basePipelineHandle;
   2813     int32_t                                          basePipelineIndex;
   2814 } VkGraphicsPipelineCreateInfo;
   2815 
   2816 typedef struct VkPushConstantRange {
   2817     VkShaderStageFlags    stageFlags;
   2818     uint32_t              offset;
   2819     uint32_t              size;
   2820 } VkPushConstantRange;
   2821 
   2822 typedef struct VkPipelineLayoutCreateInfo {
   2823     VkStructureType                 sType;
   2824     const void*                     pNext;
   2825     VkPipelineLayoutCreateFlags     flags;
   2826     uint32_t                        setLayoutCount;
   2827     const VkDescriptorSetLayout*    pSetLayouts;
   2828     uint32_t                        pushConstantRangeCount;
   2829     const VkPushConstantRange*      pPushConstantRanges;
   2830 } VkPipelineLayoutCreateInfo;
   2831 
   2832 typedef struct VkSamplerCreateInfo {
   2833     VkStructureType         sType;
   2834     const void*             pNext;
   2835     VkSamplerCreateFlags    flags;
   2836     VkFilter                magFilter;
   2837     VkFilter                minFilter;
   2838     VkSamplerMipmapMode     mipmapMode;
   2839     VkSamplerAddressMode    addressModeU;
   2840     VkSamplerAddressMode    addressModeV;
   2841     VkSamplerAddressMode    addressModeW;
   2842     float                   mipLodBias;
   2843     VkBool32                anisotropyEnable;
   2844     float                   maxAnisotropy;
   2845     VkBool32                compareEnable;
   2846     VkCompareOp             compareOp;
   2847     float                   minLod;
   2848     float                   maxLod;
   2849     VkBorderColor           borderColor;
   2850     VkBool32                unnormalizedCoordinates;
   2851 } VkSamplerCreateInfo;
   2852 
   2853 typedef struct VkCopyDescriptorSet {
   2854     VkStructureType    sType;
   2855     const void*        pNext;
   2856     VkDescriptorSet    srcSet;
   2857     uint32_t           srcBinding;
   2858     uint32_t           srcArrayElement;
   2859     VkDescriptorSet    dstSet;
   2860     uint32_t           dstBinding;
   2861     uint32_t           dstArrayElement;
   2862     uint32_t           descriptorCount;
   2863 } VkCopyDescriptorSet;
   2864 
   2865 typedef struct VkDescriptorBufferInfo {
   2866     VkBuffer        buffer;
   2867     VkDeviceSize    offset;
   2868     VkDeviceSize    range;
   2869 } VkDescriptorBufferInfo;
   2870 
   2871 typedef struct VkDescriptorImageInfo {
   2872     VkSampler        sampler;
   2873     VkImageView      imageView;
   2874     VkImageLayout    imageLayout;
   2875 } VkDescriptorImageInfo;
   2876 
   2877 typedef struct VkDescriptorPoolSize {
   2878     VkDescriptorType    type;
   2879     uint32_t            descriptorCount;
   2880 } VkDescriptorPoolSize;
   2881 
   2882 typedef struct VkDescriptorPoolCreateInfo {
   2883     VkStructureType                sType;
   2884     const void*                    pNext;
   2885     VkDescriptorPoolCreateFlags    flags;
   2886     uint32_t                       maxSets;
   2887     uint32_t                       poolSizeCount;
   2888     const VkDescriptorPoolSize*    pPoolSizes;
   2889 } VkDescriptorPoolCreateInfo;
   2890 
   2891 typedef struct VkDescriptorSetAllocateInfo {
   2892     VkStructureType                 sType;
   2893     const void*                     pNext;
   2894     VkDescriptorPool                descriptorPool;
   2895     uint32_t                        descriptorSetCount;
   2896     const VkDescriptorSetLayout*    pSetLayouts;
   2897 } VkDescriptorSetAllocateInfo;
   2898 
   2899 typedef struct VkDescriptorSetLayoutBinding {
   2900     uint32_t              binding;
   2901     VkDescriptorType      descriptorType;
   2902     uint32_t              descriptorCount;
   2903     VkShaderStageFlags    stageFlags;
   2904     const VkSampler*      pImmutableSamplers;
   2905 } VkDescriptorSetLayoutBinding;
   2906 
   2907 typedef struct VkDescriptorSetLayoutCreateInfo {
   2908     VkStructureType                        sType;
   2909     const void*                            pNext;
   2910     VkDescriptorSetLayoutCreateFlags       flags;
   2911     uint32_t                               bindingCount;
   2912     const VkDescriptorSetLayoutBinding*    pBindings;
   2913 } VkDescriptorSetLayoutCreateInfo;
   2914 
   2915 typedef struct VkWriteDescriptorSet {
   2916     VkStructureType                  sType;
   2917     const void*                      pNext;
   2918     VkDescriptorSet                  dstSet;
   2919     uint32_t                         dstBinding;
   2920     uint32_t                         dstArrayElement;
   2921     uint32_t                         descriptorCount;
   2922     VkDescriptorType                 descriptorType;
   2923     const VkDescriptorImageInfo*     pImageInfo;
   2924     const VkDescriptorBufferInfo*    pBufferInfo;
   2925     const VkBufferView*              pTexelBufferView;
   2926 } VkWriteDescriptorSet;
   2927 
   2928 typedef struct VkAttachmentDescription {
   2929     VkAttachmentDescriptionFlags    flags;
   2930     VkFormat                        format;
   2931     VkSampleCountFlagBits           samples;
   2932     VkAttachmentLoadOp              loadOp;
   2933     VkAttachmentStoreOp             storeOp;
   2934     VkAttachmentLoadOp              stencilLoadOp;
   2935     VkAttachmentStoreOp             stencilStoreOp;
   2936     VkImageLayout                   initialLayout;
   2937     VkImageLayout                   finalLayout;
   2938 } VkAttachmentDescription;
   2939 
   2940 typedef struct VkAttachmentReference {
   2941     uint32_t         attachment;
   2942     VkImageLayout    layout;
   2943 } VkAttachmentReference;
   2944 
   2945 typedef struct VkFramebufferCreateInfo {
   2946     VkStructureType             sType;
   2947     const void*                 pNext;
   2948     VkFramebufferCreateFlags    flags;
   2949     VkRenderPass                renderPass;
   2950     uint32_t                    attachmentCount;
   2951     const VkImageView*          pAttachments;
   2952     uint32_t                    width;
   2953     uint32_t                    height;
   2954     uint32_t                    layers;
   2955 } VkFramebufferCreateInfo;
   2956 
   2957 typedef struct VkSubpassDescription {
   2958     VkSubpassDescriptionFlags       flags;
   2959     VkPipelineBindPoint             pipelineBindPoint;
   2960     uint32_t                        inputAttachmentCount;
   2961     const VkAttachmentReference*    pInputAttachments;
   2962     uint32_t                        colorAttachmentCount;
   2963     const VkAttachmentReference*    pColorAttachments;
   2964     const VkAttachmentReference*    pResolveAttachments;
   2965     const VkAttachmentReference*    pDepthStencilAttachment;
   2966     uint32_t                        preserveAttachmentCount;
   2967     const uint32_t*                 pPreserveAttachments;
   2968 } VkSubpassDescription;
   2969 
   2970 typedef struct VkSubpassDependency {
   2971     uint32_t                srcSubpass;
   2972     uint32_t                dstSubpass;
   2973     VkPipelineStageFlags    srcStageMask;
   2974     VkPipelineStageFlags    dstStageMask;
   2975     VkAccessFlags           srcAccessMask;
   2976     VkAccessFlags           dstAccessMask;
   2977     VkDependencyFlags       dependencyFlags;
   2978 } VkSubpassDependency;
   2979 
   2980 typedef struct VkRenderPassCreateInfo {
   2981     VkStructureType                   sType;
   2982     const void*                       pNext;
   2983     VkRenderPassCreateFlags           flags;
   2984     uint32_t                          attachmentCount;
   2985     const VkAttachmentDescription*    pAttachments;
   2986     uint32_t                          subpassCount;
   2987     const VkSubpassDescription*       pSubpasses;
   2988     uint32_t                          dependencyCount;
   2989     const VkSubpassDependency*        pDependencies;
   2990 } VkRenderPassCreateInfo;
   2991 
   2992 typedef struct VkCommandPoolCreateInfo {
   2993     VkStructureType             sType;
   2994     const void*                 pNext;
   2995     VkCommandPoolCreateFlags    flags;
   2996     uint32_t                    queueFamilyIndex;
   2997 } VkCommandPoolCreateInfo;
   2998 
   2999 typedef struct VkCommandBufferAllocateInfo {
   3000     VkStructureType         sType;
   3001     const void*             pNext;
   3002     VkCommandPool           commandPool;
   3003     VkCommandBufferLevel    level;
   3004     uint32_t                commandBufferCount;
   3005 } VkCommandBufferAllocateInfo;
   3006 
   3007 typedef struct VkCommandBufferInheritanceInfo {
   3008     VkStructureType                  sType;
   3009     const void*                      pNext;
   3010     VkRenderPass                     renderPass;
   3011     uint32_t                         subpass;
   3012     VkFramebuffer                    framebuffer;
   3013     VkBool32                         occlusionQueryEnable;
   3014     VkQueryControlFlags              queryFlags;
   3015     VkQueryPipelineStatisticFlags    pipelineStatistics;
   3016 } VkCommandBufferInheritanceInfo;
   3017 
   3018 typedef struct VkCommandBufferBeginInfo {
   3019     VkStructureType                          sType;
   3020     const void*                              pNext;
   3021     VkCommandBufferUsageFlags                flags;
   3022     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
   3023 } VkCommandBufferBeginInfo;
   3024 
   3025 typedef struct VkBufferCopy {
   3026     VkDeviceSize    srcOffset;
   3027     VkDeviceSize    dstOffset;
   3028     VkDeviceSize    size;
   3029 } VkBufferCopy;
   3030 
   3031 typedef struct VkImageSubresourceLayers {
   3032     VkImageAspectFlags    aspectMask;
   3033     uint32_t              mipLevel;
   3034     uint32_t              baseArrayLayer;
   3035     uint32_t              layerCount;
   3036 } VkImageSubresourceLayers;
   3037 
   3038 typedef struct VkBufferImageCopy {
   3039     VkDeviceSize                bufferOffset;
   3040     uint32_t                    bufferRowLength;
   3041     uint32_t                    bufferImageHeight;
   3042     VkImageSubresourceLayers    imageSubresource;
   3043     VkOffset3D                  imageOffset;
   3044     VkExtent3D                  imageExtent;
   3045 } VkBufferImageCopy;
   3046 
   3047 typedef union VkClearColorValue {
   3048     float       float32[4];
   3049     int32_t     int32[4];
   3050     uint32_t    uint32[4];
   3051 } VkClearColorValue;
   3052 
   3053 typedef struct VkClearDepthStencilValue {
   3054     float       depth;
   3055     uint32_t    stencil;
   3056 } VkClearDepthStencilValue;
   3057 
   3058 typedef union VkClearValue {
   3059     VkClearColorValue           color;
   3060     VkClearDepthStencilValue    depthStencil;
   3061 } VkClearValue;
   3062 
   3063 typedef struct VkClearAttachment {
   3064     VkImageAspectFlags    aspectMask;
   3065     uint32_t              colorAttachment;
   3066     VkClearValue          clearValue;
   3067 } VkClearAttachment;
   3068 
   3069 typedef struct VkClearRect {
   3070     VkRect2D    rect;
   3071     uint32_t    baseArrayLayer;
   3072     uint32_t    layerCount;
   3073 } VkClearRect;
   3074 
   3075 typedef struct VkImageBlit {
   3076     VkImageSubresourceLayers    srcSubresource;
   3077     VkOffset3D                  srcOffsets[2];
   3078     VkImageSubresourceLayers    dstSubresource;
   3079     VkOffset3D                  dstOffsets[2];
   3080 } VkImageBlit;
   3081 
   3082 typedef struct VkImageCopy {
   3083     VkImageSubresourceLayers    srcSubresource;
   3084     VkOffset3D                  srcOffset;
   3085     VkImageSubresourceLayers    dstSubresource;
   3086     VkOffset3D                  dstOffset;
   3087     VkExtent3D                  extent;
   3088 } VkImageCopy;
   3089 
   3090 typedef struct VkImageResolve {
   3091     VkImageSubresourceLayers    srcSubresource;
   3092     VkOffset3D                  srcOffset;
   3093     VkImageSubresourceLayers    dstSubresource;
   3094     VkOffset3D                  dstOffset;
   3095     VkExtent3D                  extent;
   3096 } VkImageResolve;
   3097 
   3098 typedef struct VkRenderPassBeginInfo {
   3099     VkStructureType        sType;
   3100     const void*            pNext;
   3101     VkRenderPass           renderPass;
   3102     VkFramebuffer          framebuffer;
   3103     VkRect2D               renderArea;
   3104     uint32_t               clearValueCount;
   3105     const VkClearValue*    pClearValues;
   3106 } VkRenderPassBeginInfo;
   3107 
   3108 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
   3109 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
   3110 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
   3111 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
   3112 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
   3113 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
   3114 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
   3115 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
   3116 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
   3117 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
   3118 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
   3119 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
   3120 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
   3121 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
   3122 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
   3123 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
   3124 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
   3125 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
   3126 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
   3127 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
   3128 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
   3129 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
   3130 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
   3131 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
   3132 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
   3133 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
   3134 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
   3135 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
   3136 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   3137 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   3138 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
   3139 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
   3140 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
   3141 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
   3142 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
   3143 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
   3144 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
   3145 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
   3146 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
   3147 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
   3148 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
   3149 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
   3150 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
   3151 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
   3152 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
   3153 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
   3154 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
   3155 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
   3156 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
   3157 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);
   3158 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
   3159 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
   3160 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
   3161 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
   3162 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
   3163 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
   3164 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
   3165 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
   3166 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
   3167 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
   3168 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
   3169 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
   3170 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
   3171 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
   3172 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
   3173 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
   3174 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
   3175 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
   3176 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
   3177 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
   3178 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
   3179 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
   3180 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
   3181 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
   3182 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
   3183 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
   3184 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
   3185 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
   3186 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
   3187 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
   3188 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
   3189 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
   3190 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   3191 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
   3192 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
   3193 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
   3194 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
   3195 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
   3196 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
   3197 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
   3198 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
   3199 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
   3200 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
   3201 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
   3202 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
   3203 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
   3204 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
   3205 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
   3206 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
   3207 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
   3208 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
   3209 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
   3210 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
   3211 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);
   3212 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
   3213 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
   3214 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
   3215 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
   3216 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   3217 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   3218 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   3219 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
   3220 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
   3221 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
   3222 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
   3223 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
   3224 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
   3225 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
   3226 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
   3227 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
   3228 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
   3229 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
   3230 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
   3231 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   3232 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   3233 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);
   3234 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);
   3235 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
   3236 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
   3237 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   3238 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
   3239 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
   3240 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
   3241 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
   3242 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
   3243 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
   3244 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
   3245 
   3246 #ifndef VK_NO_PROTOTYPES
   3247 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
   3248     const VkInstanceCreateInfo*                 pCreateInfo,
   3249     const VkAllocationCallbacks*                pAllocator,
   3250     VkInstance*                                 pInstance);
   3251 
   3252 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
   3253     VkInstance                                  instance,
   3254     const VkAllocationCallbacks*                pAllocator);
   3255 
   3256 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
   3257     VkInstance                                  instance,
   3258     uint32_t*                                   pPhysicalDeviceCount,
   3259     VkPhysicalDevice*                           pPhysicalDevices);
   3260 
   3261 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
   3262     VkPhysicalDevice                            physicalDevice,
   3263     VkPhysicalDeviceFeatures*                   pFeatures);
   3264 
   3265 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
   3266     VkPhysicalDevice                            physicalDevice,
   3267     VkFormat                                    format,
   3268     VkFormatProperties*                         pFormatProperties);
   3269 
   3270 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
   3271     VkPhysicalDevice                            physicalDevice,
   3272     VkFormat                                    format,
   3273     VkImageType                                 type,
   3274     VkImageTiling                               tiling,
   3275     VkImageUsageFlags                           usage,
   3276     VkImageCreateFlags                          flags,
   3277     VkImageFormatProperties*                    pImageFormatProperties);
   3278 
   3279 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
   3280     VkPhysicalDevice                            physicalDevice,
   3281     VkPhysicalDeviceProperties*                 pProperties);
   3282 
   3283 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
   3284     VkPhysicalDevice                            physicalDevice,
   3285     uint32_t*                                   pQueueFamilyPropertyCount,
   3286     VkQueueFamilyProperties*                    pQueueFamilyProperties);
   3287 
   3288 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
   3289     VkPhysicalDevice                            physicalDevice,
   3290     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
   3291 
   3292 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
   3293     VkInstance                                  instance,
   3294     const char*                                 pName);
   3295 
   3296 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
   3297     VkDevice                                    device,
   3298     const char*                                 pName);
   3299 
   3300 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
   3301     VkPhysicalDevice                            physicalDevice,
   3302     const VkDeviceCreateInfo*                   pCreateInfo,
   3303     const VkAllocationCallbacks*                pAllocator,
   3304     VkDevice*                                   pDevice);
   3305 
   3306 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
   3307     VkDevice                                    device,
   3308     const VkAllocationCallbacks*                pAllocator);
   3309 
   3310 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
   3311     const char*                                 pLayerName,
   3312     uint32_t*                                   pPropertyCount,
   3313     VkExtensionProperties*                      pProperties);
   3314 
   3315 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
   3316     VkPhysicalDevice                            physicalDevice,
   3317     const char*                                 pLayerName,
   3318     uint32_t*                                   pPropertyCount,
   3319     VkExtensionProperties*                      pProperties);
   3320 
   3321 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
   3322     uint32_t*                                   pPropertyCount,
   3323     VkLayerProperties*                          pProperties);
   3324 
   3325 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
   3326     VkPhysicalDevice                            physicalDevice,
   3327     uint32_t*                                   pPropertyCount,
   3328     VkLayerProperties*                          pProperties);
   3329 
   3330 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
   3331     VkDevice                                    device,
   3332     uint32_t                                    queueFamilyIndex,
   3333     uint32_t                                    queueIndex,
   3334     VkQueue*                                    pQueue);
   3335 
   3336 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
   3337     VkQueue                                     queue,
   3338     uint32_t                                    submitCount,
   3339     const VkSubmitInfo*                         pSubmits,
   3340     VkFence                                     fence);
   3341 
   3342 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
   3343     VkQueue                                     queue);
   3344 
   3345 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
   3346     VkDevice                                    device);
   3347 
   3348 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
   3349     VkDevice                                    device,
   3350     const VkMemoryAllocateInfo*                 pAllocateInfo,
   3351     const VkAllocationCallbacks*                pAllocator,
   3352     VkDeviceMemory*                             pMemory);
   3353 
   3354 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
   3355     VkDevice                                    device,
   3356     VkDeviceMemory                              memory,
   3357     const VkAllocationCallbacks*                pAllocator);
   3358 
   3359 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
   3360     VkDevice                                    device,
   3361     VkDeviceMemory                              memory,
   3362     VkDeviceSize                                offset,
   3363     VkDeviceSize                                size,
   3364     VkMemoryMapFlags                            flags,
   3365     void**                                      ppData);
   3366 
   3367 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
   3368     VkDevice                                    device,
   3369     VkDeviceMemory                              memory);
   3370 
   3371 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
   3372     VkDevice                                    device,
   3373     uint32_t                                    memoryRangeCount,
   3374     const VkMappedMemoryRange*                  pMemoryRanges);
   3375 
   3376 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
   3377     VkDevice                                    device,
   3378     uint32_t                                    memoryRangeCount,
   3379     const VkMappedMemoryRange*                  pMemoryRanges);
   3380 
   3381 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
   3382     VkDevice                                    device,
   3383     VkDeviceMemory                              memory,
   3384     VkDeviceSize*                               pCommittedMemoryInBytes);
   3385 
   3386 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
   3387     VkDevice                                    device,
   3388     VkBuffer                                    buffer,
   3389     VkDeviceMemory                              memory,
   3390     VkDeviceSize                                memoryOffset);
   3391 
   3392 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
   3393     VkDevice                                    device,
   3394     VkImage                                     image,
   3395     VkDeviceMemory                              memory,
   3396     VkDeviceSize                                memoryOffset);
   3397 
   3398 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
   3399     VkDevice                                    device,
   3400     VkBuffer                                    buffer,
   3401     VkMemoryRequirements*                       pMemoryRequirements);
   3402 
   3403 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
   3404     VkDevice                                    device,
   3405     VkImage                                     image,
   3406     VkMemoryRequirements*                       pMemoryRequirements);
   3407 
   3408 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
   3409     VkDevice                                    device,
   3410     VkImage                                     image,
   3411     uint32_t*                                   pSparseMemoryRequirementCount,
   3412     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
   3413 
   3414 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
   3415     VkPhysicalDevice                            physicalDevice,
   3416     VkFormat                                    format,
   3417     VkImageType                                 type,
   3418     VkSampleCountFlagBits                       samples,
   3419     VkImageUsageFlags                           usage,
   3420     VkImageTiling                               tiling,
   3421     uint32_t*                                   pPropertyCount,
   3422     VkSparseImageFormatProperties*              pProperties);
   3423 
   3424 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
   3425     VkQueue                                     queue,
   3426     uint32_t                                    bindInfoCount,
   3427     const VkBindSparseInfo*                     pBindInfo,
   3428     VkFence                                     fence);
   3429 
   3430 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
   3431     VkDevice                                    device,
   3432     const VkFenceCreateInfo*                    pCreateInfo,
   3433     const VkAllocationCallbacks*                pAllocator,
   3434     VkFence*                                    pFence);
   3435 
   3436 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
   3437     VkDevice                                    device,
   3438     VkFence                                     fence,
   3439     const VkAllocationCallbacks*                pAllocator);
   3440 
   3441 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
   3442     VkDevice                                    device,
   3443     uint32_t                                    fenceCount,
   3444     const VkFence*                              pFences);
   3445 
   3446 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
   3447     VkDevice                                    device,
   3448     VkFence                                     fence);
   3449 
   3450 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
   3451     VkDevice                                    device,
   3452     uint32_t                                    fenceCount,
   3453     const VkFence*                              pFences,
   3454     VkBool32                                    waitAll,
   3455     uint64_t                                    timeout);
   3456 
   3457 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
   3458     VkDevice                                    device,
   3459     const VkSemaphoreCreateInfo*                pCreateInfo,
   3460     const VkAllocationCallbacks*                pAllocator,
   3461     VkSemaphore*                                pSemaphore);
   3462 
   3463 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
   3464     VkDevice                                    device,
   3465     VkSemaphore                                 semaphore,
   3466     const VkAllocationCallbacks*                pAllocator);
   3467 
   3468 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
   3469     VkDevice                                    device,
   3470     const VkEventCreateInfo*                    pCreateInfo,
   3471     const VkAllocationCallbacks*                pAllocator,
   3472     VkEvent*                                    pEvent);
   3473 
   3474 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
   3475     VkDevice                                    device,
   3476     VkEvent                                     event,
   3477     const VkAllocationCallbacks*                pAllocator);
   3478 
   3479 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
   3480     VkDevice                                    device,
   3481     VkEvent                                     event);
   3482 
   3483 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
   3484     VkDevice                                    device,
   3485     VkEvent                                     event);
   3486 
   3487 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
   3488     VkDevice                                    device,
   3489     VkEvent                                     event);
   3490 
   3491 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
   3492     VkDevice                                    device,
   3493     const VkQueryPoolCreateInfo*                pCreateInfo,
   3494     const VkAllocationCallbacks*                pAllocator,
   3495     VkQueryPool*                                pQueryPool);
   3496 
   3497 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
   3498     VkDevice                                    device,
   3499     VkQueryPool                                 queryPool,
   3500     const VkAllocationCallbacks*                pAllocator);
   3501 
   3502 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
   3503     VkDevice                                    device,
   3504     VkQueryPool                                 queryPool,
   3505     uint32_t                                    firstQuery,
   3506     uint32_t                                    queryCount,
   3507     size_t                                      dataSize,
   3508     void*                                       pData,
   3509     VkDeviceSize                                stride,
   3510     VkQueryResultFlags                          flags);
   3511 
   3512 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
   3513     VkDevice                                    device,
   3514     const VkBufferCreateInfo*                   pCreateInfo,
   3515     const VkAllocationCallbacks*                pAllocator,
   3516     VkBuffer*                                   pBuffer);
   3517 
   3518 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
   3519     VkDevice                                    device,
   3520     VkBuffer                                    buffer,
   3521     const VkAllocationCallbacks*                pAllocator);
   3522 
   3523 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
   3524     VkDevice                                    device,
   3525     const VkBufferViewCreateInfo*               pCreateInfo,
   3526     const VkAllocationCallbacks*                pAllocator,
   3527     VkBufferView*                               pView);
   3528 
   3529 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
   3530     VkDevice                                    device,
   3531     VkBufferView                                bufferView,
   3532     const VkAllocationCallbacks*                pAllocator);
   3533 
   3534 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
   3535     VkDevice                                    device,
   3536     const VkImageCreateInfo*                    pCreateInfo,
   3537     const VkAllocationCallbacks*                pAllocator,
   3538     VkImage*                                    pImage);
   3539 
   3540 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
   3541     VkDevice                                    device,
   3542     VkImage                                     image,
   3543     const VkAllocationCallbacks*                pAllocator);
   3544 
   3545 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
   3546     VkDevice                                    device,
   3547     VkImage                                     image,
   3548     const VkImageSubresource*                   pSubresource,
   3549     VkSubresourceLayout*                        pLayout);
   3550 
   3551 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
   3552     VkDevice                                    device,
   3553     const VkImageViewCreateInfo*                pCreateInfo,
   3554     const VkAllocationCallbacks*                pAllocator,
   3555     VkImageView*                                pView);
   3556 
   3557 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
   3558     VkDevice                                    device,
   3559     VkImageView                                 imageView,
   3560     const VkAllocationCallbacks*                pAllocator);
   3561 
   3562 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
   3563     VkDevice                                    device,
   3564     const VkShaderModuleCreateInfo*             pCreateInfo,
   3565     const VkAllocationCallbacks*                pAllocator,
   3566     VkShaderModule*                             pShaderModule);
   3567 
   3568 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
   3569     VkDevice                                    device,
   3570     VkShaderModule                              shaderModule,
   3571     const VkAllocationCallbacks*                pAllocator);
   3572 
   3573 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
   3574     VkDevice                                    device,
   3575     const VkPipelineCacheCreateInfo*            pCreateInfo,
   3576     const VkAllocationCallbacks*                pAllocator,
   3577     VkPipelineCache*                            pPipelineCache);
   3578 
   3579 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
   3580     VkDevice                                    device,
   3581     VkPipelineCache                             pipelineCache,
   3582     const VkAllocationCallbacks*                pAllocator);
   3583 
   3584 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
   3585     VkDevice                                    device,
   3586     VkPipelineCache                             pipelineCache,
   3587     size_t*                                     pDataSize,
   3588     void*                                       pData);
   3589 
   3590 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
   3591     VkDevice                                    device,
   3592     VkPipelineCache                             dstCache,
   3593     uint32_t                                    srcCacheCount,
   3594     const VkPipelineCache*                      pSrcCaches);
   3595 
   3596 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
   3597     VkDevice                                    device,
   3598     VkPipelineCache                             pipelineCache,
   3599     uint32_t                                    createInfoCount,
   3600     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
   3601     const VkAllocationCallbacks*                pAllocator,
   3602     VkPipeline*                                 pPipelines);
   3603 
   3604 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
   3605     VkDevice                                    device,
   3606     VkPipelineCache                             pipelineCache,
   3607     uint32_t                                    createInfoCount,
   3608     const VkComputePipelineCreateInfo*          pCreateInfos,
   3609     const VkAllocationCallbacks*                pAllocator,
   3610     VkPipeline*                                 pPipelines);
   3611 
   3612 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
   3613     VkDevice                                    device,
   3614     VkPipeline                                  pipeline,
   3615     const VkAllocationCallbacks*                pAllocator);
   3616 
   3617 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
   3618     VkDevice                                    device,
   3619     const VkPipelineLayoutCreateInfo*           pCreateInfo,
   3620     const VkAllocationCallbacks*                pAllocator,
   3621     VkPipelineLayout*                           pPipelineLayout);
   3622 
   3623 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
   3624     VkDevice                                    device,
   3625     VkPipelineLayout                            pipelineLayout,
   3626     const VkAllocationCallbacks*                pAllocator);
   3627 
   3628 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
   3629     VkDevice                                    device,
   3630     const VkSamplerCreateInfo*                  pCreateInfo,
   3631     const VkAllocationCallbacks*                pAllocator,
   3632     VkSampler*                                  pSampler);
   3633 
   3634 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
   3635     VkDevice                                    device,
   3636     VkSampler                                   sampler,
   3637     const VkAllocationCallbacks*                pAllocator);
   3638 
   3639 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
   3640     VkDevice                                    device,
   3641     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   3642     const VkAllocationCallbacks*                pAllocator,
   3643     VkDescriptorSetLayout*                      pSetLayout);
   3644 
   3645 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
   3646     VkDevice                                    device,
   3647     VkDescriptorSetLayout                       descriptorSetLayout,
   3648     const VkAllocationCallbacks*                pAllocator);
   3649 
   3650 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
   3651     VkDevice                                    device,
   3652     const VkDescriptorPoolCreateInfo*           pCreateInfo,
   3653     const VkAllocationCallbacks*                pAllocator,
   3654     VkDescriptorPool*                           pDescriptorPool);
   3655 
   3656 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
   3657     VkDevice                                    device,
   3658     VkDescriptorPool                            descriptorPool,
   3659     const VkAllocationCallbacks*                pAllocator);
   3660 
   3661 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
   3662     VkDevice                                    device,
   3663     VkDescriptorPool                            descriptorPool,
   3664     VkDescriptorPoolResetFlags                  flags);
   3665 
   3666 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
   3667     VkDevice                                    device,
   3668     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
   3669     VkDescriptorSet*                            pDescriptorSets);
   3670 
   3671 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
   3672     VkDevice                                    device,
   3673     VkDescriptorPool                            descriptorPool,
   3674     uint32_t                                    descriptorSetCount,
   3675     const VkDescriptorSet*                      pDescriptorSets);
   3676 
   3677 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
   3678     VkDevice                                    device,
   3679     uint32_t                                    descriptorWriteCount,
   3680     const VkWriteDescriptorSet*                 pDescriptorWrites,
   3681     uint32_t                                    descriptorCopyCount,
   3682     const VkCopyDescriptorSet*                  pDescriptorCopies);
   3683 
   3684 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
   3685     VkDevice                                    device,
   3686     const VkFramebufferCreateInfo*              pCreateInfo,
   3687     const VkAllocationCallbacks*                pAllocator,
   3688     VkFramebuffer*                              pFramebuffer);
   3689 
   3690 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
   3691     VkDevice                                    device,
   3692     VkFramebuffer                               framebuffer,
   3693     const VkAllocationCallbacks*                pAllocator);
   3694 
   3695 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
   3696     VkDevice                                    device,
   3697     const VkRenderPassCreateInfo*               pCreateInfo,
   3698     const VkAllocationCallbacks*                pAllocator,
   3699     VkRenderPass*                               pRenderPass);
   3700 
   3701 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
   3702     VkDevice                                    device,
   3703     VkRenderPass                                renderPass,
   3704     const VkAllocationCallbacks*                pAllocator);
   3705 
   3706 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
   3707     VkDevice                                    device,
   3708     VkRenderPass                                renderPass,
   3709     VkExtent2D*                                 pGranularity);
   3710 
   3711 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
   3712     VkDevice                                    device,
   3713     const VkCommandPoolCreateInfo*              pCreateInfo,
   3714     const VkAllocationCallbacks*                pAllocator,
   3715     VkCommandPool*                              pCommandPool);
   3716 
   3717 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
   3718     VkDevice                                    device,
   3719     VkCommandPool                               commandPool,
   3720     const VkAllocationCallbacks*                pAllocator);
   3721 
   3722 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
   3723     VkDevice                                    device,
   3724     VkCommandPool                               commandPool,
   3725     VkCommandPoolResetFlags                     flags);
   3726 
   3727 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
   3728     VkDevice                                    device,
   3729     const VkCommandBufferAllocateInfo*          pAllocateInfo,
   3730     VkCommandBuffer*                            pCommandBuffers);
   3731 
   3732 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
   3733     VkDevice                                    device,
   3734     VkCommandPool                               commandPool,
   3735     uint32_t                                    commandBufferCount,
   3736     const VkCommandBuffer*                      pCommandBuffers);
   3737 
   3738 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
   3739     VkCommandBuffer                             commandBuffer,
   3740     const VkCommandBufferBeginInfo*             pBeginInfo);
   3741 
   3742 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
   3743     VkCommandBuffer                             commandBuffer);
   3744 
   3745 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
   3746     VkCommandBuffer                             commandBuffer,
   3747     VkCommandBufferResetFlags                   flags);
   3748 
   3749 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
   3750     VkCommandBuffer                             commandBuffer,
   3751     VkPipelineBindPoint                         pipelineBindPoint,
   3752     VkPipeline                                  pipeline);
   3753 
   3754 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
   3755     VkCommandBuffer                             commandBuffer,
   3756     uint32_t                                    firstViewport,
   3757     uint32_t                                    viewportCount,
   3758     const VkViewport*                           pViewports);
   3759 
   3760 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
   3761     VkCommandBuffer                             commandBuffer,
   3762     uint32_t                                    firstScissor,
   3763     uint32_t                                    scissorCount,
   3764     const VkRect2D*                             pScissors);
   3765 
   3766 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
   3767     VkCommandBuffer                             commandBuffer,
   3768     float                                       lineWidth);
   3769 
   3770 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
   3771     VkCommandBuffer                             commandBuffer,
   3772     float                                       depthBiasConstantFactor,
   3773     float                                       depthBiasClamp,
   3774     float                                       depthBiasSlopeFactor);
   3775 
   3776 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
   3777     VkCommandBuffer                             commandBuffer,
   3778     const float                                 blendConstants[4]);
   3779 
   3780 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
   3781     VkCommandBuffer                             commandBuffer,
   3782     float                                       minDepthBounds,
   3783     float                                       maxDepthBounds);
   3784 
   3785 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
   3786     VkCommandBuffer                             commandBuffer,
   3787     VkStencilFaceFlags                          faceMask,
   3788     uint32_t                                    compareMask);
   3789 
   3790 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
   3791     VkCommandBuffer                             commandBuffer,
   3792     VkStencilFaceFlags                          faceMask,
   3793     uint32_t                                    writeMask);
   3794 
   3795 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
   3796     VkCommandBuffer                             commandBuffer,
   3797     VkStencilFaceFlags                          faceMask,
   3798     uint32_t                                    reference);
   3799 
   3800 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
   3801     VkCommandBuffer                             commandBuffer,
   3802     VkPipelineBindPoint                         pipelineBindPoint,
   3803     VkPipelineLayout                            layout,
   3804     uint32_t                                    firstSet,
   3805     uint32_t                                    descriptorSetCount,
   3806     const VkDescriptorSet*                      pDescriptorSets,
   3807     uint32_t                                    dynamicOffsetCount,
   3808     const uint32_t*                             pDynamicOffsets);
   3809 
   3810 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
   3811     VkCommandBuffer                             commandBuffer,
   3812     VkBuffer                                    buffer,
   3813     VkDeviceSize                                offset,
   3814     VkIndexType                                 indexType);
   3815 
   3816 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
   3817     VkCommandBuffer                             commandBuffer,
   3818     uint32_t                                    firstBinding,
   3819     uint32_t                                    bindingCount,
   3820     const VkBuffer*                             pBuffers,
   3821     const VkDeviceSize*                         pOffsets);
   3822 
   3823 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
   3824     VkCommandBuffer                             commandBuffer,
   3825     uint32_t                                    vertexCount,
   3826     uint32_t                                    instanceCount,
   3827     uint32_t                                    firstVertex,
   3828     uint32_t                                    firstInstance);
   3829 
   3830 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
   3831     VkCommandBuffer                             commandBuffer,
   3832     uint32_t                                    indexCount,
   3833     uint32_t                                    instanceCount,
   3834     uint32_t                                    firstIndex,
   3835     int32_t                                     vertexOffset,
   3836     uint32_t                                    firstInstance);
   3837 
   3838 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
   3839     VkCommandBuffer                             commandBuffer,
   3840     VkBuffer                                    buffer,
   3841     VkDeviceSize                                offset,
   3842     uint32_t                                    drawCount,
   3843     uint32_t                                    stride);
   3844 
   3845 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
   3846     VkCommandBuffer                             commandBuffer,
   3847     VkBuffer                                    buffer,
   3848     VkDeviceSize                                offset,
   3849     uint32_t                                    drawCount,
   3850     uint32_t                                    stride);
   3851 
   3852 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
   3853     VkCommandBuffer                             commandBuffer,
   3854     uint32_t                                    groupCountX,
   3855     uint32_t                                    groupCountY,
   3856     uint32_t                                    groupCountZ);
   3857 
   3858 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
   3859     VkCommandBuffer                             commandBuffer,
   3860     VkBuffer                                    buffer,
   3861     VkDeviceSize                                offset);
   3862 
   3863 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
   3864     VkCommandBuffer                             commandBuffer,
   3865     VkBuffer                                    srcBuffer,
   3866     VkBuffer                                    dstBuffer,
   3867     uint32_t                                    regionCount,
   3868     const VkBufferCopy*                         pRegions);
   3869 
   3870 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
   3871     VkCommandBuffer                             commandBuffer,
   3872     VkImage                                     srcImage,
   3873     VkImageLayout                               srcImageLayout,
   3874     VkImage                                     dstImage,
   3875     VkImageLayout                               dstImageLayout,
   3876     uint32_t                                    regionCount,
   3877     const VkImageCopy*                          pRegions);
   3878 
   3879 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
   3880     VkCommandBuffer                             commandBuffer,
   3881     VkImage                                     srcImage,
   3882     VkImageLayout                               srcImageLayout,
   3883     VkImage                                     dstImage,
   3884     VkImageLayout                               dstImageLayout,
   3885     uint32_t                                    regionCount,
   3886     const VkImageBlit*                          pRegions,
   3887     VkFilter                                    filter);
   3888 
   3889 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
   3890     VkCommandBuffer                             commandBuffer,
   3891     VkBuffer                                    srcBuffer,
   3892     VkImage                                     dstImage,
   3893     VkImageLayout                               dstImageLayout,
   3894     uint32_t                                    regionCount,
   3895     const VkBufferImageCopy*                    pRegions);
   3896 
   3897 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
   3898     VkCommandBuffer                             commandBuffer,
   3899     VkImage                                     srcImage,
   3900     VkImageLayout                               srcImageLayout,
   3901     VkBuffer                                    dstBuffer,
   3902     uint32_t                                    regionCount,
   3903     const VkBufferImageCopy*                    pRegions);
   3904 
   3905 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
   3906     VkCommandBuffer                             commandBuffer,
   3907     VkBuffer                                    dstBuffer,
   3908     VkDeviceSize                                dstOffset,
   3909     VkDeviceSize                                dataSize,
   3910     const void*                                 pData);
   3911 
   3912 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
   3913     VkCommandBuffer                             commandBuffer,
   3914     VkBuffer                                    dstBuffer,
   3915     VkDeviceSize                                dstOffset,
   3916     VkDeviceSize                                size,
   3917     uint32_t                                    data);
   3918 
   3919 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
   3920     VkCommandBuffer                             commandBuffer,
   3921     VkImage                                     image,
   3922     VkImageLayout                               imageLayout,
   3923     const VkClearColorValue*                    pColor,
   3924     uint32_t                                    rangeCount,
   3925     const VkImageSubresourceRange*              pRanges);
   3926 
   3927 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
   3928     VkCommandBuffer                             commandBuffer,
   3929     VkImage                                     image,
   3930     VkImageLayout                               imageLayout,
   3931     const VkClearDepthStencilValue*             pDepthStencil,
   3932     uint32_t                                    rangeCount,
   3933     const VkImageSubresourceRange*              pRanges);
   3934 
   3935 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
   3936     VkCommandBuffer                             commandBuffer,
   3937     uint32_t                                    attachmentCount,
   3938     const VkClearAttachment*                    pAttachments,
   3939     uint32_t                                    rectCount,
   3940     const VkClearRect*                          pRects);
   3941 
   3942 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
   3943     VkCommandBuffer                             commandBuffer,
   3944     VkImage                                     srcImage,
   3945     VkImageLayout                               srcImageLayout,
   3946     VkImage                                     dstImage,
   3947     VkImageLayout                               dstImageLayout,
   3948     uint32_t                                    regionCount,
   3949     const VkImageResolve*                       pRegions);
   3950 
   3951 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
   3952     VkCommandBuffer                             commandBuffer,
   3953     VkEvent                                     event,
   3954     VkPipelineStageFlags                        stageMask);
   3955 
   3956 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
   3957     VkCommandBuffer                             commandBuffer,
   3958     VkEvent                                     event,
   3959     VkPipelineStageFlags                        stageMask);
   3960 
   3961 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
   3962     VkCommandBuffer                             commandBuffer,
   3963     uint32_t                                    eventCount,
   3964     const VkEvent*                              pEvents,
   3965     VkPipelineStageFlags                        srcStageMask,
   3966     VkPipelineStageFlags                        dstStageMask,
   3967     uint32_t                                    memoryBarrierCount,
   3968     const VkMemoryBarrier*                      pMemoryBarriers,
   3969     uint32_t                                    bufferMemoryBarrierCount,
   3970     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
   3971     uint32_t                                    imageMemoryBarrierCount,
   3972     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
   3973 
   3974 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
   3975     VkCommandBuffer                             commandBuffer,
   3976     VkPipelineStageFlags                        srcStageMask,
   3977     VkPipelineStageFlags                        dstStageMask,
   3978     VkDependencyFlags                           dependencyFlags,
   3979     uint32_t                                    memoryBarrierCount,
   3980     const VkMemoryBarrier*                      pMemoryBarriers,
   3981     uint32_t                                    bufferMemoryBarrierCount,
   3982     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
   3983     uint32_t                                    imageMemoryBarrierCount,
   3984     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
   3985 
   3986 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
   3987     VkCommandBuffer                             commandBuffer,
   3988     VkQueryPool                                 queryPool,
   3989     uint32_t                                    query,
   3990     VkQueryControlFlags                         flags);
   3991 
   3992 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
   3993     VkCommandBuffer                             commandBuffer,
   3994     VkQueryPool                                 queryPool,
   3995     uint32_t                                    query);
   3996 
   3997 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
   3998     VkCommandBuffer                             commandBuffer,
   3999     VkQueryPool                                 queryPool,
   4000     uint32_t                                    firstQuery,
   4001     uint32_t                                    queryCount);
   4002 
   4003 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
   4004     VkCommandBuffer                             commandBuffer,
   4005     VkPipelineStageFlagBits                     pipelineStage,
   4006     VkQueryPool                                 queryPool,
   4007     uint32_t                                    query);
   4008 
   4009 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
   4010     VkCommandBuffer                             commandBuffer,
   4011     VkQueryPool                                 queryPool,
   4012     uint32_t                                    firstQuery,
   4013     uint32_t                                    queryCount,
   4014     VkBuffer                                    dstBuffer,
   4015     VkDeviceSize                                dstOffset,
   4016     VkDeviceSize                                stride,
   4017     VkQueryResultFlags                          flags);
   4018 
   4019 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
   4020     VkCommandBuffer                             commandBuffer,
   4021     VkPipelineLayout                            layout,
   4022     VkShaderStageFlags                          stageFlags,
   4023     uint32_t                                    offset,
   4024     uint32_t                                    size,
   4025     const void*                                 pValues);
   4026 
   4027 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
   4028     VkCommandBuffer                             commandBuffer,
   4029     const VkRenderPassBeginInfo*                pRenderPassBegin,
   4030     VkSubpassContents                           contents);
   4031 
   4032 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
   4033     VkCommandBuffer                             commandBuffer,
   4034     VkSubpassContents                           contents);
   4035 
   4036 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
   4037     VkCommandBuffer                             commandBuffer);
   4038 
   4039 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
   4040     VkCommandBuffer                             commandBuffer,
   4041     uint32_t                                    commandBufferCount,
   4042     const VkCommandBuffer*                      pCommandBuffers);
   4043 #endif
   4044 
   4045 
   4046 #define VK_VERSION_1_1 1
   4047 // Vulkan 1.1 version number
   4048 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
   4049 
   4050 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
   4051 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
   4052 #define VK_MAX_DEVICE_GROUP_SIZE          32
   4053 #define VK_LUID_SIZE                      8
   4054 #define VK_QUEUE_FAMILY_EXTERNAL          (~0U-1)
   4055 
   4056 typedef enum VkPointClippingBehavior {
   4057     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
   4058     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
   4059     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
   4060     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
   4061     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
   4062 } VkPointClippingBehavior;
   4063 
   4064 typedef enum VkTessellationDomainOrigin {
   4065     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
   4066     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
   4067     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
   4068     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
   4069     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
   4070 } VkTessellationDomainOrigin;
   4071 
   4072 typedef enum VkSamplerYcbcrModelConversion {
   4073     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
   4074     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
   4075     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
   4076     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
   4077     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
   4078     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
   4079     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
   4080     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
   4081     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
   4082     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
   4083     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
   4084 } VkSamplerYcbcrModelConversion;
   4085 
   4086 typedef enum VkSamplerYcbcrRange {
   4087     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
   4088     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
   4089     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
   4090     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
   4091     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
   4092 } VkSamplerYcbcrRange;
   4093 
   4094 typedef enum VkChromaLocation {
   4095     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
   4096     VK_CHROMA_LOCATION_MIDPOINT = 1,
   4097     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
   4098     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
   4099     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
   4100 } VkChromaLocation;
   4101 
   4102 typedef enum VkDescriptorUpdateTemplateType {
   4103     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
   4104     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
   4105     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
   4106     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
   4107 } VkDescriptorUpdateTemplateType;
   4108 
   4109 typedef enum VkSubgroupFeatureFlagBits {
   4110     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
   4111     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
   4112     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
   4113     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
   4114     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
   4115     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
   4116     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
   4117     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
   4118     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
   4119     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4120 } VkSubgroupFeatureFlagBits;
   4121 typedef VkFlags VkSubgroupFeatureFlags;
   4122 
   4123 typedef enum VkPeerMemoryFeatureFlagBits {
   4124     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
   4125     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
   4126     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
   4127     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
   4128     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
   4129     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
   4130     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
   4131     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
   4132     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4133 } VkPeerMemoryFeatureFlagBits;
   4134 typedef VkFlags VkPeerMemoryFeatureFlags;
   4135 
   4136 typedef enum VkMemoryAllocateFlagBits {
   4137     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
   4138     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
   4139     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
   4140     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
   4141     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
   4142     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
   4143     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4144 } VkMemoryAllocateFlagBits;
   4145 typedef VkFlags VkMemoryAllocateFlags;
   4146 typedef VkFlags VkCommandPoolTrimFlags;
   4147 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
   4148 
   4149 typedef enum VkExternalMemoryHandleTypeFlagBits {
   4150     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   4151     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   4152     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   4153     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
   4154     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
   4155     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
   4156     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
   4157     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
   4158     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
   4159     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
   4160     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
   4161     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
   4162     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   4163     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   4164     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
   4165     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
   4166     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
   4167     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
   4168     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4169 } VkExternalMemoryHandleTypeFlagBits;
   4170 typedef VkFlags VkExternalMemoryHandleTypeFlags;
   4171 
   4172 typedef enum VkExternalMemoryFeatureFlagBits {
   4173     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
   4174     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
   4175     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
   4176     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
   4177     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
   4178     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
   4179     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4180 } VkExternalMemoryFeatureFlagBits;
   4181 typedef VkFlags VkExternalMemoryFeatureFlags;
   4182 
   4183 typedef enum VkExternalFenceHandleTypeFlagBits {
   4184     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   4185     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   4186     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   4187     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
   4188     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
   4189     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   4190     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   4191     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
   4192     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4193 } VkExternalFenceHandleTypeFlagBits;
   4194 typedef VkFlags VkExternalFenceHandleTypeFlags;
   4195 
   4196 typedef enum VkExternalFenceFeatureFlagBits {
   4197     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
   4198     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
   4199     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
   4200     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
   4201     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4202 } VkExternalFenceFeatureFlagBits;
   4203 typedef VkFlags VkExternalFenceFeatureFlags;
   4204 
   4205 typedef enum VkFenceImportFlagBits {
   4206     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
   4207     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
   4208     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4209 } VkFenceImportFlagBits;
   4210 typedef VkFlags VkFenceImportFlags;
   4211 
   4212 typedef enum VkSemaphoreImportFlagBits {
   4213     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
   4214     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
   4215     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4216 } VkSemaphoreImportFlagBits;
   4217 typedef VkFlags VkSemaphoreImportFlags;
   4218 
   4219 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
   4220     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
   4221     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
   4222     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
   4223     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
   4224     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
   4225     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
   4226     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
   4227     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
   4228     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
   4229     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
   4230     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
   4231     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4232 } VkExternalSemaphoreHandleTypeFlagBits;
   4233 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
   4234 
   4235 typedef enum VkExternalSemaphoreFeatureFlagBits {
   4236     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
   4237     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
   4238     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
   4239     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
   4240     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4241 } VkExternalSemaphoreFeatureFlagBits;
   4242 typedef VkFlags VkExternalSemaphoreFeatureFlags;
   4243 typedef struct VkPhysicalDeviceSubgroupProperties {
   4244     VkStructureType           sType;
   4245     void*                     pNext;
   4246     uint32_t                  subgroupSize;
   4247     VkShaderStageFlags        supportedStages;
   4248     VkSubgroupFeatureFlags    supportedOperations;
   4249     VkBool32                  quadOperationsInAllStages;
   4250 } VkPhysicalDeviceSubgroupProperties;
   4251 
   4252 typedef struct VkBindBufferMemoryInfo {
   4253     VkStructureType    sType;
   4254     const void*        pNext;
   4255     VkBuffer           buffer;
   4256     VkDeviceMemory     memory;
   4257     VkDeviceSize       memoryOffset;
   4258 } VkBindBufferMemoryInfo;
   4259 
   4260 typedef struct VkBindImageMemoryInfo {
   4261     VkStructureType    sType;
   4262     const void*        pNext;
   4263     VkImage            image;
   4264     VkDeviceMemory     memory;
   4265     VkDeviceSize       memoryOffset;
   4266 } VkBindImageMemoryInfo;
   4267 
   4268 typedef struct VkPhysicalDevice16BitStorageFeatures {
   4269     VkStructureType    sType;
   4270     void*              pNext;
   4271     VkBool32           storageBuffer16BitAccess;
   4272     VkBool32           uniformAndStorageBuffer16BitAccess;
   4273     VkBool32           storagePushConstant16;
   4274     VkBool32           storageInputOutput16;
   4275 } VkPhysicalDevice16BitStorageFeatures;
   4276 
   4277 typedef struct VkMemoryDedicatedRequirements {
   4278     VkStructureType    sType;
   4279     void*              pNext;
   4280     VkBool32           prefersDedicatedAllocation;
   4281     VkBool32           requiresDedicatedAllocation;
   4282 } VkMemoryDedicatedRequirements;
   4283 
   4284 typedef struct VkMemoryDedicatedAllocateInfo {
   4285     VkStructureType    sType;
   4286     const void*        pNext;
   4287     VkImage            image;
   4288     VkBuffer           buffer;
   4289 } VkMemoryDedicatedAllocateInfo;
   4290 
   4291 typedef struct VkMemoryAllocateFlagsInfo {
   4292     VkStructureType          sType;
   4293     const void*              pNext;
   4294     VkMemoryAllocateFlags    flags;
   4295     uint32_t                 deviceMask;
   4296 } VkMemoryAllocateFlagsInfo;
   4297 
   4298 typedef struct VkDeviceGroupRenderPassBeginInfo {
   4299     VkStructureType    sType;
   4300     const void*        pNext;
   4301     uint32_t           deviceMask;
   4302     uint32_t           deviceRenderAreaCount;
   4303     const VkRect2D*    pDeviceRenderAreas;
   4304 } VkDeviceGroupRenderPassBeginInfo;
   4305 
   4306 typedef struct VkDeviceGroupCommandBufferBeginInfo {
   4307     VkStructureType    sType;
   4308     const void*        pNext;
   4309     uint32_t           deviceMask;
   4310 } VkDeviceGroupCommandBufferBeginInfo;
   4311 
   4312 typedef struct VkDeviceGroupSubmitInfo {
   4313     VkStructureType    sType;
   4314     const void*        pNext;
   4315     uint32_t           waitSemaphoreCount;
   4316     const uint32_t*    pWaitSemaphoreDeviceIndices;
   4317     uint32_t           commandBufferCount;
   4318     const uint32_t*    pCommandBufferDeviceMasks;
   4319     uint32_t           signalSemaphoreCount;
   4320     const uint32_t*    pSignalSemaphoreDeviceIndices;
   4321 } VkDeviceGroupSubmitInfo;
   4322 
   4323 typedef struct VkDeviceGroupBindSparseInfo {
   4324     VkStructureType    sType;
   4325     const void*        pNext;
   4326     uint32_t           resourceDeviceIndex;
   4327     uint32_t           memoryDeviceIndex;
   4328 } VkDeviceGroupBindSparseInfo;
   4329 
   4330 typedef struct VkBindBufferMemoryDeviceGroupInfo {
   4331     VkStructureType    sType;
   4332     const void*        pNext;
   4333     uint32_t           deviceIndexCount;
   4334     const uint32_t*    pDeviceIndices;
   4335 } VkBindBufferMemoryDeviceGroupInfo;
   4336 
   4337 typedef struct VkBindImageMemoryDeviceGroupInfo {
   4338     VkStructureType    sType;
   4339     const void*        pNext;
   4340     uint32_t           deviceIndexCount;
   4341     const uint32_t*    pDeviceIndices;
   4342     uint32_t           splitInstanceBindRegionCount;
   4343     const VkRect2D*    pSplitInstanceBindRegions;
   4344 } VkBindImageMemoryDeviceGroupInfo;
   4345 
   4346 typedef struct VkPhysicalDeviceGroupProperties {
   4347     VkStructureType     sType;
   4348     void*               pNext;
   4349     uint32_t            physicalDeviceCount;
   4350     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
   4351     VkBool32            subsetAllocation;
   4352 } VkPhysicalDeviceGroupProperties;
   4353 
   4354 typedef struct VkDeviceGroupDeviceCreateInfo {
   4355     VkStructureType            sType;
   4356     const void*                pNext;
   4357     uint32_t                   physicalDeviceCount;
   4358     const VkPhysicalDevice*    pPhysicalDevices;
   4359 } VkDeviceGroupDeviceCreateInfo;
   4360 
   4361 typedef struct VkBufferMemoryRequirementsInfo2 {
   4362     VkStructureType    sType;
   4363     const void*        pNext;
   4364     VkBuffer           buffer;
   4365 } VkBufferMemoryRequirementsInfo2;
   4366 
   4367 typedef struct VkImageMemoryRequirementsInfo2 {
   4368     VkStructureType    sType;
   4369     const void*        pNext;
   4370     VkImage            image;
   4371 } VkImageMemoryRequirementsInfo2;
   4372 
   4373 typedef struct VkImageSparseMemoryRequirementsInfo2 {
   4374     VkStructureType    sType;
   4375     const void*        pNext;
   4376     VkImage            image;
   4377 } VkImageSparseMemoryRequirementsInfo2;
   4378 
   4379 typedef struct VkMemoryRequirements2 {
   4380     VkStructureType         sType;
   4381     void*                   pNext;
   4382     VkMemoryRequirements    memoryRequirements;
   4383 } VkMemoryRequirements2;
   4384 
   4385 typedef struct VkSparseImageMemoryRequirements2 {
   4386     VkStructureType                    sType;
   4387     void*                              pNext;
   4388     VkSparseImageMemoryRequirements    memoryRequirements;
   4389 } VkSparseImageMemoryRequirements2;
   4390 
   4391 typedef struct VkPhysicalDeviceFeatures2 {
   4392     VkStructureType             sType;
   4393     void*                       pNext;
   4394     VkPhysicalDeviceFeatures    features;
   4395 } VkPhysicalDeviceFeatures2;
   4396 
   4397 typedef struct VkPhysicalDeviceProperties2 {
   4398     VkStructureType               sType;
   4399     void*                         pNext;
   4400     VkPhysicalDeviceProperties    properties;
   4401 } VkPhysicalDeviceProperties2;
   4402 
   4403 typedef struct VkFormatProperties2 {
   4404     VkStructureType       sType;
   4405     void*                 pNext;
   4406     VkFormatProperties    formatProperties;
   4407 } VkFormatProperties2;
   4408 
   4409 typedef struct VkImageFormatProperties2 {
   4410     VkStructureType            sType;
   4411     void*                      pNext;
   4412     VkImageFormatProperties    imageFormatProperties;
   4413 } VkImageFormatProperties2;
   4414 
   4415 typedef struct VkPhysicalDeviceImageFormatInfo2 {
   4416     VkStructureType       sType;
   4417     const void*           pNext;
   4418     VkFormat              format;
   4419     VkImageType           type;
   4420     VkImageTiling         tiling;
   4421     VkImageUsageFlags     usage;
   4422     VkImageCreateFlags    flags;
   4423 } VkPhysicalDeviceImageFormatInfo2;
   4424 
   4425 typedef struct VkQueueFamilyProperties2 {
   4426     VkStructureType            sType;
   4427     void*                      pNext;
   4428     VkQueueFamilyProperties    queueFamilyProperties;
   4429 } VkQueueFamilyProperties2;
   4430 
   4431 typedef struct VkPhysicalDeviceMemoryProperties2 {
   4432     VkStructureType                     sType;
   4433     void*                               pNext;
   4434     VkPhysicalDeviceMemoryProperties    memoryProperties;
   4435 } VkPhysicalDeviceMemoryProperties2;
   4436 
   4437 typedef struct VkSparseImageFormatProperties2 {
   4438     VkStructureType                  sType;
   4439     void*                            pNext;
   4440     VkSparseImageFormatProperties    properties;
   4441 } VkSparseImageFormatProperties2;
   4442 
   4443 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
   4444     VkStructureType          sType;
   4445     const void*              pNext;
   4446     VkFormat                 format;
   4447     VkImageType              type;
   4448     VkSampleCountFlagBits    samples;
   4449     VkImageUsageFlags        usage;
   4450     VkImageTiling            tiling;
   4451 } VkPhysicalDeviceSparseImageFormatInfo2;
   4452 
   4453 typedef struct VkPhysicalDevicePointClippingProperties {
   4454     VkStructureType            sType;
   4455     void*                      pNext;
   4456     VkPointClippingBehavior    pointClippingBehavior;
   4457 } VkPhysicalDevicePointClippingProperties;
   4458 
   4459 typedef struct VkInputAttachmentAspectReference {
   4460     uint32_t              subpass;
   4461     uint32_t              inputAttachmentIndex;
   4462     VkImageAspectFlags    aspectMask;
   4463 } VkInputAttachmentAspectReference;
   4464 
   4465 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
   4466     VkStructureType                            sType;
   4467     const void*                                pNext;
   4468     uint32_t                                   aspectReferenceCount;
   4469     const VkInputAttachmentAspectReference*    pAspectReferences;
   4470 } VkRenderPassInputAttachmentAspectCreateInfo;
   4471 
   4472 typedef struct VkImageViewUsageCreateInfo {
   4473     VkStructureType      sType;
   4474     const void*          pNext;
   4475     VkImageUsageFlags    usage;
   4476 } VkImageViewUsageCreateInfo;
   4477 
   4478 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
   4479     VkStructureType               sType;
   4480     const void*                   pNext;
   4481     VkTessellationDomainOrigin    domainOrigin;
   4482 } VkPipelineTessellationDomainOriginStateCreateInfo;
   4483 
   4484 typedef struct VkRenderPassMultiviewCreateInfo {
   4485     VkStructureType    sType;
   4486     const void*        pNext;
   4487     uint32_t           subpassCount;
   4488     const uint32_t*    pViewMasks;
   4489     uint32_t           dependencyCount;
   4490     const int32_t*     pViewOffsets;
   4491     uint32_t           correlationMaskCount;
   4492     const uint32_t*    pCorrelationMasks;
   4493 } VkRenderPassMultiviewCreateInfo;
   4494 
   4495 typedef struct VkPhysicalDeviceMultiviewFeatures {
   4496     VkStructureType    sType;
   4497     void*              pNext;
   4498     VkBool32           multiview;
   4499     VkBool32           multiviewGeometryShader;
   4500     VkBool32           multiviewTessellationShader;
   4501 } VkPhysicalDeviceMultiviewFeatures;
   4502 
   4503 typedef struct VkPhysicalDeviceMultiviewProperties {
   4504     VkStructureType    sType;
   4505     void*              pNext;
   4506     uint32_t           maxMultiviewViewCount;
   4507     uint32_t           maxMultiviewInstanceIndex;
   4508 } VkPhysicalDeviceMultiviewProperties;
   4509 
   4510 typedef struct VkPhysicalDeviceVariablePointersFeatures {
   4511     VkStructureType    sType;
   4512     void*              pNext;
   4513     VkBool32           variablePointersStorageBuffer;
   4514     VkBool32           variablePointers;
   4515 } VkPhysicalDeviceVariablePointersFeatures;
   4516 
   4517 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
   4518 
   4519 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
   4520     VkStructureType    sType;
   4521     void*              pNext;
   4522     VkBool32           protectedMemory;
   4523 } VkPhysicalDeviceProtectedMemoryFeatures;
   4524 
   4525 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
   4526     VkStructureType    sType;
   4527     void*              pNext;
   4528     VkBool32           protectedNoFault;
   4529 } VkPhysicalDeviceProtectedMemoryProperties;
   4530 
   4531 typedef struct VkDeviceQueueInfo2 {
   4532     VkStructureType             sType;
   4533     const void*                 pNext;
   4534     VkDeviceQueueCreateFlags    flags;
   4535     uint32_t                    queueFamilyIndex;
   4536     uint32_t                    queueIndex;
   4537 } VkDeviceQueueInfo2;
   4538 
   4539 typedef struct VkProtectedSubmitInfo {
   4540     VkStructureType    sType;
   4541     const void*        pNext;
   4542     VkBool32           protectedSubmit;
   4543 } VkProtectedSubmitInfo;
   4544 
   4545 typedef struct VkSamplerYcbcrConversionCreateInfo {
   4546     VkStructureType                  sType;
   4547     const void*                      pNext;
   4548     VkFormat                         format;
   4549     VkSamplerYcbcrModelConversion    ycbcrModel;
   4550     VkSamplerYcbcrRange              ycbcrRange;
   4551     VkComponentMapping               components;
   4552     VkChromaLocation                 xChromaOffset;
   4553     VkChromaLocation                 yChromaOffset;
   4554     VkFilter                         chromaFilter;
   4555     VkBool32                         forceExplicitReconstruction;
   4556 } VkSamplerYcbcrConversionCreateInfo;
   4557 
   4558 typedef struct VkSamplerYcbcrConversionInfo {
   4559     VkStructureType             sType;
   4560     const void*                 pNext;
   4561     VkSamplerYcbcrConversion    conversion;
   4562 } VkSamplerYcbcrConversionInfo;
   4563 
   4564 typedef struct VkBindImagePlaneMemoryInfo {
   4565     VkStructureType          sType;
   4566     const void*              pNext;
   4567     VkImageAspectFlagBits    planeAspect;
   4568 } VkBindImagePlaneMemoryInfo;
   4569 
   4570 typedef struct VkImagePlaneMemoryRequirementsInfo {
   4571     VkStructureType          sType;
   4572     const void*              pNext;
   4573     VkImageAspectFlagBits    planeAspect;
   4574 } VkImagePlaneMemoryRequirementsInfo;
   4575 
   4576 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
   4577     VkStructureType    sType;
   4578     void*              pNext;
   4579     VkBool32           samplerYcbcrConversion;
   4580 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
   4581 
   4582 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
   4583     VkStructureType    sType;
   4584     void*              pNext;
   4585     uint32_t           combinedImageSamplerDescriptorCount;
   4586 } VkSamplerYcbcrConversionImageFormatProperties;
   4587 
   4588 typedef struct VkDescriptorUpdateTemplateEntry {
   4589     uint32_t            dstBinding;
   4590     uint32_t            dstArrayElement;
   4591     uint32_t            descriptorCount;
   4592     VkDescriptorType    descriptorType;
   4593     size_t              offset;
   4594     size_t              stride;
   4595 } VkDescriptorUpdateTemplateEntry;
   4596 
   4597 typedef struct VkDescriptorUpdateTemplateCreateInfo {
   4598     VkStructureType                           sType;
   4599     const void*                               pNext;
   4600     VkDescriptorUpdateTemplateCreateFlags     flags;
   4601     uint32_t                                  descriptorUpdateEntryCount;
   4602     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
   4603     VkDescriptorUpdateTemplateType            templateType;
   4604     VkDescriptorSetLayout                     descriptorSetLayout;
   4605     VkPipelineBindPoint                       pipelineBindPoint;
   4606     VkPipelineLayout                          pipelineLayout;
   4607     uint32_t                                  set;
   4608 } VkDescriptorUpdateTemplateCreateInfo;
   4609 
   4610 typedef struct VkExternalMemoryProperties {
   4611     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
   4612     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
   4613     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
   4614 } VkExternalMemoryProperties;
   4615 
   4616 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
   4617     VkStructureType                       sType;
   4618     const void*                           pNext;
   4619     VkExternalMemoryHandleTypeFlagBits    handleType;
   4620 } VkPhysicalDeviceExternalImageFormatInfo;
   4621 
   4622 typedef struct VkExternalImageFormatProperties {
   4623     VkStructureType               sType;
   4624     void*                         pNext;
   4625     VkExternalMemoryProperties    externalMemoryProperties;
   4626 } VkExternalImageFormatProperties;
   4627 
   4628 typedef struct VkPhysicalDeviceExternalBufferInfo {
   4629     VkStructureType                       sType;
   4630     const void*                           pNext;
   4631     VkBufferCreateFlags                   flags;
   4632     VkBufferUsageFlags                    usage;
   4633     VkExternalMemoryHandleTypeFlagBits    handleType;
   4634 } VkPhysicalDeviceExternalBufferInfo;
   4635 
   4636 typedef struct VkExternalBufferProperties {
   4637     VkStructureType               sType;
   4638     void*                         pNext;
   4639     VkExternalMemoryProperties    externalMemoryProperties;
   4640 } VkExternalBufferProperties;
   4641 
   4642 typedef struct VkPhysicalDeviceIDProperties {
   4643     VkStructureType    sType;
   4644     void*              pNext;
   4645     uint8_t            deviceUUID[VK_UUID_SIZE];
   4646     uint8_t            driverUUID[VK_UUID_SIZE];
   4647     uint8_t            deviceLUID[VK_LUID_SIZE];
   4648     uint32_t           deviceNodeMask;
   4649     VkBool32           deviceLUIDValid;
   4650 } VkPhysicalDeviceIDProperties;
   4651 
   4652 typedef struct VkExternalMemoryImageCreateInfo {
   4653     VkStructureType                    sType;
   4654     const void*                        pNext;
   4655     VkExternalMemoryHandleTypeFlags    handleTypes;
   4656 } VkExternalMemoryImageCreateInfo;
   4657 
   4658 typedef struct VkExternalMemoryBufferCreateInfo {
   4659     VkStructureType                    sType;
   4660     const void*                        pNext;
   4661     VkExternalMemoryHandleTypeFlags    handleTypes;
   4662 } VkExternalMemoryBufferCreateInfo;
   4663 
   4664 typedef struct VkExportMemoryAllocateInfo {
   4665     VkStructureType                    sType;
   4666     const void*                        pNext;
   4667     VkExternalMemoryHandleTypeFlags    handleTypes;
   4668 } VkExportMemoryAllocateInfo;
   4669 
   4670 typedef struct VkPhysicalDeviceExternalFenceInfo {
   4671     VkStructureType                      sType;
   4672     const void*                          pNext;
   4673     VkExternalFenceHandleTypeFlagBits    handleType;
   4674 } VkPhysicalDeviceExternalFenceInfo;
   4675 
   4676 typedef struct VkExternalFenceProperties {
   4677     VkStructureType                   sType;
   4678     void*                             pNext;
   4679     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
   4680     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
   4681     VkExternalFenceFeatureFlags       externalFenceFeatures;
   4682 } VkExternalFenceProperties;
   4683 
   4684 typedef struct VkExportFenceCreateInfo {
   4685     VkStructureType                   sType;
   4686     const void*                       pNext;
   4687     VkExternalFenceHandleTypeFlags    handleTypes;
   4688 } VkExportFenceCreateInfo;
   4689 
   4690 typedef struct VkExportSemaphoreCreateInfo {
   4691     VkStructureType                       sType;
   4692     const void*                           pNext;
   4693     VkExternalSemaphoreHandleTypeFlags    handleTypes;
   4694 } VkExportSemaphoreCreateInfo;
   4695 
   4696 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
   4697     VkStructureType                          sType;
   4698     const void*                              pNext;
   4699     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   4700 } VkPhysicalDeviceExternalSemaphoreInfo;
   4701 
   4702 typedef struct VkExternalSemaphoreProperties {
   4703     VkStructureType                       sType;
   4704     void*                                 pNext;
   4705     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
   4706     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
   4707     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
   4708 } VkExternalSemaphoreProperties;
   4709 
   4710 typedef struct VkPhysicalDeviceMaintenance3Properties {
   4711     VkStructureType    sType;
   4712     void*              pNext;
   4713     uint32_t           maxPerSetDescriptors;
   4714     VkDeviceSize       maxMemoryAllocationSize;
   4715 } VkPhysicalDeviceMaintenance3Properties;
   4716 
   4717 typedef struct VkDescriptorSetLayoutSupport {
   4718     VkStructureType    sType;
   4719     void*              pNext;
   4720     VkBool32           supported;
   4721 } VkDescriptorSetLayoutSupport;
   4722 
   4723 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
   4724     VkStructureType    sType;
   4725     void*              pNext;
   4726     VkBool32           shaderDrawParameters;
   4727 } VkPhysicalDeviceShaderDrawParametersFeatures;
   4728 
   4729 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
   4730 
   4731 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
   4732 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
   4733 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
   4734 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
   4735 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
   4736 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);
   4737 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
   4738 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   4739 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   4740 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
   4741 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
   4742 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
   4743 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
   4744 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
   4745 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
   4746 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
   4747 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
   4748 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
   4749 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
   4750 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
   4751 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
   4752 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
   4753 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
   4754 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
   4755 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
   4756 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
   4757 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
   4758 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
   4759 
   4760 #ifndef VK_NO_PROTOTYPES
   4761 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
   4762     uint32_t*                                   pApiVersion);
   4763 
   4764 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
   4765     VkDevice                                    device,
   4766     uint32_t                                    bindInfoCount,
   4767     const VkBindBufferMemoryInfo*               pBindInfos);
   4768 
   4769 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
   4770     VkDevice                                    device,
   4771     uint32_t                                    bindInfoCount,
   4772     const VkBindImageMemoryInfo*                pBindInfos);
   4773 
   4774 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
   4775     VkDevice                                    device,
   4776     uint32_t                                    heapIndex,
   4777     uint32_t                                    localDeviceIndex,
   4778     uint32_t                                    remoteDeviceIndex,
   4779     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
   4780 
   4781 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
   4782     VkCommandBuffer                             commandBuffer,
   4783     uint32_t                                    deviceMask);
   4784 
   4785 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
   4786     VkCommandBuffer                             commandBuffer,
   4787     uint32_t                                    baseGroupX,
   4788     uint32_t                                    baseGroupY,
   4789     uint32_t                                    baseGroupZ,
   4790     uint32_t                                    groupCountX,
   4791     uint32_t                                    groupCountY,
   4792     uint32_t                                    groupCountZ);
   4793 
   4794 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
   4795     VkInstance                                  instance,
   4796     uint32_t*                                   pPhysicalDeviceGroupCount,
   4797     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
   4798 
   4799 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
   4800     VkDevice                                    device,
   4801     const VkImageMemoryRequirementsInfo2*       pInfo,
   4802     VkMemoryRequirements2*                      pMemoryRequirements);
   4803 
   4804 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
   4805     VkDevice                                    device,
   4806     const VkBufferMemoryRequirementsInfo2*      pInfo,
   4807     VkMemoryRequirements2*                      pMemoryRequirements);
   4808 
   4809 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
   4810     VkDevice                                    device,
   4811     const VkImageSparseMemoryRequirementsInfo2* pInfo,
   4812     uint32_t*                                   pSparseMemoryRequirementCount,
   4813     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
   4814 
   4815 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
   4816     VkPhysicalDevice                            physicalDevice,
   4817     VkPhysicalDeviceFeatures2*                  pFeatures);
   4818 
   4819 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
   4820     VkPhysicalDevice                            physicalDevice,
   4821     VkPhysicalDeviceProperties2*                pProperties);
   4822 
   4823 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
   4824     VkPhysicalDevice                            physicalDevice,
   4825     VkFormat                                    format,
   4826     VkFormatProperties2*                        pFormatProperties);
   4827 
   4828 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
   4829     VkPhysicalDevice                            physicalDevice,
   4830     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
   4831     VkImageFormatProperties2*                   pImageFormatProperties);
   4832 
   4833 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
   4834     VkPhysicalDevice                            physicalDevice,
   4835     uint32_t*                                   pQueueFamilyPropertyCount,
   4836     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
   4837 
   4838 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
   4839     VkPhysicalDevice                            physicalDevice,
   4840     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
   4841 
   4842 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
   4843     VkPhysicalDevice                            physicalDevice,
   4844     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
   4845     uint32_t*                                   pPropertyCount,
   4846     VkSparseImageFormatProperties2*             pProperties);
   4847 
   4848 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
   4849     VkDevice                                    device,
   4850     VkCommandPool                               commandPool,
   4851     VkCommandPoolTrimFlags                      flags);
   4852 
   4853 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
   4854     VkDevice                                    device,
   4855     const VkDeviceQueueInfo2*                   pQueueInfo,
   4856     VkQueue*                                    pQueue);
   4857 
   4858 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
   4859     VkDevice                                    device,
   4860     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
   4861     const VkAllocationCallbacks*                pAllocator,
   4862     VkSamplerYcbcrConversion*                   pYcbcrConversion);
   4863 
   4864 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
   4865     VkDevice                                    device,
   4866     VkSamplerYcbcrConversion                    ycbcrConversion,
   4867     const VkAllocationCallbacks*                pAllocator);
   4868 
   4869 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
   4870     VkDevice                                    device,
   4871     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
   4872     const VkAllocationCallbacks*                pAllocator,
   4873     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
   4874 
   4875 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
   4876     VkDevice                                    device,
   4877     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   4878     const VkAllocationCallbacks*                pAllocator);
   4879 
   4880 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
   4881     VkDevice                                    device,
   4882     VkDescriptorSet                             descriptorSet,
   4883     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   4884     const void*                                 pData);
   4885 
   4886 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
   4887     VkPhysicalDevice                            physicalDevice,
   4888     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
   4889     VkExternalBufferProperties*                 pExternalBufferProperties);
   4890 
   4891 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
   4892     VkPhysicalDevice                            physicalDevice,
   4893     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
   4894     VkExternalFenceProperties*                  pExternalFenceProperties);
   4895 
   4896 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
   4897     VkPhysicalDevice                            physicalDevice,
   4898     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
   4899     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
   4900 
   4901 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
   4902     VkDevice                                    device,
   4903     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   4904     VkDescriptorSetLayoutSupport*               pSupport);
   4905 #endif
   4906 
   4907 
   4908 #define VK_VERSION_1_2 1
   4909 // Vulkan 1.2 version number
   4910 #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
   4911 
   4912 #define VK_MAX_DRIVER_NAME_SIZE           256
   4913 #define VK_MAX_DRIVER_INFO_SIZE           256
   4914 
   4915 typedef enum VkDriverId {
   4916     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
   4917     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
   4918     VK_DRIVER_ID_MESA_RADV = 3,
   4919     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
   4920     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
   4921     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
   4922     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
   4923     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
   4924     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
   4925     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
   4926     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
   4927     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
   4928     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
   4929     VK_DRIVER_ID_MOLTENVK = 14,
   4930     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
   4931     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
   4932     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
   4933     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
   4934     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
   4935     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
   4936     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
   4937     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
   4938     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
   4939     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
   4940     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
   4941     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
   4942     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
   4943 } VkDriverId;
   4944 
   4945 typedef enum VkShaderFloatControlsIndependence {
   4946     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
   4947     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
   4948     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
   4949     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
   4950     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
   4951     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
   4952     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
   4953 } VkShaderFloatControlsIndependence;
   4954 
   4955 typedef enum VkSamplerReductionMode {
   4956     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
   4957     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
   4958     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
   4959     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
   4960     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
   4961     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
   4962     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
   4963 } VkSamplerReductionMode;
   4964 
   4965 typedef enum VkSemaphoreType {
   4966     VK_SEMAPHORE_TYPE_BINARY = 0,
   4967     VK_SEMAPHORE_TYPE_TIMELINE = 1,
   4968     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
   4969     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
   4970     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
   4971 } VkSemaphoreType;
   4972 
   4973 typedef enum VkResolveModeFlagBits {
   4974     VK_RESOLVE_MODE_NONE = 0,
   4975     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
   4976     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
   4977     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
   4978     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
   4979     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
   4980     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
   4981     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
   4982     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
   4983     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
   4984     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4985 } VkResolveModeFlagBits;
   4986 typedef VkFlags VkResolveModeFlags;
   4987 
   4988 typedef enum VkDescriptorBindingFlagBits {
   4989     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
   4990     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
   4991     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
   4992     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
   4993     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
   4994     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
   4995     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
   4996     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
   4997     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   4998 } VkDescriptorBindingFlagBits;
   4999 typedef VkFlags VkDescriptorBindingFlags;
   5000 
   5001 typedef enum VkSemaphoreWaitFlagBits {
   5002     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
   5003     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
   5004     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   5005 } VkSemaphoreWaitFlagBits;
   5006 typedef VkFlags VkSemaphoreWaitFlags;
   5007 typedef struct VkPhysicalDeviceVulkan11Features {
   5008     VkStructureType    sType;
   5009     void*              pNext;
   5010     VkBool32           storageBuffer16BitAccess;
   5011     VkBool32           uniformAndStorageBuffer16BitAccess;
   5012     VkBool32           storagePushConstant16;
   5013     VkBool32           storageInputOutput16;
   5014     VkBool32           multiview;
   5015     VkBool32           multiviewGeometryShader;
   5016     VkBool32           multiviewTessellationShader;
   5017     VkBool32           variablePointersStorageBuffer;
   5018     VkBool32           variablePointers;
   5019     VkBool32           protectedMemory;
   5020     VkBool32           samplerYcbcrConversion;
   5021     VkBool32           shaderDrawParameters;
   5022 } VkPhysicalDeviceVulkan11Features;
   5023 
   5024 typedef struct VkPhysicalDeviceVulkan11Properties {
   5025     VkStructureType            sType;
   5026     void*                      pNext;
   5027     uint8_t                    deviceUUID[VK_UUID_SIZE];
   5028     uint8_t                    driverUUID[VK_UUID_SIZE];
   5029     uint8_t                    deviceLUID[VK_LUID_SIZE];
   5030     uint32_t                   deviceNodeMask;
   5031     VkBool32                   deviceLUIDValid;
   5032     uint32_t                   subgroupSize;
   5033     VkShaderStageFlags         subgroupSupportedStages;
   5034     VkSubgroupFeatureFlags     subgroupSupportedOperations;
   5035     VkBool32                   subgroupQuadOperationsInAllStages;
   5036     VkPointClippingBehavior    pointClippingBehavior;
   5037     uint32_t                   maxMultiviewViewCount;
   5038     uint32_t                   maxMultiviewInstanceIndex;
   5039     VkBool32                   protectedNoFault;
   5040     uint32_t                   maxPerSetDescriptors;
   5041     VkDeviceSize               maxMemoryAllocationSize;
   5042 } VkPhysicalDeviceVulkan11Properties;
   5043 
   5044 typedef struct VkPhysicalDeviceVulkan12Features {
   5045     VkStructureType    sType;
   5046     void*              pNext;
   5047     VkBool32           samplerMirrorClampToEdge;
   5048     VkBool32           drawIndirectCount;
   5049     VkBool32           storageBuffer8BitAccess;
   5050     VkBool32           uniformAndStorageBuffer8BitAccess;
   5051     VkBool32           storagePushConstant8;
   5052     VkBool32           shaderBufferInt64Atomics;
   5053     VkBool32           shaderSharedInt64Atomics;
   5054     VkBool32           shaderFloat16;
   5055     VkBool32           shaderInt8;
   5056     VkBool32           descriptorIndexing;
   5057     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
   5058     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
   5059     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
   5060     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
   5061     VkBool32           shaderSampledImageArrayNonUniformIndexing;
   5062     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
   5063     VkBool32           shaderStorageImageArrayNonUniformIndexing;
   5064     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
   5065     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
   5066     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
   5067     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
   5068     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
   5069     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
   5070     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
   5071     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
   5072     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
   5073     VkBool32           descriptorBindingUpdateUnusedWhilePending;
   5074     VkBool32           descriptorBindingPartiallyBound;
   5075     VkBool32           descriptorBindingVariableDescriptorCount;
   5076     VkBool32           runtimeDescriptorArray;
   5077     VkBool32           samplerFilterMinmax;
   5078     VkBool32           scalarBlockLayout;
   5079     VkBool32           imagelessFramebuffer;
   5080     VkBool32           uniformBufferStandardLayout;
   5081     VkBool32           shaderSubgroupExtendedTypes;
   5082     VkBool32           separateDepthStencilLayouts;
   5083     VkBool32           hostQueryReset;
   5084     VkBool32           timelineSemaphore;
   5085     VkBool32           bufferDeviceAddress;
   5086     VkBool32           bufferDeviceAddressCaptureReplay;
   5087     VkBool32           bufferDeviceAddressMultiDevice;
   5088     VkBool32           vulkanMemoryModel;
   5089     VkBool32           vulkanMemoryModelDeviceScope;
   5090     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
   5091     VkBool32           shaderOutputViewportIndex;
   5092     VkBool32           shaderOutputLayer;
   5093     VkBool32           subgroupBroadcastDynamicId;
   5094 } VkPhysicalDeviceVulkan12Features;
   5095 
   5096 typedef struct VkConformanceVersion {
   5097     uint8_t    major;
   5098     uint8_t    minor;
   5099     uint8_t    subminor;
   5100     uint8_t    patch;
   5101 } VkConformanceVersion;
   5102 
   5103 typedef struct VkPhysicalDeviceVulkan12Properties {
   5104     VkStructureType                      sType;
   5105     void*                                pNext;
   5106     VkDriverId                           driverID;
   5107     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
   5108     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
   5109     VkConformanceVersion                 conformanceVersion;
   5110     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
   5111     VkShaderFloatControlsIndependence    roundingModeIndependence;
   5112     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
   5113     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
   5114     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
   5115     VkBool32                             shaderDenormPreserveFloat16;
   5116     VkBool32                             shaderDenormPreserveFloat32;
   5117     VkBool32                             shaderDenormPreserveFloat64;
   5118     VkBool32                             shaderDenormFlushToZeroFloat16;
   5119     VkBool32                             shaderDenormFlushToZeroFloat32;
   5120     VkBool32                             shaderDenormFlushToZeroFloat64;
   5121     VkBool32                             shaderRoundingModeRTEFloat16;
   5122     VkBool32                             shaderRoundingModeRTEFloat32;
   5123     VkBool32                             shaderRoundingModeRTEFloat64;
   5124     VkBool32                             shaderRoundingModeRTZFloat16;
   5125     VkBool32                             shaderRoundingModeRTZFloat32;
   5126     VkBool32                             shaderRoundingModeRTZFloat64;
   5127     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
   5128     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
   5129     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
   5130     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
   5131     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
   5132     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
   5133     VkBool32                             robustBufferAccessUpdateAfterBind;
   5134     VkBool32                             quadDivergentImplicitLod;
   5135     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
   5136     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   5137     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   5138     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
   5139     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
   5140     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
   5141     uint32_t                             maxPerStageUpdateAfterBindResources;
   5142     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
   5143     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
   5144     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   5145     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
   5146     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   5147     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
   5148     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
   5149     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
   5150     VkResolveModeFlags                   supportedDepthResolveModes;
   5151     VkResolveModeFlags                   supportedStencilResolveModes;
   5152     VkBool32                             independentResolveNone;
   5153     VkBool32                             independentResolve;
   5154     VkBool32                             filterMinmaxSingleComponentFormats;
   5155     VkBool32                             filterMinmaxImageComponentMapping;
   5156     uint64_t                             maxTimelineSemaphoreValueDifference;
   5157     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
   5158 } VkPhysicalDeviceVulkan12Properties;
   5159 
   5160 typedef struct VkImageFormatListCreateInfo {
   5161     VkStructureType    sType;
   5162     const void*        pNext;
   5163     uint32_t           viewFormatCount;
   5164     const VkFormat*    pViewFormats;
   5165 } VkImageFormatListCreateInfo;
   5166 
   5167 typedef struct VkAttachmentDescription2 {
   5168     VkStructureType                 sType;
   5169     const void*                     pNext;
   5170     VkAttachmentDescriptionFlags    flags;
   5171     VkFormat                        format;
   5172     VkSampleCountFlagBits           samples;
   5173     VkAttachmentLoadOp              loadOp;
   5174     VkAttachmentStoreOp             storeOp;
   5175     VkAttachmentLoadOp              stencilLoadOp;
   5176     VkAttachmentStoreOp             stencilStoreOp;
   5177     VkImageLayout                   initialLayout;
   5178     VkImageLayout                   finalLayout;
   5179 } VkAttachmentDescription2;
   5180 
   5181 typedef struct VkAttachmentReference2 {
   5182     VkStructureType       sType;
   5183     const void*           pNext;
   5184     uint32_t              attachment;
   5185     VkImageLayout         layout;
   5186     VkImageAspectFlags    aspectMask;
   5187 } VkAttachmentReference2;
   5188 
   5189 typedef struct VkSubpassDescription2 {
   5190     VkStructureType                  sType;
   5191     const void*                      pNext;
   5192     VkSubpassDescriptionFlags        flags;
   5193     VkPipelineBindPoint              pipelineBindPoint;
   5194     uint32_t                         viewMask;
   5195     uint32_t                         inputAttachmentCount;
   5196     const VkAttachmentReference2*    pInputAttachments;
   5197     uint32_t                         colorAttachmentCount;
   5198     const VkAttachmentReference2*    pColorAttachments;
   5199     const VkAttachmentReference2*    pResolveAttachments;
   5200     const VkAttachmentReference2*    pDepthStencilAttachment;
   5201     uint32_t                         preserveAttachmentCount;
   5202     const uint32_t*                  pPreserveAttachments;
   5203 } VkSubpassDescription2;
   5204 
   5205 typedef struct VkSubpassDependency2 {
   5206     VkStructureType         sType;
   5207     const void*             pNext;
   5208     uint32_t                srcSubpass;
   5209     uint32_t                dstSubpass;
   5210     VkPipelineStageFlags    srcStageMask;
   5211     VkPipelineStageFlags    dstStageMask;
   5212     VkAccessFlags           srcAccessMask;
   5213     VkAccessFlags           dstAccessMask;
   5214     VkDependencyFlags       dependencyFlags;
   5215     int32_t                 viewOffset;
   5216 } VkSubpassDependency2;
   5217 
   5218 typedef struct VkRenderPassCreateInfo2 {
   5219     VkStructureType                    sType;
   5220     const void*                        pNext;
   5221     VkRenderPassCreateFlags            flags;
   5222     uint32_t                           attachmentCount;
   5223     const VkAttachmentDescription2*    pAttachments;
   5224     uint32_t                           subpassCount;
   5225     const VkSubpassDescription2*       pSubpasses;
   5226     uint32_t                           dependencyCount;
   5227     const VkSubpassDependency2*        pDependencies;
   5228     uint32_t                           correlatedViewMaskCount;
   5229     const uint32_t*                    pCorrelatedViewMasks;
   5230 } VkRenderPassCreateInfo2;
   5231 
   5232 typedef struct VkSubpassBeginInfo {
   5233     VkStructureType      sType;
   5234     const void*          pNext;
   5235     VkSubpassContents    contents;
   5236 } VkSubpassBeginInfo;
   5237 
   5238 typedef struct VkSubpassEndInfo {
   5239     VkStructureType    sType;
   5240     const void*        pNext;
   5241 } VkSubpassEndInfo;
   5242 
   5243 typedef struct VkPhysicalDevice8BitStorageFeatures {
   5244     VkStructureType    sType;
   5245     void*              pNext;
   5246     VkBool32           storageBuffer8BitAccess;
   5247     VkBool32           uniformAndStorageBuffer8BitAccess;
   5248     VkBool32           storagePushConstant8;
   5249 } VkPhysicalDevice8BitStorageFeatures;
   5250 
   5251 typedef struct VkPhysicalDeviceDriverProperties {
   5252     VkStructureType         sType;
   5253     void*                   pNext;
   5254     VkDriverId              driverID;
   5255     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
   5256     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
   5257     VkConformanceVersion    conformanceVersion;
   5258 } VkPhysicalDeviceDriverProperties;
   5259 
   5260 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
   5261     VkStructureType    sType;
   5262     void*              pNext;
   5263     VkBool32           shaderBufferInt64Atomics;
   5264     VkBool32           shaderSharedInt64Atomics;
   5265 } VkPhysicalDeviceShaderAtomicInt64Features;
   5266 
   5267 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
   5268     VkStructureType    sType;
   5269     void*              pNext;
   5270     VkBool32           shaderFloat16;
   5271     VkBool32           shaderInt8;
   5272 } VkPhysicalDeviceShaderFloat16Int8Features;
   5273 
   5274 typedef struct VkPhysicalDeviceFloatControlsProperties {
   5275     VkStructureType                      sType;
   5276     void*                                pNext;
   5277     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
   5278     VkShaderFloatControlsIndependence    roundingModeIndependence;
   5279     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
   5280     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
   5281     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
   5282     VkBool32                             shaderDenormPreserveFloat16;
   5283     VkBool32                             shaderDenormPreserveFloat32;
   5284     VkBool32                             shaderDenormPreserveFloat64;
   5285     VkBool32                             shaderDenormFlushToZeroFloat16;
   5286     VkBool32                             shaderDenormFlushToZeroFloat32;
   5287     VkBool32                             shaderDenormFlushToZeroFloat64;
   5288     VkBool32                             shaderRoundingModeRTEFloat16;
   5289     VkBool32                             shaderRoundingModeRTEFloat32;
   5290     VkBool32                             shaderRoundingModeRTEFloat64;
   5291     VkBool32                             shaderRoundingModeRTZFloat16;
   5292     VkBool32                             shaderRoundingModeRTZFloat32;
   5293     VkBool32                             shaderRoundingModeRTZFloat64;
   5294 } VkPhysicalDeviceFloatControlsProperties;
   5295 
   5296 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
   5297     VkStructureType                    sType;
   5298     const void*                        pNext;
   5299     uint32_t                           bindingCount;
   5300     const VkDescriptorBindingFlags*    pBindingFlags;
   5301 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
   5302 
   5303 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
   5304     VkStructureType    sType;
   5305     void*              pNext;
   5306     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
   5307     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
   5308     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
   5309     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
   5310     VkBool32           shaderSampledImageArrayNonUniformIndexing;
   5311     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
   5312     VkBool32           shaderStorageImageArrayNonUniformIndexing;
   5313     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
   5314     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
   5315     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
   5316     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
   5317     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
   5318     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
   5319     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
   5320     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
   5321     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
   5322     VkBool32           descriptorBindingUpdateUnusedWhilePending;
   5323     VkBool32           descriptorBindingPartiallyBound;
   5324     VkBool32           descriptorBindingVariableDescriptorCount;
   5325     VkBool32           runtimeDescriptorArray;
   5326 } VkPhysicalDeviceDescriptorIndexingFeatures;
   5327 
   5328 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
   5329     VkStructureType    sType;
   5330     void*              pNext;
   5331     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
   5332     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
   5333     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
   5334     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
   5335     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
   5336     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
   5337     VkBool32           robustBufferAccessUpdateAfterBind;
   5338     VkBool32           quadDivergentImplicitLod;
   5339     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
   5340     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   5341     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   5342     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
   5343     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
   5344     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
   5345     uint32_t           maxPerStageUpdateAfterBindResources;
   5346     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
   5347     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
   5348     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   5349     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
   5350     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   5351     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
   5352     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
   5353     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
   5354 } VkPhysicalDeviceDescriptorIndexingProperties;
   5355 
   5356 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
   5357     VkStructureType    sType;
   5358     const void*        pNext;
   5359     uint32_t           descriptorSetCount;
   5360     const uint32_t*    pDescriptorCounts;
   5361 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
   5362 
   5363 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
   5364     VkStructureType    sType;
   5365     void*              pNext;
   5366     uint32_t           maxVariableDescriptorCount;
   5367 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
   5368 
   5369 typedef struct VkSubpassDescriptionDepthStencilResolve {
   5370     VkStructureType                  sType;
   5371     const void*                      pNext;
   5372     VkResolveModeFlagBits            depthResolveMode;
   5373     VkResolveModeFlagBits            stencilResolveMode;
   5374     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
   5375 } VkSubpassDescriptionDepthStencilResolve;
   5376 
   5377 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
   5378     VkStructureType       sType;
   5379     void*                 pNext;
   5380     VkResolveModeFlags    supportedDepthResolveModes;
   5381     VkResolveModeFlags    supportedStencilResolveModes;
   5382     VkBool32              independentResolveNone;
   5383     VkBool32              independentResolve;
   5384 } VkPhysicalDeviceDepthStencilResolveProperties;
   5385 
   5386 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
   5387     VkStructureType    sType;
   5388     void*              pNext;
   5389     VkBool32           scalarBlockLayout;
   5390 } VkPhysicalDeviceScalarBlockLayoutFeatures;
   5391 
   5392 typedef struct VkImageStencilUsageCreateInfo {
   5393     VkStructureType      sType;
   5394     const void*          pNext;
   5395     VkImageUsageFlags    stencilUsage;
   5396 } VkImageStencilUsageCreateInfo;
   5397 
   5398 typedef struct VkSamplerReductionModeCreateInfo {
   5399     VkStructureType           sType;
   5400     const void*               pNext;
   5401     VkSamplerReductionMode    reductionMode;
   5402 } VkSamplerReductionModeCreateInfo;
   5403 
   5404 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
   5405     VkStructureType    sType;
   5406     void*              pNext;
   5407     VkBool32           filterMinmaxSingleComponentFormats;
   5408     VkBool32           filterMinmaxImageComponentMapping;
   5409 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
   5410 
   5411 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
   5412     VkStructureType    sType;
   5413     void*              pNext;
   5414     VkBool32           vulkanMemoryModel;
   5415     VkBool32           vulkanMemoryModelDeviceScope;
   5416     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
   5417 } VkPhysicalDeviceVulkanMemoryModelFeatures;
   5418 
   5419 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
   5420     VkStructureType    sType;
   5421     void*              pNext;
   5422     VkBool32           imagelessFramebuffer;
   5423 } VkPhysicalDeviceImagelessFramebufferFeatures;
   5424 
   5425 typedef struct VkFramebufferAttachmentImageInfo {
   5426     VkStructureType       sType;
   5427     const void*           pNext;
   5428     VkImageCreateFlags    flags;
   5429     VkImageUsageFlags     usage;
   5430     uint32_t              width;
   5431     uint32_t              height;
   5432     uint32_t              layerCount;
   5433     uint32_t              viewFormatCount;
   5434     const VkFormat*       pViewFormats;
   5435 } VkFramebufferAttachmentImageInfo;
   5436 
   5437 typedef struct VkFramebufferAttachmentsCreateInfo {
   5438     VkStructureType                            sType;
   5439     const void*                                pNext;
   5440     uint32_t                                   attachmentImageInfoCount;
   5441     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
   5442 } VkFramebufferAttachmentsCreateInfo;
   5443 
   5444 typedef struct VkRenderPassAttachmentBeginInfo {
   5445     VkStructureType       sType;
   5446     const void*           pNext;
   5447     uint32_t              attachmentCount;
   5448     const VkImageView*    pAttachments;
   5449 } VkRenderPassAttachmentBeginInfo;
   5450 
   5451 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
   5452     VkStructureType    sType;
   5453     void*              pNext;
   5454     VkBool32           uniformBufferStandardLayout;
   5455 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
   5456 
   5457 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
   5458     VkStructureType    sType;
   5459     void*              pNext;
   5460     VkBool32           shaderSubgroupExtendedTypes;
   5461 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
   5462 
   5463 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
   5464     VkStructureType    sType;
   5465     void*              pNext;
   5466     VkBool32           separateDepthStencilLayouts;
   5467 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
   5468 
   5469 typedef struct VkAttachmentReferenceStencilLayout {
   5470     VkStructureType    sType;
   5471     void*              pNext;
   5472     VkImageLayout      stencilLayout;
   5473 } VkAttachmentReferenceStencilLayout;
   5474 
   5475 typedef struct VkAttachmentDescriptionStencilLayout {
   5476     VkStructureType    sType;
   5477     void*              pNext;
   5478     VkImageLayout      stencilInitialLayout;
   5479     VkImageLayout      stencilFinalLayout;
   5480 } VkAttachmentDescriptionStencilLayout;
   5481 
   5482 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
   5483     VkStructureType    sType;
   5484     void*              pNext;
   5485     VkBool32           hostQueryReset;
   5486 } VkPhysicalDeviceHostQueryResetFeatures;
   5487 
   5488 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
   5489     VkStructureType    sType;
   5490     void*              pNext;
   5491     VkBool32           timelineSemaphore;
   5492 } VkPhysicalDeviceTimelineSemaphoreFeatures;
   5493 
   5494 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
   5495     VkStructureType    sType;
   5496     void*              pNext;
   5497     uint64_t           maxTimelineSemaphoreValueDifference;
   5498 } VkPhysicalDeviceTimelineSemaphoreProperties;
   5499 
   5500 typedef struct VkSemaphoreTypeCreateInfo {
   5501     VkStructureType    sType;
   5502     const void*        pNext;
   5503     VkSemaphoreType    semaphoreType;
   5504     uint64_t           initialValue;
   5505 } VkSemaphoreTypeCreateInfo;
   5506 
   5507 typedef struct VkTimelineSemaphoreSubmitInfo {
   5508     VkStructureType    sType;
   5509     const void*        pNext;
   5510     uint32_t           waitSemaphoreValueCount;
   5511     const uint64_t*    pWaitSemaphoreValues;
   5512     uint32_t           signalSemaphoreValueCount;
   5513     const uint64_t*    pSignalSemaphoreValues;
   5514 } VkTimelineSemaphoreSubmitInfo;
   5515 
   5516 typedef struct VkSemaphoreWaitInfo {
   5517     VkStructureType         sType;
   5518     const void*             pNext;
   5519     VkSemaphoreWaitFlags    flags;
   5520     uint32_t                semaphoreCount;
   5521     const VkSemaphore*      pSemaphores;
   5522     const uint64_t*         pValues;
   5523 } VkSemaphoreWaitInfo;
   5524 
   5525 typedef struct VkSemaphoreSignalInfo {
   5526     VkStructureType    sType;
   5527     const void*        pNext;
   5528     VkSemaphore        semaphore;
   5529     uint64_t           value;
   5530 } VkSemaphoreSignalInfo;
   5531 
   5532 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
   5533     VkStructureType    sType;
   5534     void*              pNext;
   5535     VkBool32           bufferDeviceAddress;
   5536     VkBool32           bufferDeviceAddressCaptureReplay;
   5537     VkBool32           bufferDeviceAddressMultiDevice;
   5538 } VkPhysicalDeviceBufferDeviceAddressFeatures;
   5539 
   5540 typedef struct VkBufferDeviceAddressInfo {
   5541     VkStructureType    sType;
   5542     const void*        pNext;
   5543     VkBuffer           buffer;
   5544 } VkBufferDeviceAddressInfo;
   5545 
   5546 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
   5547     VkStructureType    sType;
   5548     const void*        pNext;
   5549     uint64_t           opaqueCaptureAddress;
   5550 } VkBufferOpaqueCaptureAddressCreateInfo;
   5551 
   5552 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
   5553     VkStructureType    sType;
   5554     const void*        pNext;
   5555     uint64_t           opaqueCaptureAddress;
   5556 } VkMemoryOpaqueCaptureAddressAllocateInfo;
   5557 
   5558 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
   5559     VkStructureType    sType;
   5560     const void*        pNext;
   5561     VkDeviceMemory     memory;
   5562 } VkDeviceMemoryOpaqueCaptureAddressInfo;
   5563 
   5564 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   5565 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   5566 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   5567 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
   5568 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
   5569 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
   5570 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   5571 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
   5572 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
   5573 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
   5574 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   5575 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   5576 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   5577 
   5578 #ifndef VK_NO_PROTOTYPES
   5579 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
   5580     VkCommandBuffer                             commandBuffer,
   5581     VkBuffer                                    buffer,
   5582     VkDeviceSize                                offset,
   5583     VkBuffer                                    countBuffer,
   5584     VkDeviceSize                                countBufferOffset,
   5585     uint32_t                                    maxDrawCount,
   5586     uint32_t                                    stride);
   5587 
   5588 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
   5589     VkCommandBuffer                             commandBuffer,
   5590     VkBuffer                                    buffer,
   5591     VkDeviceSize                                offset,
   5592     VkBuffer                                    countBuffer,
   5593     VkDeviceSize                                countBufferOffset,
   5594     uint32_t                                    maxDrawCount,
   5595     uint32_t                                    stride);
   5596 
   5597 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
   5598     VkDevice                                    device,
   5599     const VkRenderPassCreateInfo2*              pCreateInfo,
   5600     const VkAllocationCallbacks*                pAllocator,
   5601     VkRenderPass*                               pRenderPass);
   5602 
   5603 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
   5604     VkCommandBuffer                             commandBuffer,
   5605     const VkRenderPassBeginInfo*                pRenderPassBegin,
   5606     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
   5607 
   5608 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
   5609     VkCommandBuffer                             commandBuffer,
   5610     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
   5611     const VkSubpassEndInfo*                     pSubpassEndInfo);
   5612 
   5613 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
   5614     VkCommandBuffer                             commandBuffer,
   5615     const VkSubpassEndInfo*                     pSubpassEndInfo);
   5616 
   5617 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
   5618     VkDevice                                    device,
   5619     VkQueryPool                                 queryPool,
   5620     uint32_t                                    firstQuery,
   5621     uint32_t                                    queryCount);
   5622 
   5623 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
   5624     VkDevice                                    device,
   5625     VkSemaphore                                 semaphore,
   5626     uint64_t*                                   pValue);
   5627 
   5628 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
   5629     VkDevice                                    device,
   5630     const VkSemaphoreWaitInfo*                  pWaitInfo,
   5631     uint64_t                                    timeout);
   5632 
   5633 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
   5634     VkDevice                                    device,
   5635     const VkSemaphoreSignalInfo*                pSignalInfo);
   5636 
   5637 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
   5638     VkDevice                                    device,
   5639     const VkBufferDeviceAddressInfo*            pInfo);
   5640 
   5641 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
   5642     VkDevice                                    device,
   5643     const VkBufferDeviceAddressInfo*            pInfo);
   5644 
   5645 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
   5646     VkDevice                                    device,
   5647     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   5648 #endif
   5649 
   5650 
   5651 #define VK_KHR_surface 1
   5652 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
   5653 #define VK_KHR_SURFACE_SPEC_VERSION       25
   5654 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
   5655 
   5656 typedef enum VkPresentModeKHR {
   5657     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
   5658     VK_PRESENT_MODE_MAILBOX_KHR = 1,
   5659     VK_PRESENT_MODE_FIFO_KHR = 2,
   5660     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
   5661     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
   5662     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
   5663     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
   5664 } VkPresentModeKHR;
   5665 
   5666 typedef enum VkColorSpaceKHR {
   5667     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
   5668     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
   5669     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
   5670     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
   5671     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
   5672     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
   5673     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
   5674     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
   5675     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
   5676     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
   5677     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
   5678     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
   5679     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
   5680     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
   5681     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
   5682     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
   5683     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
   5684     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
   5685     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
   5686 } VkColorSpaceKHR;
   5687 
   5688 typedef enum VkSurfaceTransformFlagBitsKHR {
   5689     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
   5690     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
   5691     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
   5692     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
   5693     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
   5694     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
   5695     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
   5696     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
   5697     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
   5698     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   5699 } VkSurfaceTransformFlagBitsKHR;
   5700 
   5701 typedef enum VkCompositeAlphaFlagBitsKHR {
   5702     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
   5703     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
   5704     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
   5705     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
   5706     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   5707 } VkCompositeAlphaFlagBitsKHR;
   5708 typedef VkFlags VkCompositeAlphaFlagsKHR;
   5709 typedef VkFlags VkSurfaceTransformFlagsKHR;
   5710 typedef struct VkSurfaceCapabilitiesKHR {
   5711     uint32_t                         minImageCount;
   5712     uint32_t                         maxImageCount;
   5713     VkExtent2D                       currentExtent;
   5714     VkExtent2D                       minImageExtent;
   5715     VkExtent2D                       maxImageExtent;
   5716     uint32_t                         maxImageArrayLayers;
   5717     VkSurfaceTransformFlagsKHR       supportedTransforms;
   5718     VkSurfaceTransformFlagBitsKHR    currentTransform;
   5719     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
   5720     VkImageUsageFlags                supportedUsageFlags;
   5721 } VkSurfaceCapabilitiesKHR;
   5722 
   5723 typedef struct VkSurfaceFormatKHR {
   5724     VkFormat           format;
   5725     VkColorSpaceKHR    colorSpace;
   5726 } VkSurfaceFormatKHR;
   5727 
   5728 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
   5729 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
   5730 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
   5731 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
   5732 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
   5733 
   5734 #ifndef VK_NO_PROTOTYPES
   5735 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
   5736     VkInstance                                  instance,
   5737     VkSurfaceKHR                                surface,
   5738     const VkAllocationCallbacks*                pAllocator);
   5739 
   5740 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
   5741     VkPhysicalDevice                            physicalDevice,
   5742     uint32_t                                    queueFamilyIndex,
   5743     VkSurfaceKHR                                surface,
   5744     VkBool32*                                   pSupported);
   5745 
   5746 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
   5747     VkPhysicalDevice                            physicalDevice,
   5748     VkSurfaceKHR                                surface,
   5749     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
   5750 
   5751 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
   5752     VkPhysicalDevice                            physicalDevice,
   5753     VkSurfaceKHR                                surface,
   5754     uint32_t*                                   pSurfaceFormatCount,
   5755     VkSurfaceFormatKHR*                         pSurfaceFormats);
   5756 
   5757 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
   5758     VkPhysicalDevice                            physicalDevice,
   5759     VkSurfaceKHR                                surface,
   5760     uint32_t*                                   pPresentModeCount,
   5761     VkPresentModeKHR*                           pPresentModes);
   5762 #endif
   5763 
   5764 
   5765 #define VK_KHR_swapchain 1
   5766 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
   5767 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
   5768 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
   5769 
   5770 typedef enum VkSwapchainCreateFlagBitsKHR {
   5771     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
   5772     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
   5773     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
   5774     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   5775 } VkSwapchainCreateFlagBitsKHR;
   5776 typedef VkFlags VkSwapchainCreateFlagsKHR;
   5777 
   5778 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
   5779     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
   5780     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
   5781     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
   5782     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
   5783     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   5784 } VkDeviceGroupPresentModeFlagBitsKHR;
   5785 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
   5786 typedef struct VkSwapchainCreateInfoKHR {
   5787     VkStructureType                  sType;
   5788     const void*                      pNext;
   5789     VkSwapchainCreateFlagsKHR        flags;
   5790     VkSurfaceKHR                     surface;
   5791     uint32_t                         minImageCount;
   5792     VkFormat                         imageFormat;
   5793     VkColorSpaceKHR                  imageColorSpace;
   5794     VkExtent2D                       imageExtent;
   5795     uint32_t                         imageArrayLayers;
   5796     VkImageUsageFlags                imageUsage;
   5797     VkSharingMode                    imageSharingMode;
   5798     uint32_t                         queueFamilyIndexCount;
   5799     const uint32_t*                  pQueueFamilyIndices;
   5800     VkSurfaceTransformFlagBitsKHR    preTransform;
   5801     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
   5802     VkPresentModeKHR                 presentMode;
   5803     VkBool32                         clipped;
   5804     VkSwapchainKHR                   oldSwapchain;
   5805 } VkSwapchainCreateInfoKHR;
   5806 
   5807 typedef struct VkPresentInfoKHR {
   5808     VkStructureType          sType;
   5809     const void*              pNext;
   5810     uint32_t                 waitSemaphoreCount;
   5811     const VkSemaphore*       pWaitSemaphores;
   5812     uint32_t                 swapchainCount;
   5813     const VkSwapchainKHR*    pSwapchains;
   5814     const uint32_t*          pImageIndices;
   5815     VkResult*                pResults;
   5816 } VkPresentInfoKHR;
   5817 
   5818 typedef struct VkImageSwapchainCreateInfoKHR {
   5819     VkStructureType    sType;
   5820     const void*        pNext;
   5821     VkSwapchainKHR     swapchain;
   5822 } VkImageSwapchainCreateInfoKHR;
   5823 
   5824 typedef struct VkBindImageMemorySwapchainInfoKHR {
   5825     VkStructureType    sType;
   5826     const void*        pNext;
   5827     VkSwapchainKHR     swapchain;
   5828     uint32_t           imageIndex;
   5829 } VkBindImageMemorySwapchainInfoKHR;
   5830 
   5831 typedef struct VkAcquireNextImageInfoKHR {
   5832     VkStructureType    sType;
   5833     const void*        pNext;
   5834     VkSwapchainKHR     swapchain;
   5835     uint64_t           timeout;
   5836     VkSemaphore        semaphore;
   5837     VkFence            fence;
   5838     uint32_t           deviceMask;
   5839 } VkAcquireNextImageInfoKHR;
   5840 
   5841 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
   5842     VkStructureType                     sType;
   5843     const void*                         pNext;
   5844     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
   5845     VkDeviceGroupPresentModeFlagsKHR    modes;
   5846 } VkDeviceGroupPresentCapabilitiesKHR;
   5847 
   5848 typedef struct VkDeviceGroupPresentInfoKHR {
   5849     VkStructureType                        sType;
   5850     const void*                            pNext;
   5851     uint32_t                               swapchainCount;
   5852     const uint32_t*                        pDeviceMasks;
   5853     VkDeviceGroupPresentModeFlagBitsKHR    mode;
   5854 } VkDeviceGroupPresentInfoKHR;
   5855 
   5856 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
   5857     VkStructureType                     sType;
   5858     const void*                         pNext;
   5859     VkDeviceGroupPresentModeFlagsKHR    modes;
   5860 } VkDeviceGroupSwapchainCreateInfoKHR;
   5861 
   5862 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
   5863 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
   5864 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
   5865 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
   5866 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
   5867 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
   5868 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
   5869 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
   5870 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
   5871 
   5872 #ifndef VK_NO_PROTOTYPES
   5873 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
   5874     VkDevice                                    device,
   5875     const VkSwapchainCreateInfoKHR*             pCreateInfo,
   5876     const VkAllocationCallbacks*                pAllocator,
   5877     VkSwapchainKHR*                             pSwapchain);
   5878 
   5879 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
   5880     VkDevice                                    device,
   5881     VkSwapchainKHR                              swapchain,
   5882     const VkAllocationCallbacks*                pAllocator);
   5883 
   5884 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
   5885     VkDevice                                    device,
   5886     VkSwapchainKHR                              swapchain,
   5887     uint32_t*                                   pSwapchainImageCount,
   5888     VkImage*                                    pSwapchainImages);
   5889 
   5890 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
   5891     VkDevice                                    device,
   5892     VkSwapchainKHR                              swapchain,
   5893     uint64_t                                    timeout,
   5894     VkSemaphore                                 semaphore,
   5895     VkFence                                     fence,
   5896     uint32_t*                                   pImageIndex);
   5897 
   5898 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
   5899     VkQueue                                     queue,
   5900     const VkPresentInfoKHR*                     pPresentInfo);
   5901 
   5902 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
   5903     VkDevice                                    device,
   5904     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
   5905 
   5906 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
   5907     VkDevice                                    device,
   5908     VkSurfaceKHR                                surface,
   5909     VkDeviceGroupPresentModeFlagsKHR*           pModes);
   5910 
   5911 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
   5912     VkPhysicalDevice                            physicalDevice,
   5913     VkSurfaceKHR                                surface,
   5914     uint32_t*                                   pRectCount,
   5915     VkRect2D*                                   pRects);
   5916 
   5917 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
   5918     VkDevice                                    device,
   5919     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
   5920     uint32_t*                                   pImageIndex);
   5921 #endif
   5922 
   5923 
   5924 #define VK_KHR_display 1
   5925 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
   5926 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
   5927 #define VK_KHR_DISPLAY_SPEC_VERSION       23
   5928 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
   5929 typedef VkFlags VkDisplayModeCreateFlagsKHR;
   5930 
   5931 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
   5932     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
   5933     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
   5934     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
   5935     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
   5936     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   5937 } VkDisplayPlaneAlphaFlagBitsKHR;
   5938 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
   5939 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
   5940 typedef struct VkDisplayModeParametersKHR {
   5941     VkExtent2D    visibleRegion;
   5942     uint32_t      refreshRate;
   5943 } VkDisplayModeParametersKHR;
   5944 
   5945 typedef struct VkDisplayModeCreateInfoKHR {
   5946     VkStructureType                sType;
   5947     const void*                    pNext;
   5948     VkDisplayModeCreateFlagsKHR    flags;
   5949     VkDisplayModeParametersKHR     parameters;
   5950 } VkDisplayModeCreateInfoKHR;
   5951 
   5952 typedef struct VkDisplayModePropertiesKHR {
   5953     VkDisplayModeKHR              displayMode;
   5954     VkDisplayModeParametersKHR    parameters;
   5955 } VkDisplayModePropertiesKHR;
   5956 
   5957 typedef struct VkDisplayPlaneCapabilitiesKHR {
   5958     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
   5959     VkOffset2D                     minSrcPosition;
   5960     VkOffset2D                     maxSrcPosition;
   5961     VkExtent2D                     minSrcExtent;
   5962     VkExtent2D                     maxSrcExtent;
   5963     VkOffset2D                     minDstPosition;
   5964     VkOffset2D                     maxDstPosition;
   5965     VkExtent2D                     minDstExtent;
   5966     VkExtent2D                     maxDstExtent;
   5967 } VkDisplayPlaneCapabilitiesKHR;
   5968 
   5969 typedef struct VkDisplayPlanePropertiesKHR {
   5970     VkDisplayKHR    currentDisplay;
   5971     uint32_t        currentStackIndex;
   5972 } VkDisplayPlanePropertiesKHR;
   5973 
   5974 typedef struct VkDisplayPropertiesKHR {
   5975     VkDisplayKHR                  display;
   5976     const char*                   displayName;
   5977     VkExtent2D                    physicalDimensions;
   5978     VkExtent2D                    physicalResolution;
   5979     VkSurfaceTransformFlagsKHR    supportedTransforms;
   5980     VkBool32                      planeReorderPossible;
   5981     VkBool32                      persistentContent;
   5982 } VkDisplayPropertiesKHR;
   5983 
   5984 typedef struct VkDisplaySurfaceCreateInfoKHR {
   5985     VkStructureType                   sType;
   5986     const void*                       pNext;
   5987     VkDisplaySurfaceCreateFlagsKHR    flags;
   5988     VkDisplayModeKHR                  displayMode;
   5989     uint32_t                          planeIndex;
   5990     uint32_t                          planeStackIndex;
   5991     VkSurfaceTransformFlagBitsKHR     transform;
   5992     float                             globalAlpha;
   5993     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
   5994     VkExtent2D                        imageExtent;
   5995 } VkDisplaySurfaceCreateInfoKHR;
   5996 
   5997 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
   5998 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
   5999 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
   6000 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
   6001 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
   6002 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
   6003 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
   6004 
   6005 #ifndef VK_NO_PROTOTYPES
   6006 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
   6007     VkPhysicalDevice                            physicalDevice,
   6008     uint32_t*                                   pPropertyCount,
   6009     VkDisplayPropertiesKHR*                     pProperties);
   6010 
   6011 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
   6012     VkPhysicalDevice                            physicalDevice,
   6013     uint32_t*                                   pPropertyCount,
   6014     VkDisplayPlanePropertiesKHR*                pProperties);
   6015 
   6016 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
   6017     VkPhysicalDevice                            physicalDevice,
   6018     uint32_t                                    planeIndex,
   6019     uint32_t*                                   pDisplayCount,
   6020     VkDisplayKHR*                               pDisplays);
   6021 
   6022 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
   6023     VkPhysicalDevice                            physicalDevice,
   6024     VkDisplayKHR                                display,
   6025     uint32_t*                                   pPropertyCount,
   6026     VkDisplayModePropertiesKHR*                 pProperties);
   6027 
   6028 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
   6029     VkPhysicalDevice                            physicalDevice,
   6030     VkDisplayKHR                                display,
   6031     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
   6032     const VkAllocationCallbacks*                pAllocator,
   6033     VkDisplayModeKHR*                           pMode);
   6034 
   6035 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
   6036     VkPhysicalDevice                            physicalDevice,
   6037     VkDisplayModeKHR                            mode,
   6038     uint32_t                                    planeIndex,
   6039     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
   6040 
   6041 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
   6042     VkInstance                                  instance,
   6043     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
   6044     const VkAllocationCallbacks*                pAllocator,
   6045     VkSurfaceKHR*                               pSurface);
   6046 #endif
   6047 
   6048 
   6049 #define VK_KHR_display_swapchain 1
   6050 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
   6051 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
   6052 typedef struct VkDisplayPresentInfoKHR {
   6053     VkStructureType    sType;
   6054     const void*        pNext;
   6055     VkRect2D           srcRect;
   6056     VkRect2D           dstRect;
   6057     VkBool32           persistent;
   6058 } VkDisplayPresentInfoKHR;
   6059 
   6060 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
   6061 
   6062 #ifndef VK_NO_PROTOTYPES
   6063 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
   6064     VkDevice                                    device,
   6065     uint32_t                                    swapchainCount,
   6066     const VkSwapchainCreateInfoKHR*             pCreateInfos,
   6067     const VkAllocationCallbacks*                pAllocator,
   6068     VkSwapchainKHR*                             pSwapchains);
   6069 #endif
   6070 
   6071 
   6072 #define VK_KHR_sampler_mirror_clamp_to_edge 1
   6073 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
   6074 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
   6075 
   6076 
   6077 #define VK_KHR_multiview 1
   6078 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
   6079 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
   6080 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
   6081 
   6082 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
   6083 
   6084 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
   6085 
   6086 
   6087 
   6088 #define VK_KHR_get_physical_device_properties2 1
   6089 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
   6090 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
   6091 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
   6092 
   6093 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
   6094 
   6095 typedef VkFormatProperties2 VkFormatProperties2KHR;
   6096 
   6097 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
   6098 
   6099 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
   6100 
   6101 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
   6102 
   6103 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
   6104 
   6105 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
   6106 
   6107 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
   6108 
   6109 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
   6110 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
   6111 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
   6112 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
   6113 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
   6114 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
   6115 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
   6116 
   6117 #ifndef VK_NO_PROTOTYPES
   6118 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
   6119     VkPhysicalDevice                            physicalDevice,
   6120     VkPhysicalDeviceFeatures2*                  pFeatures);
   6121 
   6122 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
   6123     VkPhysicalDevice                            physicalDevice,
   6124     VkPhysicalDeviceProperties2*                pProperties);
   6125 
   6126 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
   6127     VkPhysicalDevice                            physicalDevice,
   6128     VkFormat                                    format,
   6129     VkFormatProperties2*                        pFormatProperties);
   6130 
   6131 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
   6132     VkPhysicalDevice                            physicalDevice,
   6133     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
   6134     VkImageFormatProperties2*                   pImageFormatProperties);
   6135 
   6136 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
   6137     VkPhysicalDevice                            physicalDevice,
   6138     uint32_t*                                   pQueueFamilyPropertyCount,
   6139     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
   6140 
   6141 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
   6142     VkPhysicalDevice                            physicalDevice,
   6143     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
   6144 
   6145 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
   6146     VkPhysicalDevice                            physicalDevice,
   6147     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
   6148     uint32_t*                                   pPropertyCount,
   6149     VkSparseImageFormatProperties2*             pProperties);
   6150 #endif
   6151 
   6152 
   6153 #define VK_KHR_device_group 1
   6154 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
   6155 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
   6156 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
   6157 
   6158 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
   6159 
   6160 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
   6161 
   6162 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
   6163 
   6164 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
   6165 
   6166 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
   6167 
   6168 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
   6169 
   6170 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
   6171 
   6172 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
   6173 
   6174 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
   6175 
   6176 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
   6177 
   6178 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
   6179 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
   6180 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);
   6181 
   6182 #ifndef VK_NO_PROTOTYPES
   6183 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
   6184     VkDevice                                    device,
   6185     uint32_t                                    heapIndex,
   6186     uint32_t                                    localDeviceIndex,
   6187     uint32_t                                    remoteDeviceIndex,
   6188     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
   6189 
   6190 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
   6191     VkCommandBuffer                             commandBuffer,
   6192     uint32_t                                    deviceMask);
   6193 
   6194 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
   6195     VkCommandBuffer                             commandBuffer,
   6196     uint32_t                                    baseGroupX,
   6197     uint32_t                                    baseGroupY,
   6198     uint32_t                                    baseGroupZ,
   6199     uint32_t                                    groupCountX,
   6200     uint32_t                                    groupCountY,
   6201     uint32_t                                    groupCountZ);
   6202 #endif
   6203 
   6204 
   6205 #define VK_KHR_shader_draw_parameters 1
   6206 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
   6207 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
   6208 
   6209 
   6210 #define VK_KHR_maintenance1 1
   6211 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  2
   6212 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
   6213 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
   6214 
   6215 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
   6216 
   6217 #ifndef VK_NO_PROTOTYPES
   6218 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
   6219     VkDevice                                    device,
   6220     VkCommandPool                               commandPool,
   6221     VkCommandPoolTrimFlags                      flags);
   6222 #endif
   6223 
   6224 
   6225 #define VK_KHR_device_group_creation 1
   6226 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
   6227 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
   6228 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
   6229 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
   6230 
   6231 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
   6232 
   6233 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
   6234 
   6235 #ifndef VK_NO_PROTOTYPES
   6236 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
   6237     VkInstance                                  instance,
   6238     uint32_t*                                   pPhysicalDeviceGroupCount,
   6239     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
   6240 #endif
   6241 
   6242 
   6243 #define VK_KHR_external_memory_capabilities 1
   6244 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
   6245 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
   6246 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
   6247 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
   6248 
   6249 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
   6250 
   6251 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
   6252 
   6253 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
   6254 
   6255 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
   6256 
   6257 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
   6258 
   6259 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
   6260 
   6261 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
   6262 
   6263 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
   6264 
   6265 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
   6266 
   6267 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
   6268 
   6269 #ifndef VK_NO_PROTOTYPES
   6270 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
   6271     VkPhysicalDevice                            physicalDevice,
   6272     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
   6273     VkExternalBufferProperties*                 pExternalBufferProperties);
   6274 #endif
   6275 
   6276 
   6277 #define VK_KHR_external_memory 1
   6278 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
   6279 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
   6280 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
   6281 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
   6282 
   6283 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
   6284 
   6285 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
   6286 
   6287 
   6288 
   6289 #define VK_KHR_external_memory_fd 1
   6290 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
   6291 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
   6292 typedef struct VkImportMemoryFdInfoKHR {
   6293     VkStructureType                       sType;
   6294     const void*                           pNext;
   6295     VkExternalMemoryHandleTypeFlagBits    handleType;
   6296     int                                   fd;
   6297 } VkImportMemoryFdInfoKHR;
   6298 
   6299 typedef struct VkMemoryFdPropertiesKHR {
   6300     VkStructureType    sType;
   6301     void*              pNext;
   6302     uint32_t           memoryTypeBits;
   6303 } VkMemoryFdPropertiesKHR;
   6304 
   6305 typedef struct VkMemoryGetFdInfoKHR {
   6306     VkStructureType                       sType;
   6307     const void*                           pNext;
   6308     VkDeviceMemory                        memory;
   6309     VkExternalMemoryHandleTypeFlagBits    handleType;
   6310 } VkMemoryGetFdInfoKHR;
   6311 
   6312 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
   6313 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
   6314 
   6315 #ifndef VK_NO_PROTOTYPES
   6316 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
   6317     VkDevice                                    device,
   6318     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
   6319     int*                                        pFd);
   6320 
   6321 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
   6322     VkDevice                                    device,
   6323     VkExternalMemoryHandleTypeFlagBits          handleType,
   6324     int                                         fd,
   6325     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
   6326 #endif
   6327 
   6328 
   6329 #define VK_KHR_external_semaphore_capabilities 1
   6330 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
   6331 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
   6332 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
   6333 
   6334 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
   6335 
   6336 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
   6337 
   6338 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
   6339 
   6340 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
   6341 
   6342 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
   6343 
   6344 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
   6345 
   6346 #ifndef VK_NO_PROTOTYPES
   6347 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
   6348     VkPhysicalDevice                            physicalDevice,
   6349     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
   6350     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
   6351 #endif
   6352 
   6353 
   6354 #define VK_KHR_external_semaphore 1
   6355 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
   6356 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
   6357 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
   6358 
   6359 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
   6360 
   6361 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
   6362 
   6363 
   6364 
   6365 #define VK_KHR_external_semaphore_fd 1
   6366 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
   6367 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
   6368 typedef struct VkImportSemaphoreFdInfoKHR {
   6369     VkStructureType                          sType;
   6370     const void*                              pNext;
   6371     VkSemaphore                              semaphore;
   6372     VkSemaphoreImportFlags                   flags;
   6373     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   6374     int                                      fd;
   6375 } VkImportSemaphoreFdInfoKHR;
   6376 
   6377 typedef struct VkSemaphoreGetFdInfoKHR {
   6378     VkStructureType                          sType;
   6379     const void*                              pNext;
   6380     VkSemaphore                              semaphore;
   6381     VkExternalSemaphoreHandleTypeFlagBits    handleType;
   6382 } VkSemaphoreGetFdInfoKHR;
   6383 
   6384 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
   6385 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
   6386 
   6387 #ifndef VK_NO_PROTOTYPES
   6388 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
   6389     VkDevice                                    device,
   6390     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
   6391 
   6392 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
   6393     VkDevice                                    device,
   6394     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
   6395     int*                                        pFd);
   6396 #endif
   6397 
   6398 
   6399 #define VK_KHR_push_descriptor 1
   6400 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
   6401 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
   6402 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
   6403     VkStructureType    sType;
   6404     void*              pNext;
   6405     uint32_t           maxPushDescriptors;
   6406 } VkPhysicalDevicePushDescriptorPropertiesKHR;
   6407 
   6408 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
   6409 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
   6410 
   6411 #ifndef VK_NO_PROTOTYPES
   6412 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
   6413     VkCommandBuffer                             commandBuffer,
   6414     VkPipelineBindPoint                         pipelineBindPoint,
   6415     VkPipelineLayout                            layout,
   6416     uint32_t                                    set,
   6417     uint32_t                                    descriptorWriteCount,
   6418     const VkWriteDescriptorSet*                 pDescriptorWrites);
   6419 
   6420 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
   6421     VkCommandBuffer                             commandBuffer,
   6422     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   6423     VkPipelineLayout                            layout,
   6424     uint32_t                                    set,
   6425     const void*                                 pData);
   6426 #endif
   6427 
   6428 
   6429 #define VK_KHR_shader_float16_int8 1
   6430 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
   6431 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
   6432 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
   6433 
   6434 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
   6435 
   6436 
   6437 
   6438 #define VK_KHR_16bit_storage 1
   6439 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
   6440 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
   6441 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
   6442 
   6443 
   6444 
   6445 #define VK_KHR_incremental_present 1
   6446 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
   6447 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
   6448 typedef struct VkRectLayerKHR {
   6449     VkOffset2D    offset;
   6450     VkExtent2D    extent;
   6451     uint32_t      layer;
   6452 } VkRectLayerKHR;
   6453 
   6454 typedef struct VkPresentRegionKHR {
   6455     uint32_t                 rectangleCount;
   6456     const VkRectLayerKHR*    pRectangles;
   6457 } VkPresentRegionKHR;
   6458 
   6459 typedef struct VkPresentRegionsKHR {
   6460     VkStructureType              sType;
   6461     const void*                  pNext;
   6462     uint32_t                     swapchainCount;
   6463     const VkPresentRegionKHR*    pRegions;
   6464 } VkPresentRegionsKHR;
   6465 
   6466 
   6467 
   6468 #define VK_KHR_descriptor_update_template 1
   6469 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
   6470 
   6471 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
   6472 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
   6473 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
   6474 
   6475 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
   6476 
   6477 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
   6478 
   6479 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
   6480 
   6481 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
   6482 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
   6483 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
   6484 
   6485 #ifndef VK_NO_PROTOTYPES
   6486 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
   6487     VkDevice                                    device,
   6488     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
   6489     const VkAllocationCallbacks*                pAllocator,
   6490     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
   6491 
   6492 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
   6493     VkDevice                                    device,
   6494     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   6495     const VkAllocationCallbacks*                pAllocator);
   6496 
   6497 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
   6498     VkDevice                                    device,
   6499     VkDescriptorSet                             descriptorSet,
   6500     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
   6501     const void*                                 pData);
   6502 #endif
   6503 
   6504 
   6505 #define VK_KHR_imageless_framebuffer 1
   6506 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
   6507 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
   6508 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
   6509 
   6510 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
   6511 
   6512 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
   6513 
   6514 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
   6515 
   6516 
   6517 
   6518 #define VK_KHR_create_renderpass2 1
   6519 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
   6520 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
   6521 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
   6522 
   6523 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
   6524 
   6525 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
   6526 
   6527 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
   6528 
   6529 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
   6530 
   6531 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
   6532 
   6533 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
   6534 
   6535 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
   6536 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
   6537 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
   6538 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
   6539 
   6540 #ifndef VK_NO_PROTOTYPES
   6541 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
   6542     VkDevice                                    device,
   6543     const VkRenderPassCreateInfo2*              pCreateInfo,
   6544     const VkAllocationCallbacks*                pAllocator,
   6545     VkRenderPass*                               pRenderPass);
   6546 
   6547 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
   6548     VkCommandBuffer                             commandBuffer,
   6549     const VkRenderPassBeginInfo*                pRenderPassBegin,
   6550     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
   6551 
   6552 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
   6553     VkCommandBuffer                             commandBuffer,
   6554     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
   6555     const VkSubpassEndInfo*                     pSubpassEndInfo);
   6556 
   6557 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
   6558     VkCommandBuffer                             commandBuffer,
   6559     const VkSubpassEndInfo*                     pSubpassEndInfo);
   6560 #endif
   6561 
   6562 
   6563 #define VK_KHR_shared_presentable_image 1
   6564 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
   6565 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
   6566 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
   6567     VkStructureType      sType;
   6568     void*                pNext;
   6569     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
   6570 } VkSharedPresentSurfaceCapabilitiesKHR;
   6571 
   6572 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
   6573 
   6574 #ifndef VK_NO_PROTOTYPES
   6575 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
   6576     VkDevice                                    device,
   6577     VkSwapchainKHR                              swapchain);
   6578 #endif
   6579 
   6580 
   6581 #define VK_KHR_external_fence_capabilities 1
   6582 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
   6583 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
   6584 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
   6585 
   6586 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
   6587 
   6588 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
   6589 
   6590 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
   6591 
   6592 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
   6593 
   6594 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
   6595 
   6596 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
   6597 
   6598 #ifndef VK_NO_PROTOTYPES
   6599 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
   6600     VkPhysicalDevice                            physicalDevice,
   6601     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
   6602     VkExternalFenceProperties*                  pExternalFenceProperties);
   6603 #endif
   6604 
   6605 
   6606 #define VK_KHR_external_fence 1
   6607 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
   6608 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
   6609 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
   6610 
   6611 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
   6612 
   6613 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
   6614 
   6615 
   6616 
   6617 #define VK_KHR_external_fence_fd 1
   6618 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
   6619 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
   6620 typedef struct VkImportFenceFdInfoKHR {
   6621     VkStructureType                      sType;
   6622     const void*                          pNext;
   6623     VkFence                              fence;
   6624     VkFenceImportFlags                   flags;
   6625     VkExternalFenceHandleTypeFlagBits    handleType;
   6626     int                                  fd;
   6627 } VkImportFenceFdInfoKHR;
   6628 
   6629 typedef struct VkFenceGetFdInfoKHR {
   6630     VkStructureType                      sType;
   6631     const void*                          pNext;
   6632     VkFence                              fence;
   6633     VkExternalFenceHandleTypeFlagBits    handleType;
   6634 } VkFenceGetFdInfoKHR;
   6635 
   6636 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
   6637 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
   6638 
   6639 #ifndef VK_NO_PROTOTYPES
   6640 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
   6641     VkDevice                                    device,
   6642     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
   6643 
   6644 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
   6645     VkDevice                                    device,
   6646     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
   6647     int*                                        pFd);
   6648 #endif
   6649 
   6650 
   6651 #define VK_KHR_performance_query 1
   6652 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
   6653 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
   6654 
   6655 typedef enum VkPerformanceCounterUnitKHR {
   6656     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
   6657     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
   6658     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
   6659     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
   6660     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
   6661     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
   6662     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
   6663     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
   6664     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
   6665     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
   6666     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
   6667     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
   6668 } VkPerformanceCounterUnitKHR;
   6669 
   6670 typedef enum VkPerformanceCounterScopeKHR {
   6671     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
   6672     VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
   6673     VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
   6674     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
   6675     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
   6676     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
   6677     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
   6678 } VkPerformanceCounterScopeKHR;
   6679 
   6680 typedef enum VkPerformanceCounterStorageKHR {
   6681     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
   6682     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
   6683     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
   6684     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
   6685     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
   6686     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
   6687     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
   6688 } VkPerformanceCounterStorageKHR;
   6689 
   6690 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
   6691     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001,
   6692     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002,
   6693     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   6694 } VkPerformanceCounterDescriptionFlagBitsKHR;
   6695 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
   6696 
   6697 typedef enum VkAcquireProfilingLockFlagBitsKHR {
   6698     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   6699 } VkAcquireProfilingLockFlagBitsKHR;
   6700 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
   6701 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
   6702     VkStructureType    sType;
   6703     void*              pNext;
   6704     VkBool32           performanceCounterQueryPools;
   6705     VkBool32           performanceCounterMultipleQueryPools;
   6706 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
   6707 
   6708 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
   6709     VkStructureType    sType;
   6710     void*              pNext;
   6711     VkBool32           allowCommandBufferQueryCopies;
   6712 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
   6713 
   6714 typedef struct VkPerformanceCounterKHR {
   6715     VkStructureType                   sType;
   6716     const void*                       pNext;
   6717     VkPerformanceCounterUnitKHR       unit;
   6718     VkPerformanceCounterScopeKHR      scope;
   6719     VkPerformanceCounterStorageKHR    storage;
   6720     uint8_t                           uuid[VK_UUID_SIZE];
   6721 } VkPerformanceCounterKHR;
   6722 
   6723 typedef struct VkPerformanceCounterDescriptionKHR {
   6724     VkStructureType                            sType;
   6725     const void*                                pNext;
   6726     VkPerformanceCounterDescriptionFlagsKHR    flags;
   6727     char                                       name[VK_MAX_DESCRIPTION_SIZE];
   6728     char                                       category[VK_MAX_DESCRIPTION_SIZE];
   6729     char                                       description[VK_MAX_DESCRIPTION_SIZE];
   6730 } VkPerformanceCounterDescriptionKHR;
   6731 
   6732 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
   6733     VkStructureType    sType;
   6734     const void*        pNext;
   6735     uint32_t           queueFamilyIndex;
   6736     uint32_t           counterIndexCount;
   6737     const uint32_t*    pCounterIndices;
   6738 } VkQueryPoolPerformanceCreateInfoKHR;
   6739 
   6740 typedef union VkPerformanceCounterResultKHR {
   6741     int32_t     int32;
   6742     int64_t     int64;
   6743     uint32_t    uint32;
   6744     uint64_t    uint64;
   6745     float       float32;
   6746     double      float64;
   6747 } VkPerformanceCounterResultKHR;
   6748 
   6749 typedef struct VkAcquireProfilingLockInfoKHR {
   6750     VkStructureType                   sType;
   6751     const void*                       pNext;
   6752     VkAcquireProfilingLockFlagsKHR    flags;
   6753     uint64_t                          timeout;
   6754 } VkAcquireProfilingLockInfoKHR;
   6755 
   6756 typedef struct VkPerformanceQuerySubmitInfoKHR {
   6757     VkStructureType    sType;
   6758     const void*        pNext;
   6759     uint32_t           counterPassIndex;
   6760 } VkPerformanceQuerySubmitInfoKHR;
   6761 
   6762 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
   6763 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
   6764 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
   6765 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
   6766 
   6767 #ifndef VK_NO_PROTOTYPES
   6768 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
   6769     VkPhysicalDevice                            physicalDevice,
   6770     uint32_t                                    queueFamilyIndex,
   6771     uint32_t*                                   pCounterCount,
   6772     VkPerformanceCounterKHR*                    pCounters,
   6773     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
   6774 
   6775 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
   6776     VkPhysicalDevice                            physicalDevice,
   6777     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
   6778     uint32_t*                                   pNumPasses);
   6779 
   6780 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
   6781     VkDevice                                    device,
   6782     const VkAcquireProfilingLockInfoKHR*        pInfo);
   6783 
   6784 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
   6785     VkDevice                                    device);
   6786 #endif
   6787 
   6788 
   6789 #define VK_KHR_maintenance2 1
   6790 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  1
   6791 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
   6792 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
   6793 
   6794 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
   6795 
   6796 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
   6797 
   6798 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
   6799 
   6800 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
   6801 
   6802 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
   6803 
   6804 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
   6805 
   6806 
   6807 
   6808 #define VK_KHR_get_surface_capabilities2 1
   6809 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
   6810 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
   6811 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
   6812     VkStructureType    sType;
   6813     const void*        pNext;
   6814     VkSurfaceKHR       surface;
   6815 } VkPhysicalDeviceSurfaceInfo2KHR;
   6816 
   6817 typedef struct VkSurfaceCapabilities2KHR {
   6818     VkStructureType             sType;
   6819     void*                       pNext;
   6820     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
   6821 } VkSurfaceCapabilities2KHR;
   6822 
   6823 typedef struct VkSurfaceFormat2KHR {
   6824     VkStructureType       sType;
   6825     void*                 pNext;
   6826     VkSurfaceFormatKHR    surfaceFormat;
   6827 } VkSurfaceFormat2KHR;
   6828 
   6829 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
   6830 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
   6831 
   6832 #ifndef VK_NO_PROTOTYPES
   6833 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
   6834     VkPhysicalDevice                            physicalDevice,
   6835     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
   6836     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
   6837 
   6838 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
   6839     VkPhysicalDevice                            physicalDevice,
   6840     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
   6841     uint32_t*                                   pSurfaceFormatCount,
   6842     VkSurfaceFormat2KHR*                        pSurfaceFormats);
   6843 #endif
   6844 
   6845 
   6846 #define VK_KHR_variable_pointers 1
   6847 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
   6848 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
   6849 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
   6850 
   6851 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
   6852 
   6853 
   6854 
   6855 #define VK_KHR_get_display_properties2 1
   6856 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
   6857 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
   6858 typedef struct VkDisplayProperties2KHR {
   6859     VkStructureType           sType;
   6860     void*                     pNext;
   6861     VkDisplayPropertiesKHR    displayProperties;
   6862 } VkDisplayProperties2KHR;
   6863 
   6864 typedef struct VkDisplayPlaneProperties2KHR {
   6865     VkStructureType                sType;
   6866     void*                          pNext;
   6867     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
   6868 } VkDisplayPlaneProperties2KHR;
   6869 
   6870 typedef struct VkDisplayModeProperties2KHR {
   6871     VkStructureType               sType;
   6872     void*                         pNext;
   6873     VkDisplayModePropertiesKHR    displayModeProperties;
   6874 } VkDisplayModeProperties2KHR;
   6875 
   6876 typedef struct VkDisplayPlaneInfo2KHR {
   6877     VkStructureType     sType;
   6878     const void*         pNext;
   6879     VkDisplayModeKHR    mode;
   6880     uint32_t            planeIndex;
   6881 } VkDisplayPlaneInfo2KHR;
   6882 
   6883 typedef struct VkDisplayPlaneCapabilities2KHR {
   6884     VkStructureType                  sType;
   6885     void*                            pNext;
   6886     VkDisplayPlaneCapabilitiesKHR    capabilities;
   6887 } VkDisplayPlaneCapabilities2KHR;
   6888 
   6889 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
   6890 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
   6891 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
   6892 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
   6893 
   6894 #ifndef VK_NO_PROTOTYPES
   6895 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
   6896     VkPhysicalDevice                            physicalDevice,
   6897     uint32_t*                                   pPropertyCount,
   6898     VkDisplayProperties2KHR*                    pProperties);
   6899 
   6900 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
   6901     VkPhysicalDevice                            physicalDevice,
   6902     uint32_t*                                   pPropertyCount,
   6903     VkDisplayPlaneProperties2KHR*               pProperties);
   6904 
   6905 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
   6906     VkPhysicalDevice                            physicalDevice,
   6907     VkDisplayKHR                                display,
   6908     uint32_t*                                   pPropertyCount,
   6909     VkDisplayModeProperties2KHR*                pProperties);
   6910 
   6911 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
   6912     VkPhysicalDevice                            physicalDevice,
   6913     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
   6914     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
   6915 #endif
   6916 
   6917 
   6918 #define VK_KHR_dedicated_allocation 1
   6919 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
   6920 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
   6921 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
   6922 
   6923 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
   6924 
   6925 
   6926 
   6927 #define VK_KHR_storage_buffer_storage_class 1
   6928 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
   6929 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
   6930 
   6931 
   6932 #define VK_KHR_relaxed_block_layout 1
   6933 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
   6934 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
   6935 
   6936 
   6937 #define VK_KHR_get_memory_requirements2 1
   6938 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
   6939 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
   6940 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
   6941 
   6942 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
   6943 
   6944 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
   6945 
   6946 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
   6947 
   6948 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
   6949 
   6950 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   6951 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
   6952 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
   6953 
   6954 #ifndef VK_NO_PROTOTYPES
   6955 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
   6956     VkDevice                                    device,
   6957     const VkImageMemoryRequirementsInfo2*       pInfo,
   6958     VkMemoryRequirements2*                      pMemoryRequirements);
   6959 
   6960 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
   6961     VkDevice                                    device,
   6962     const VkBufferMemoryRequirementsInfo2*      pInfo,
   6963     VkMemoryRequirements2*                      pMemoryRequirements);
   6964 
   6965 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
   6966     VkDevice                                    device,
   6967     const VkImageSparseMemoryRequirementsInfo2* pInfo,
   6968     uint32_t*                                   pSparseMemoryRequirementCount,
   6969     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
   6970 #endif
   6971 
   6972 
   6973 #define VK_KHR_image_format_list 1
   6974 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
   6975 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
   6976 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
   6977 
   6978 
   6979 
   6980 #define VK_KHR_sampler_ycbcr_conversion 1
   6981 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
   6982 
   6983 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
   6984 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
   6985 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
   6986 
   6987 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
   6988 
   6989 typedef VkChromaLocation VkChromaLocationKHR;
   6990 
   6991 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
   6992 
   6993 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
   6994 
   6995 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
   6996 
   6997 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
   6998 
   6999 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
   7000 
   7001 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
   7002 
   7003 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
   7004 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
   7005 
   7006 #ifndef VK_NO_PROTOTYPES
   7007 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
   7008     VkDevice                                    device,
   7009     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
   7010     const VkAllocationCallbacks*                pAllocator,
   7011     VkSamplerYcbcrConversion*                   pYcbcrConversion);
   7012 
   7013 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
   7014     VkDevice                                    device,
   7015     VkSamplerYcbcrConversion                    ycbcrConversion,
   7016     const VkAllocationCallbacks*                pAllocator);
   7017 #endif
   7018 
   7019 
   7020 #define VK_KHR_bind_memory2 1
   7021 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
   7022 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
   7023 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
   7024 
   7025 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
   7026 
   7027 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
   7028 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
   7029 
   7030 #ifndef VK_NO_PROTOTYPES
   7031 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
   7032     VkDevice                                    device,
   7033     uint32_t                                    bindInfoCount,
   7034     const VkBindBufferMemoryInfo*               pBindInfos);
   7035 
   7036 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
   7037     VkDevice                                    device,
   7038     uint32_t                                    bindInfoCount,
   7039     const VkBindImageMemoryInfo*                pBindInfos);
   7040 #endif
   7041 
   7042 
   7043 #define VK_KHR_maintenance3 1
   7044 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  1
   7045 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
   7046 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
   7047 
   7048 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
   7049 
   7050 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
   7051 
   7052 #ifndef VK_NO_PROTOTYPES
   7053 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
   7054     VkDevice                                    device,
   7055     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
   7056     VkDescriptorSetLayoutSupport*               pSupport);
   7057 #endif
   7058 
   7059 
   7060 #define VK_KHR_draw_indirect_count 1
   7061 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
   7062 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
   7063 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   7064 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   7065 
   7066 #ifndef VK_NO_PROTOTYPES
   7067 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
   7068     VkCommandBuffer                             commandBuffer,
   7069     VkBuffer                                    buffer,
   7070     VkDeviceSize                                offset,
   7071     VkBuffer                                    countBuffer,
   7072     VkDeviceSize                                countBufferOffset,
   7073     uint32_t                                    maxDrawCount,
   7074     uint32_t                                    stride);
   7075 
   7076 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
   7077     VkCommandBuffer                             commandBuffer,
   7078     VkBuffer                                    buffer,
   7079     VkDeviceSize                                offset,
   7080     VkBuffer                                    countBuffer,
   7081     VkDeviceSize                                countBufferOffset,
   7082     uint32_t                                    maxDrawCount,
   7083     uint32_t                                    stride);
   7084 #endif
   7085 
   7086 
   7087 #define VK_KHR_shader_subgroup_extended_types 1
   7088 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
   7089 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
   7090 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
   7091 
   7092 
   7093 
   7094 #define VK_KHR_8bit_storage 1
   7095 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
   7096 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
   7097 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
   7098 
   7099 
   7100 
   7101 #define VK_KHR_shader_atomic_int64 1
   7102 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
   7103 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
   7104 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
   7105 
   7106 
   7107 
   7108 #define VK_KHR_shader_clock 1
   7109 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
   7110 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
   7111 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
   7112     VkStructureType    sType;
   7113     void*              pNext;
   7114     VkBool32           shaderSubgroupClock;
   7115     VkBool32           shaderDeviceClock;
   7116 } VkPhysicalDeviceShaderClockFeaturesKHR;
   7117 
   7118 
   7119 
   7120 #define VK_KHR_driver_properties 1
   7121 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
   7122 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
   7123 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
   7124 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
   7125 typedef VkDriverId VkDriverIdKHR;
   7126 
   7127 typedef VkConformanceVersion VkConformanceVersionKHR;
   7128 
   7129 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
   7130 
   7131 
   7132 
   7133 #define VK_KHR_shader_float_controls 1
   7134 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
   7135 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
   7136 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
   7137 
   7138 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
   7139 
   7140 
   7141 
   7142 #define VK_KHR_depth_stencil_resolve 1
   7143 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
   7144 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
   7145 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
   7146 
   7147 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
   7148 
   7149 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
   7150 
   7151 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
   7152 
   7153 
   7154 
   7155 #define VK_KHR_swapchain_mutable_format 1
   7156 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
   7157 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
   7158 
   7159 
   7160 #define VK_KHR_timeline_semaphore 1
   7161 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
   7162 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
   7163 typedef VkSemaphoreType VkSemaphoreTypeKHR;
   7164 
   7165 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
   7166 
   7167 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
   7168 
   7169 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
   7170 
   7171 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
   7172 
   7173 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
   7174 
   7175 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
   7176 
   7177 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
   7178 
   7179 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
   7180 
   7181 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
   7182 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
   7183 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
   7184 
   7185 #ifndef VK_NO_PROTOTYPES
   7186 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
   7187     VkDevice                                    device,
   7188     VkSemaphore                                 semaphore,
   7189     uint64_t*                                   pValue);
   7190 
   7191 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
   7192     VkDevice                                    device,
   7193     const VkSemaphoreWaitInfo*                  pWaitInfo,
   7194     uint64_t                                    timeout);
   7195 
   7196 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
   7197     VkDevice                                    device,
   7198     const VkSemaphoreSignalInfo*                pSignalInfo);
   7199 #endif
   7200 
   7201 
   7202 #define VK_KHR_vulkan_memory_model 1
   7203 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
   7204 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
   7205 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
   7206 
   7207 
   7208 
   7209 #define VK_KHR_shader_terminate_invocation 1
   7210 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
   7211 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
   7212 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR {
   7213     VkStructureType    sType;
   7214     void*              pNext;
   7215     VkBool32           shaderTerminateInvocation;
   7216 } VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
   7217 
   7218 
   7219 
   7220 #define VK_KHR_fragment_shading_rate 1
   7221 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1
   7222 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
   7223 
   7224 typedef enum VkFragmentShadingRateCombinerOpKHR {
   7225     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
   7226     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
   7227     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
   7228     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
   7229     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
   7230     VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
   7231 } VkFragmentShadingRateCombinerOpKHR;
   7232 typedef struct VkFragmentShadingRateAttachmentInfoKHR {
   7233     VkStructureType                  sType;
   7234     const void*                      pNext;
   7235     const VkAttachmentReference2*    pFragmentShadingRateAttachment;
   7236     VkExtent2D                       shadingRateAttachmentTexelSize;
   7237 } VkFragmentShadingRateAttachmentInfoKHR;
   7238 
   7239 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
   7240     VkStructureType                       sType;
   7241     const void*                           pNext;
   7242     VkExtent2D                            fragmentSize;
   7243     VkFragmentShadingRateCombinerOpKHR    combinerOps[2];
   7244 } VkPipelineFragmentShadingRateStateCreateInfoKHR;
   7245 
   7246 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
   7247     VkStructureType    sType;
   7248     void*              pNext;
   7249     VkBool32           pipelineFragmentShadingRate;
   7250     VkBool32           primitiveFragmentShadingRate;
   7251     VkBool32           attachmentFragmentShadingRate;
   7252 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
   7253 
   7254 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
   7255     VkStructureType          sType;
   7256     void*                    pNext;
   7257     VkExtent2D               minFragmentShadingRateAttachmentTexelSize;
   7258     VkExtent2D               maxFragmentShadingRateAttachmentTexelSize;
   7259     uint32_t                 maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
   7260     VkBool32                 primitiveFragmentShadingRateWithMultipleViewports;
   7261     VkBool32                 layeredShadingRateAttachments;
   7262     VkBool32                 fragmentShadingRateNonTrivialCombinerOps;
   7263     VkExtent2D               maxFragmentSize;
   7264     uint32_t                 maxFragmentSizeAspectRatio;
   7265     uint32_t                 maxFragmentShadingRateCoverageSamples;
   7266     VkSampleCountFlagBits    maxFragmentShadingRateRasterizationSamples;
   7267     VkBool32                 fragmentShadingRateWithShaderDepthStencilWrites;
   7268     VkBool32                 fragmentShadingRateWithSampleMask;
   7269     VkBool32                 fragmentShadingRateWithShaderSampleMask;
   7270     VkBool32                 fragmentShadingRateWithConservativeRasterization;
   7271     VkBool32                 fragmentShadingRateWithFragmentShaderInterlock;
   7272     VkBool32                 fragmentShadingRateWithCustomSampleLocations;
   7273     VkBool32                 fragmentShadingRateStrictMultiplyCombiner;
   7274 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
   7275 
   7276 typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
   7277     VkStructureType       sType;
   7278     void*                 pNext;
   7279     VkSampleCountFlags    sampleCounts;
   7280     VkExtent2D            fragmentSize;
   7281 } VkPhysicalDeviceFragmentShadingRateKHR;
   7282 
   7283 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
   7284 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer           commandBuffer, const VkExtent2D*                           pFragmentSize, const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
   7285 
   7286 #ifndef VK_NO_PROTOTYPES
   7287 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
   7288     VkPhysicalDevice                            physicalDevice,
   7289     uint32_t*                                   pFragmentShadingRateCount,
   7290     VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates);
   7291 
   7292 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
   7293     VkCommandBuffer                             commandBuffer,
   7294     const VkExtent2D*                           pFragmentSize,
   7295     const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]);
   7296 #endif
   7297 
   7298 
   7299 #define VK_KHR_spirv_1_4 1
   7300 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
   7301 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
   7302 
   7303 
   7304 #define VK_KHR_surface_protected_capabilities 1
   7305 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
   7306 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
   7307 typedef struct VkSurfaceProtectedCapabilitiesKHR {
   7308     VkStructureType    sType;
   7309     const void*        pNext;
   7310     VkBool32           supportsProtected;
   7311 } VkSurfaceProtectedCapabilitiesKHR;
   7312 
   7313 
   7314 
   7315 #define VK_KHR_separate_depth_stencil_layouts 1
   7316 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
   7317 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
   7318 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
   7319 
   7320 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
   7321 
   7322 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
   7323 
   7324 
   7325 
   7326 #define VK_KHR_uniform_buffer_standard_layout 1
   7327 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
   7328 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
   7329 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
   7330 
   7331 
   7332 
   7333 #define VK_KHR_buffer_device_address 1
   7334 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
   7335 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
   7336 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
   7337 
   7338 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
   7339 
   7340 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
   7341 
   7342 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
   7343 
   7344 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
   7345 
   7346 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   7347 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
   7348 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   7349 
   7350 #ifndef VK_NO_PROTOTYPES
   7351 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
   7352     VkDevice                                    device,
   7353     const VkBufferDeviceAddressInfo*            pInfo);
   7354 
   7355 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
   7356     VkDevice                                    device,
   7357     const VkBufferDeviceAddressInfo*            pInfo);
   7358 
   7359 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
   7360     VkDevice                                    device,
   7361     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
   7362 #endif
   7363 
   7364 
   7365 #define VK_KHR_pipeline_executable_properties 1
   7366 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
   7367 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
   7368 
   7369 typedef enum VkPipelineExecutableStatisticFormatKHR {
   7370     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
   7371     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
   7372     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
   7373     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
   7374     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
   7375 } VkPipelineExecutableStatisticFormatKHR;
   7376 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
   7377     VkStructureType    sType;
   7378     void*              pNext;
   7379     VkBool32           pipelineExecutableInfo;
   7380 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
   7381 
   7382 typedef struct VkPipelineInfoKHR {
   7383     VkStructureType    sType;
   7384     const void*        pNext;
   7385     VkPipeline         pipeline;
   7386 } VkPipelineInfoKHR;
   7387 
   7388 typedef struct VkPipelineExecutablePropertiesKHR {
   7389     VkStructureType       sType;
   7390     void*                 pNext;
   7391     VkShaderStageFlags    stages;
   7392     char                  name[VK_MAX_DESCRIPTION_SIZE];
   7393     char                  description[VK_MAX_DESCRIPTION_SIZE];
   7394     uint32_t              subgroupSize;
   7395 } VkPipelineExecutablePropertiesKHR;
   7396 
   7397 typedef struct VkPipelineExecutableInfoKHR {
   7398     VkStructureType    sType;
   7399     const void*        pNext;
   7400     VkPipeline         pipeline;
   7401     uint32_t           executableIndex;
   7402 } VkPipelineExecutableInfoKHR;
   7403 
   7404 typedef union VkPipelineExecutableStatisticValueKHR {
   7405     VkBool32    b32;
   7406     int64_t     i64;
   7407     uint64_t    u64;
   7408     double      f64;
   7409 } VkPipelineExecutableStatisticValueKHR;
   7410 
   7411 typedef struct VkPipelineExecutableStatisticKHR {
   7412     VkStructureType                           sType;
   7413     void*                                     pNext;
   7414     char                                      name[VK_MAX_DESCRIPTION_SIZE];
   7415     char                                      description[VK_MAX_DESCRIPTION_SIZE];
   7416     VkPipelineExecutableStatisticFormatKHR    format;
   7417     VkPipelineExecutableStatisticValueKHR     value;
   7418 } VkPipelineExecutableStatisticKHR;
   7419 
   7420 typedef struct VkPipelineExecutableInternalRepresentationKHR {
   7421     VkStructureType    sType;
   7422     void*              pNext;
   7423     char               name[VK_MAX_DESCRIPTION_SIZE];
   7424     char               description[VK_MAX_DESCRIPTION_SIZE];
   7425     VkBool32           isText;
   7426     size_t             dataSize;
   7427     void*              pData;
   7428 } VkPipelineExecutableInternalRepresentationKHR;
   7429 
   7430 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
   7431 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
   7432 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
   7433 
   7434 #ifndef VK_NO_PROTOTYPES
   7435 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
   7436     VkDevice                                    device,
   7437     const VkPipelineInfoKHR*                    pPipelineInfo,
   7438     uint32_t*                                   pExecutableCount,
   7439     VkPipelineExecutablePropertiesKHR*          pProperties);
   7440 
   7441 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
   7442     VkDevice                                    device,
   7443     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
   7444     uint32_t*                                   pStatisticCount,
   7445     VkPipelineExecutableStatisticKHR*           pStatistics);
   7446 
   7447 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
   7448     VkDevice                                    device,
   7449     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
   7450     uint32_t*                                   pInternalRepresentationCount,
   7451     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
   7452 #endif
   7453 
   7454 
   7455 #define VK_KHR_shader_non_semantic_info 1
   7456 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
   7457 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
   7458 
   7459 
   7460 #define VK_KHR_copy_commands2 1
   7461 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
   7462 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
   7463 typedef struct VkBufferCopy2KHR {
   7464     VkStructureType    sType;
   7465     const void*        pNext;
   7466     VkDeviceSize       srcOffset;
   7467     VkDeviceSize       dstOffset;
   7468     VkDeviceSize       size;
   7469 } VkBufferCopy2KHR;
   7470 
   7471 typedef struct VkCopyBufferInfo2KHR {
   7472     VkStructureType            sType;
   7473     const void*                pNext;
   7474     VkBuffer                   srcBuffer;
   7475     VkBuffer                   dstBuffer;
   7476     uint32_t                   regionCount;
   7477     const VkBufferCopy2KHR*    pRegions;
   7478 } VkCopyBufferInfo2KHR;
   7479 
   7480 typedef struct VkImageCopy2KHR {
   7481     VkStructureType             sType;
   7482     const void*                 pNext;
   7483     VkImageSubresourceLayers    srcSubresource;
   7484     VkOffset3D                  srcOffset;
   7485     VkImageSubresourceLayers    dstSubresource;
   7486     VkOffset3D                  dstOffset;
   7487     VkExtent3D                  extent;
   7488 } VkImageCopy2KHR;
   7489 
   7490 typedef struct VkCopyImageInfo2KHR {
   7491     VkStructureType           sType;
   7492     const void*               pNext;
   7493     VkImage                   srcImage;
   7494     VkImageLayout             srcImageLayout;
   7495     VkImage                   dstImage;
   7496     VkImageLayout             dstImageLayout;
   7497     uint32_t                  regionCount;
   7498     const VkImageCopy2KHR*    pRegions;
   7499 } VkCopyImageInfo2KHR;
   7500 
   7501 typedef struct VkBufferImageCopy2KHR {
   7502     VkStructureType             sType;
   7503     const void*                 pNext;
   7504     VkDeviceSize                bufferOffset;
   7505     uint32_t                    bufferRowLength;
   7506     uint32_t                    bufferImageHeight;
   7507     VkImageSubresourceLayers    imageSubresource;
   7508     VkOffset3D                  imageOffset;
   7509     VkExtent3D                  imageExtent;
   7510 } VkBufferImageCopy2KHR;
   7511 
   7512 typedef struct VkCopyBufferToImageInfo2KHR {
   7513     VkStructureType                 sType;
   7514     const void*                     pNext;
   7515     VkBuffer                        srcBuffer;
   7516     VkImage                         dstImage;
   7517     VkImageLayout                   dstImageLayout;
   7518     uint32_t                        regionCount;
   7519     const VkBufferImageCopy2KHR*    pRegions;
   7520 } VkCopyBufferToImageInfo2KHR;
   7521 
   7522 typedef struct VkCopyImageToBufferInfo2KHR {
   7523     VkStructureType                 sType;
   7524     const void*                     pNext;
   7525     VkImage                         srcImage;
   7526     VkImageLayout                   srcImageLayout;
   7527     VkBuffer                        dstBuffer;
   7528     uint32_t                        regionCount;
   7529     const VkBufferImageCopy2KHR*    pRegions;
   7530 } VkCopyImageToBufferInfo2KHR;
   7531 
   7532 typedef struct VkImageBlit2KHR {
   7533     VkStructureType             sType;
   7534     const void*                 pNext;
   7535     VkImageSubresourceLayers    srcSubresource;
   7536     VkOffset3D                  srcOffsets[2];
   7537     VkImageSubresourceLayers    dstSubresource;
   7538     VkOffset3D                  dstOffsets[2];
   7539 } VkImageBlit2KHR;
   7540 
   7541 typedef struct VkBlitImageInfo2KHR {
   7542     VkStructureType           sType;
   7543     const void*               pNext;
   7544     VkImage                   srcImage;
   7545     VkImageLayout             srcImageLayout;
   7546     VkImage                   dstImage;
   7547     VkImageLayout             dstImageLayout;
   7548     uint32_t                  regionCount;
   7549     const VkImageBlit2KHR*    pRegions;
   7550     VkFilter                  filter;
   7551 } VkBlitImageInfo2KHR;
   7552 
   7553 typedef struct VkImageResolve2KHR {
   7554     VkStructureType             sType;
   7555     const void*                 pNext;
   7556     VkImageSubresourceLayers    srcSubresource;
   7557     VkOffset3D                  srcOffset;
   7558     VkImageSubresourceLayers    dstSubresource;
   7559     VkOffset3D                  dstOffset;
   7560     VkExtent3D                  extent;
   7561 } VkImageResolve2KHR;
   7562 
   7563 typedef struct VkResolveImageInfo2KHR {
   7564     VkStructureType              sType;
   7565     const void*                  pNext;
   7566     VkImage                      srcImage;
   7567     VkImageLayout                srcImageLayout;
   7568     VkImage                      dstImage;
   7569     VkImageLayout                dstImageLayout;
   7570     uint32_t                     regionCount;
   7571     const VkImageResolve2KHR*    pRegions;
   7572 } VkResolveImageInfo2KHR;
   7573 
   7574 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo);
   7575 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo);
   7576 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo);
   7577 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo);
   7578 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo);
   7579 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo);
   7580 
   7581 #ifndef VK_NO_PROTOTYPES
   7582 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
   7583     VkCommandBuffer                             commandBuffer,
   7584     const VkCopyBufferInfo2KHR*                 pCopyBufferInfo);
   7585 
   7586 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
   7587     VkCommandBuffer                             commandBuffer,
   7588     const VkCopyImageInfo2KHR*                  pCopyImageInfo);
   7589 
   7590 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
   7591     VkCommandBuffer                             commandBuffer,
   7592     const VkCopyBufferToImageInfo2KHR*          pCopyBufferToImageInfo);
   7593 
   7594 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
   7595     VkCommandBuffer                             commandBuffer,
   7596     const VkCopyImageToBufferInfo2KHR*          pCopyImageToBufferInfo);
   7597 
   7598 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
   7599     VkCommandBuffer                             commandBuffer,
   7600     const VkBlitImageInfo2KHR*                  pBlitImageInfo);
   7601 
   7602 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
   7603     VkCommandBuffer                             commandBuffer,
   7604     const VkResolveImageInfo2KHR*               pResolveImageInfo);
   7605 #endif
   7606 
   7607 
   7608 #define VK_EXT_debug_report 1
   7609 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
   7610 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9
   7611 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
   7612 
   7613 typedef enum VkDebugReportObjectTypeEXT {
   7614     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
   7615     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
   7616     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
   7617     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
   7618     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
   7619     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
   7620     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
   7621     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
   7622     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
   7623     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
   7624     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
   7625     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
   7626     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
   7627     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
   7628     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
   7629     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
   7630     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
   7631     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
   7632     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
   7633     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
   7634     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
   7635     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
   7636     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
   7637     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
   7638     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
   7639     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
   7640     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
   7641     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
   7642     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
   7643     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
   7644     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
   7645     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
   7646     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
   7647     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
   7648     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000165000,
   7649     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
   7650     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
   7651     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
   7652     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
   7653     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
   7654     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
   7655 } VkDebugReportObjectTypeEXT;
   7656 
   7657 typedef enum VkDebugReportFlagBitsEXT {
   7658     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
   7659     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
   7660     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
   7661     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
   7662     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
   7663     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   7664 } VkDebugReportFlagBitsEXT;
   7665 typedef VkFlags VkDebugReportFlagsEXT;
   7666 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
   7667     VkDebugReportFlagsEXT                       flags,
   7668     VkDebugReportObjectTypeEXT                  objectType,
   7669     uint64_t                                    object,
   7670     size_t                                      location,
   7671     int32_t                                     messageCode,
   7672     const char*                                 pLayerPrefix,
   7673     const char*                                 pMessage,
   7674     void*                                       pUserData);
   7675 
   7676 typedef struct VkDebugReportCallbackCreateInfoEXT {
   7677     VkStructureType                 sType;
   7678     const void*                     pNext;
   7679     VkDebugReportFlagsEXT           flags;
   7680     PFN_vkDebugReportCallbackEXT    pfnCallback;
   7681     void*                           pUserData;
   7682 } VkDebugReportCallbackCreateInfoEXT;
   7683 
   7684 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
   7685 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
   7686 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);
   7687 
   7688 #ifndef VK_NO_PROTOTYPES
   7689 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
   7690     VkInstance                                  instance,
   7691     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
   7692     const VkAllocationCallbacks*                pAllocator,
   7693     VkDebugReportCallbackEXT*                   pCallback);
   7694 
   7695 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
   7696     VkInstance                                  instance,
   7697     VkDebugReportCallbackEXT                    callback,
   7698     const VkAllocationCallbacks*                pAllocator);
   7699 
   7700 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
   7701     VkInstance                                  instance,
   7702     VkDebugReportFlagsEXT                       flags,
   7703     VkDebugReportObjectTypeEXT                  objectType,
   7704     uint64_t                                    object,
   7705     size_t                                      location,
   7706     int32_t                                     messageCode,
   7707     const char*                                 pLayerPrefix,
   7708     const char*                                 pMessage);
   7709 #endif
   7710 
   7711 
   7712 #define VK_NV_glsl_shader 1
   7713 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
   7714 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
   7715 
   7716 
   7717 #define VK_EXT_depth_range_unrestricted 1
   7718 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
   7719 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
   7720 
   7721 
   7722 #define VK_IMG_filter_cubic 1
   7723 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
   7724 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
   7725 
   7726 
   7727 #define VK_AMD_rasterization_order 1
   7728 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
   7729 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
   7730 
   7731 typedef enum VkRasterizationOrderAMD {
   7732     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
   7733     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
   7734     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
   7735 } VkRasterizationOrderAMD;
   7736 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
   7737     VkStructureType            sType;
   7738     const void*                pNext;
   7739     VkRasterizationOrderAMD    rasterizationOrder;
   7740 } VkPipelineRasterizationStateRasterizationOrderAMD;
   7741 
   7742 
   7743 
   7744 #define VK_AMD_shader_trinary_minmax 1
   7745 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
   7746 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
   7747 
   7748 
   7749 #define VK_AMD_shader_explicit_vertex_parameter 1
   7750 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
   7751 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
   7752 
   7753 
   7754 #define VK_EXT_debug_marker 1
   7755 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
   7756 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
   7757 typedef struct VkDebugMarkerObjectNameInfoEXT {
   7758     VkStructureType               sType;
   7759     const void*                   pNext;
   7760     VkDebugReportObjectTypeEXT    objectType;
   7761     uint64_t                      object;
   7762     const char*                   pObjectName;
   7763 } VkDebugMarkerObjectNameInfoEXT;
   7764 
   7765 typedef struct VkDebugMarkerObjectTagInfoEXT {
   7766     VkStructureType               sType;
   7767     const void*                   pNext;
   7768     VkDebugReportObjectTypeEXT    objectType;
   7769     uint64_t                      object;
   7770     uint64_t                      tagName;
   7771     size_t                        tagSize;
   7772     const void*                   pTag;
   7773 } VkDebugMarkerObjectTagInfoEXT;
   7774 
   7775 typedef struct VkDebugMarkerMarkerInfoEXT {
   7776     VkStructureType    sType;
   7777     const void*        pNext;
   7778     const char*        pMarkerName;
   7779     float              color[4];
   7780 } VkDebugMarkerMarkerInfoEXT;
   7781 
   7782 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
   7783 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
   7784 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
   7785 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
   7786 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
   7787 
   7788 #ifndef VK_NO_PROTOTYPES
   7789 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
   7790     VkDevice                                    device,
   7791     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
   7792 
   7793 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
   7794     VkDevice                                    device,
   7795     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
   7796 
   7797 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
   7798     VkCommandBuffer                             commandBuffer,
   7799     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
   7800 
   7801 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
   7802     VkCommandBuffer                             commandBuffer);
   7803 
   7804 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
   7805     VkCommandBuffer                             commandBuffer,
   7806     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
   7807 #endif
   7808 
   7809 
   7810 #define VK_AMD_gcn_shader 1
   7811 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
   7812 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
   7813 
   7814 
   7815 #define VK_NV_dedicated_allocation 1
   7816 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
   7817 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
   7818 typedef struct VkDedicatedAllocationImageCreateInfoNV {
   7819     VkStructureType    sType;
   7820     const void*        pNext;
   7821     VkBool32           dedicatedAllocation;
   7822 } VkDedicatedAllocationImageCreateInfoNV;
   7823 
   7824 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
   7825     VkStructureType    sType;
   7826     const void*        pNext;
   7827     VkBool32           dedicatedAllocation;
   7828 } VkDedicatedAllocationBufferCreateInfoNV;
   7829 
   7830 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
   7831     VkStructureType    sType;
   7832     const void*        pNext;
   7833     VkImage            image;
   7834     VkBuffer           buffer;
   7835 } VkDedicatedAllocationMemoryAllocateInfoNV;
   7836 
   7837 
   7838 
   7839 #define VK_EXT_transform_feedback 1
   7840 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
   7841 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
   7842 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
   7843 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
   7844     VkStructureType    sType;
   7845     void*              pNext;
   7846     VkBool32           transformFeedback;
   7847     VkBool32           geometryStreams;
   7848 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
   7849 
   7850 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
   7851     VkStructureType    sType;
   7852     void*              pNext;
   7853     uint32_t           maxTransformFeedbackStreams;
   7854     uint32_t           maxTransformFeedbackBuffers;
   7855     VkDeviceSize       maxTransformFeedbackBufferSize;
   7856     uint32_t           maxTransformFeedbackStreamDataSize;
   7857     uint32_t           maxTransformFeedbackBufferDataSize;
   7858     uint32_t           maxTransformFeedbackBufferDataStride;
   7859     VkBool32           transformFeedbackQueries;
   7860     VkBool32           transformFeedbackStreamsLinesTriangles;
   7861     VkBool32           transformFeedbackRasterizationStreamSelect;
   7862     VkBool32           transformFeedbackDraw;
   7863 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
   7864 
   7865 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
   7866     VkStructureType                                     sType;
   7867     const void*                                         pNext;
   7868     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
   7869     uint32_t                                            rasterizationStream;
   7870 } VkPipelineRasterizationStateStreamCreateInfoEXT;
   7871 
   7872 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
   7873 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
   7874 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
   7875 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
   7876 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
   7877 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
   7878 
   7879 #ifndef VK_NO_PROTOTYPES
   7880 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
   7881     VkCommandBuffer                             commandBuffer,
   7882     uint32_t                                    firstBinding,
   7883     uint32_t                                    bindingCount,
   7884     const VkBuffer*                             pBuffers,
   7885     const VkDeviceSize*                         pOffsets,
   7886     const VkDeviceSize*                         pSizes);
   7887 
   7888 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
   7889     VkCommandBuffer                             commandBuffer,
   7890     uint32_t                                    firstCounterBuffer,
   7891     uint32_t                                    counterBufferCount,
   7892     const VkBuffer*                             pCounterBuffers,
   7893     const VkDeviceSize*                         pCounterBufferOffsets);
   7894 
   7895 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
   7896     VkCommandBuffer                             commandBuffer,
   7897     uint32_t                                    firstCounterBuffer,
   7898     uint32_t                                    counterBufferCount,
   7899     const VkBuffer*                             pCounterBuffers,
   7900     const VkDeviceSize*                         pCounterBufferOffsets);
   7901 
   7902 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
   7903     VkCommandBuffer                             commandBuffer,
   7904     VkQueryPool                                 queryPool,
   7905     uint32_t                                    query,
   7906     VkQueryControlFlags                         flags,
   7907     uint32_t                                    index);
   7908 
   7909 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
   7910     VkCommandBuffer                             commandBuffer,
   7911     VkQueryPool                                 queryPool,
   7912     uint32_t                                    query,
   7913     uint32_t                                    index);
   7914 
   7915 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
   7916     VkCommandBuffer                             commandBuffer,
   7917     uint32_t                                    instanceCount,
   7918     uint32_t                                    firstInstance,
   7919     VkBuffer                                    counterBuffer,
   7920     VkDeviceSize                                counterBufferOffset,
   7921     uint32_t                                    counterOffset,
   7922     uint32_t                                    vertexStride);
   7923 #endif
   7924 
   7925 
   7926 #define VK_NVX_image_view_handle 1
   7927 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
   7928 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
   7929 typedef struct VkImageViewHandleInfoNVX {
   7930     VkStructureType     sType;
   7931     const void*         pNext;
   7932     VkImageView         imageView;
   7933     VkDescriptorType    descriptorType;
   7934     VkSampler           sampler;
   7935 } VkImageViewHandleInfoNVX;
   7936 
   7937 typedef struct VkImageViewAddressPropertiesNVX {
   7938     VkStructureType    sType;
   7939     void*              pNext;
   7940     VkDeviceAddress    deviceAddress;
   7941     VkDeviceSize       size;
   7942 } VkImageViewAddressPropertiesNVX;
   7943 
   7944 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
   7945 typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
   7946 
   7947 #ifndef VK_NO_PROTOTYPES
   7948 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
   7949     VkDevice                                    device,
   7950     const VkImageViewHandleInfoNVX*             pInfo);
   7951 
   7952 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
   7953     VkDevice                                    device,
   7954     VkImageView                                 imageView,
   7955     VkImageViewAddressPropertiesNVX*            pProperties);
   7956 #endif
   7957 
   7958 
   7959 #define VK_AMD_draw_indirect_count 1
   7960 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
   7961 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
   7962 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   7963 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   7964 
   7965 #ifndef VK_NO_PROTOTYPES
   7966 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
   7967     VkCommandBuffer                             commandBuffer,
   7968     VkBuffer                                    buffer,
   7969     VkDeviceSize                                offset,
   7970     VkBuffer                                    countBuffer,
   7971     VkDeviceSize                                countBufferOffset,
   7972     uint32_t                                    maxDrawCount,
   7973     uint32_t                                    stride);
   7974 
   7975 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
   7976     VkCommandBuffer                             commandBuffer,
   7977     VkBuffer                                    buffer,
   7978     VkDeviceSize                                offset,
   7979     VkBuffer                                    countBuffer,
   7980     VkDeviceSize                                countBufferOffset,
   7981     uint32_t                                    maxDrawCount,
   7982     uint32_t                                    stride);
   7983 #endif
   7984 
   7985 
   7986 #define VK_AMD_negative_viewport_height 1
   7987 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
   7988 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
   7989 
   7990 
   7991 #define VK_AMD_gpu_shader_half_float 1
   7992 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
   7993 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
   7994 
   7995 
   7996 #define VK_AMD_shader_ballot 1
   7997 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
   7998 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
   7999 
   8000 
   8001 #define VK_AMD_texture_gather_bias_lod 1
   8002 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
   8003 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
   8004 typedef struct VkTextureLODGatherFormatPropertiesAMD {
   8005     VkStructureType    sType;
   8006     void*              pNext;
   8007     VkBool32           supportsTextureGatherLODBiasAMD;
   8008 } VkTextureLODGatherFormatPropertiesAMD;
   8009 
   8010 
   8011 
   8012 #define VK_AMD_shader_info 1
   8013 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
   8014 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
   8015 
   8016 typedef enum VkShaderInfoTypeAMD {
   8017     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
   8018     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
   8019     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
   8020     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
   8021 } VkShaderInfoTypeAMD;
   8022 typedef struct VkShaderResourceUsageAMD {
   8023     uint32_t    numUsedVgprs;
   8024     uint32_t    numUsedSgprs;
   8025     uint32_t    ldsSizePerLocalWorkGroup;
   8026     size_t      ldsUsageSizeInBytes;
   8027     size_t      scratchMemUsageInBytes;
   8028 } VkShaderResourceUsageAMD;
   8029 
   8030 typedef struct VkShaderStatisticsInfoAMD {
   8031     VkShaderStageFlags          shaderStageMask;
   8032     VkShaderResourceUsageAMD    resourceUsage;
   8033     uint32_t                    numPhysicalVgprs;
   8034     uint32_t                    numPhysicalSgprs;
   8035     uint32_t                    numAvailableVgprs;
   8036     uint32_t                    numAvailableSgprs;
   8037     uint32_t                    computeWorkGroupSize[3];
   8038 } VkShaderStatisticsInfoAMD;
   8039 
   8040 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
   8041 
   8042 #ifndef VK_NO_PROTOTYPES
   8043 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
   8044     VkDevice                                    device,
   8045     VkPipeline                                  pipeline,
   8046     VkShaderStageFlagBits                       shaderStage,
   8047     VkShaderInfoTypeAMD                         infoType,
   8048     size_t*                                     pInfoSize,
   8049     void*                                       pInfo);
   8050 #endif
   8051 
   8052 
   8053 #define VK_AMD_shader_image_load_store_lod 1
   8054 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
   8055 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
   8056 
   8057 
   8058 #define VK_NV_corner_sampled_image 1
   8059 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
   8060 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
   8061 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
   8062     VkStructureType    sType;
   8063     void*              pNext;
   8064     VkBool32           cornerSampledImage;
   8065 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
   8066 
   8067 
   8068 
   8069 #define VK_IMG_format_pvrtc 1
   8070 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
   8071 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
   8072 
   8073 
   8074 #define VK_NV_external_memory_capabilities 1
   8075 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
   8076 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
   8077 
   8078 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
   8079     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
   8080     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
   8081     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
   8082     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
   8083     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
   8084 } VkExternalMemoryHandleTypeFlagBitsNV;
   8085 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
   8086 
   8087 typedef enum VkExternalMemoryFeatureFlagBitsNV {
   8088     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
   8089     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
   8090     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
   8091     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
   8092 } VkExternalMemoryFeatureFlagBitsNV;
   8093 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
   8094 typedef struct VkExternalImageFormatPropertiesNV {
   8095     VkImageFormatProperties              imageFormatProperties;
   8096     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
   8097     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
   8098     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
   8099 } VkExternalImageFormatPropertiesNV;
   8100 
   8101 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
   8102 
   8103 #ifndef VK_NO_PROTOTYPES
   8104 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
   8105     VkPhysicalDevice                            physicalDevice,
   8106     VkFormat                                    format,
   8107     VkImageType                                 type,
   8108     VkImageTiling                               tiling,
   8109     VkImageUsageFlags                           usage,
   8110     VkImageCreateFlags                          flags,
   8111     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
   8112     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
   8113 #endif
   8114 
   8115 
   8116 #define VK_NV_external_memory 1
   8117 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
   8118 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
   8119 typedef struct VkExternalMemoryImageCreateInfoNV {
   8120     VkStructureType                      sType;
   8121     const void*                          pNext;
   8122     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
   8123 } VkExternalMemoryImageCreateInfoNV;
   8124 
   8125 typedef struct VkExportMemoryAllocateInfoNV {
   8126     VkStructureType                      sType;
   8127     const void*                          pNext;
   8128     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
   8129 } VkExportMemoryAllocateInfoNV;
   8130 
   8131 
   8132 
   8133 #define VK_EXT_validation_flags 1
   8134 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
   8135 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
   8136 
   8137 typedef enum VkValidationCheckEXT {
   8138     VK_VALIDATION_CHECK_ALL_EXT = 0,
   8139     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
   8140     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
   8141 } VkValidationCheckEXT;
   8142 typedef struct VkValidationFlagsEXT {
   8143     VkStructureType                sType;
   8144     const void*                    pNext;
   8145     uint32_t                       disabledValidationCheckCount;
   8146     const VkValidationCheckEXT*    pDisabledValidationChecks;
   8147 } VkValidationFlagsEXT;
   8148 
   8149 
   8150 
   8151 #define VK_EXT_shader_subgroup_ballot 1
   8152 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
   8153 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
   8154 
   8155 
   8156 #define VK_EXT_shader_subgroup_vote 1
   8157 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
   8158 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
   8159 
   8160 
   8161 #define VK_EXT_texture_compression_astc_hdr 1
   8162 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
   8163 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
   8164 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
   8165     VkStructureType    sType;
   8166     void*              pNext;
   8167     VkBool32           textureCompressionASTC_HDR;
   8168 } VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
   8169 
   8170 
   8171 
   8172 #define VK_EXT_astc_decode_mode 1
   8173 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
   8174 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
   8175 typedef struct VkImageViewASTCDecodeModeEXT {
   8176     VkStructureType    sType;
   8177     const void*        pNext;
   8178     VkFormat           decodeMode;
   8179 } VkImageViewASTCDecodeModeEXT;
   8180 
   8181 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
   8182     VkStructureType    sType;
   8183     void*              pNext;
   8184     VkBool32           decodeModeSharedExponent;
   8185 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
   8186 
   8187 
   8188 
   8189 #define VK_EXT_conditional_rendering 1
   8190 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
   8191 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
   8192 
   8193 typedef enum VkConditionalRenderingFlagBitsEXT {
   8194     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
   8195     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   8196 } VkConditionalRenderingFlagBitsEXT;
   8197 typedef VkFlags VkConditionalRenderingFlagsEXT;
   8198 typedef struct VkConditionalRenderingBeginInfoEXT {
   8199     VkStructureType                   sType;
   8200     const void*                       pNext;
   8201     VkBuffer                          buffer;
   8202     VkDeviceSize                      offset;
   8203     VkConditionalRenderingFlagsEXT    flags;
   8204 } VkConditionalRenderingBeginInfoEXT;
   8205 
   8206 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
   8207     VkStructureType    sType;
   8208     void*              pNext;
   8209     VkBool32           conditionalRendering;
   8210     VkBool32           inheritedConditionalRendering;
   8211 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
   8212 
   8213 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
   8214     VkStructureType    sType;
   8215     const void*        pNext;
   8216     VkBool32           conditionalRenderingEnable;
   8217 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
   8218 
   8219 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
   8220 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
   8221 
   8222 #ifndef VK_NO_PROTOTYPES
   8223 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
   8224     VkCommandBuffer                             commandBuffer,
   8225     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
   8226 
   8227 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
   8228     VkCommandBuffer                             commandBuffer);
   8229 #endif
   8230 
   8231 
   8232 #define VK_NV_clip_space_w_scaling 1
   8233 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
   8234 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
   8235 typedef struct VkViewportWScalingNV {
   8236     float    xcoeff;
   8237     float    ycoeff;
   8238 } VkViewportWScalingNV;
   8239 
   8240 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
   8241     VkStructureType                sType;
   8242     const void*                    pNext;
   8243     VkBool32                       viewportWScalingEnable;
   8244     uint32_t                       viewportCount;
   8245     const VkViewportWScalingNV*    pViewportWScalings;
   8246 } VkPipelineViewportWScalingStateCreateInfoNV;
   8247 
   8248 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
   8249 
   8250 #ifndef VK_NO_PROTOTYPES
   8251 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
   8252     VkCommandBuffer                             commandBuffer,
   8253     uint32_t                                    firstViewport,
   8254     uint32_t                                    viewportCount,
   8255     const VkViewportWScalingNV*                 pViewportWScalings);
   8256 #endif
   8257 
   8258 
   8259 #define VK_EXT_direct_mode_display 1
   8260 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
   8261 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
   8262 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
   8263 
   8264 #ifndef VK_NO_PROTOTYPES
   8265 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
   8266     VkPhysicalDevice                            physicalDevice,
   8267     VkDisplayKHR                                display);
   8268 #endif
   8269 
   8270 
   8271 #define VK_EXT_display_surface_counter 1
   8272 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
   8273 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
   8274 
   8275 typedef enum VkSurfaceCounterFlagBitsEXT {
   8276     VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
   8277     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   8278 } VkSurfaceCounterFlagBitsEXT;
   8279 typedef VkFlags VkSurfaceCounterFlagsEXT;
   8280 typedef struct VkSurfaceCapabilities2EXT {
   8281     VkStructureType                  sType;
   8282     void*                            pNext;
   8283     uint32_t                         minImageCount;
   8284     uint32_t                         maxImageCount;
   8285     VkExtent2D                       currentExtent;
   8286     VkExtent2D                       minImageExtent;
   8287     VkExtent2D                       maxImageExtent;
   8288     uint32_t                         maxImageArrayLayers;
   8289     VkSurfaceTransformFlagsKHR       supportedTransforms;
   8290     VkSurfaceTransformFlagBitsKHR    currentTransform;
   8291     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
   8292     VkImageUsageFlags                supportedUsageFlags;
   8293     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
   8294 } VkSurfaceCapabilities2EXT;
   8295 
   8296 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
   8297 
   8298 #ifndef VK_NO_PROTOTYPES
   8299 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
   8300     VkPhysicalDevice                            physicalDevice,
   8301     VkSurfaceKHR                                surface,
   8302     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
   8303 #endif
   8304 
   8305 
   8306 #define VK_EXT_display_control 1
   8307 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
   8308 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
   8309 
   8310 typedef enum VkDisplayPowerStateEXT {
   8311     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
   8312     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
   8313     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
   8314     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
   8315 } VkDisplayPowerStateEXT;
   8316 
   8317 typedef enum VkDeviceEventTypeEXT {
   8318     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
   8319     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
   8320 } VkDeviceEventTypeEXT;
   8321 
   8322 typedef enum VkDisplayEventTypeEXT {
   8323     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
   8324     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
   8325 } VkDisplayEventTypeEXT;
   8326 typedef struct VkDisplayPowerInfoEXT {
   8327     VkStructureType           sType;
   8328     const void*               pNext;
   8329     VkDisplayPowerStateEXT    powerState;
   8330 } VkDisplayPowerInfoEXT;
   8331 
   8332 typedef struct VkDeviceEventInfoEXT {
   8333     VkStructureType         sType;
   8334     const void*             pNext;
   8335     VkDeviceEventTypeEXT    deviceEvent;
   8336 } VkDeviceEventInfoEXT;
   8337 
   8338 typedef struct VkDisplayEventInfoEXT {
   8339     VkStructureType          sType;
   8340     const void*              pNext;
   8341     VkDisplayEventTypeEXT    displayEvent;
   8342 } VkDisplayEventInfoEXT;
   8343 
   8344 typedef struct VkSwapchainCounterCreateInfoEXT {
   8345     VkStructureType             sType;
   8346     const void*                 pNext;
   8347     VkSurfaceCounterFlagsEXT    surfaceCounters;
   8348 } VkSwapchainCounterCreateInfoEXT;
   8349 
   8350 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
   8351 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
   8352 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
   8353 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
   8354 
   8355 #ifndef VK_NO_PROTOTYPES
   8356 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
   8357     VkDevice                                    device,
   8358     VkDisplayKHR                                display,
   8359     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
   8360 
   8361 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
   8362     VkDevice                                    device,
   8363     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
   8364     const VkAllocationCallbacks*                pAllocator,
   8365     VkFence*                                    pFence);
   8366 
   8367 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
   8368     VkDevice                                    device,
   8369     VkDisplayKHR                                display,
   8370     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
   8371     const VkAllocationCallbacks*                pAllocator,
   8372     VkFence*                                    pFence);
   8373 
   8374 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
   8375     VkDevice                                    device,
   8376     VkSwapchainKHR                              swapchain,
   8377     VkSurfaceCounterFlagBitsEXT                 counter,
   8378     uint64_t*                                   pCounterValue);
   8379 #endif
   8380 
   8381 
   8382 #define VK_GOOGLE_display_timing 1
   8383 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
   8384 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
   8385 typedef struct VkRefreshCycleDurationGOOGLE {
   8386     uint64_t    refreshDuration;
   8387 } VkRefreshCycleDurationGOOGLE;
   8388 
   8389 typedef struct VkPastPresentationTimingGOOGLE {
   8390     uint32_t    presentID;
   8391     uint64_t    desiredPresentTime;
   8392     uint64_t    actualPresentTime;
   8393     uint64_t    earliestPresentTime;
   8394     uint64_t    presentMargin;
   8395 } VkPastPresentationTimingGOOGLE;
   8396 
   8397 typedef struct VkPresentTimeGOOGLE {
   8398     uint32_t    presentID;
   8399     uint64_t    desiredPresentTime;
   8400 } VkPresentTimeGOOGLE;
   8401 
   8402 typedef struct VkPresentTimesInfoGOOGLE {
   8403     VkStructureType               sType;
   8404     const void*                   pNext;
   8405     uint32_t                      swapchainCount;
   8406     const VkPresentTimeGOOGLE*    pTimes;
   8407 } VkPresentTimesInfoGOOGLE;
   8408 
   8409 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
   8410 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
   8411 
   8412 #ifndef VK_NO_PROTOTYPES
   8413 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
   8414     VkDevice                                    device,
   8415     VkSwapchainKHR                              swapchain,
   8416     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
   8417 
   8418 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
   8419     VkDevice                                    device,
   8420     VkSwapchainKHR                              swapchain,
   8421     uint32_t*                                   pPresentationTimingCount,
   8422     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
   8423 #endif
   8424 
   8425 
   8426 #define VK_NV_sample_mask_override_coverage 1
   8427 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
   8428 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
   8429 
   8430 
   8431 #define VK_NV_geometry_shader_passthrough 1
   8432 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
   8433 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
   8434 
   8435 
   8436 #define VK_NV_viewport_array2 1
   8437 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
   8438 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
   8439 
   8440 
   8441 #define VK_NVX_multiview_per_view_attributes 1
   8442 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
   8443 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
   8444 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
   8445     VkStructureType    sType;
   8446     void*              pNext;
   8447     VkBool32           perViewPositionAllComponents;
   8448 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
   8449 
   8450 
   8451 
   8452 #define VK_NV_viewport_swizzle 1
   8453 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
   8454 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
   8455 
   8456 typedef enum VkViewportCoordinateSwizzleNV {
   8457     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
   8458     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
   8459     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
   8460     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
   8461     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
   8462     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
   8463     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
   8464     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
   8465     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
   8466 } VkViewportCoordinateSwizzleNV;
   8467 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
   8468 typedef struct VkViewportSwizzleNV {
   8469     VkViewportCoordinateSwizzleNV    x;
   8470     VkViewportCoordinateSwizzleNV    y;
   8471     VkViewportCoordinateSwizzleNV    z;
   8472     VkViewportCoordinateSwizzleNV    w;
   8473 } VkViewportSwizzleNV;
   8474 
   8475 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
   8476     VkStructureType                                sType;
   8477     const void*                                    pNext;
   8478     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
   8479     uint32_t                                       viewportCount;
   8480     const VkViewportSwizzleNV*                     pViewportSwizzles;
   8481 } VkPipelineViewportSwizzleStateCreateInfoNV;
   8482 
   8483 
   8484 
   8485 #define VK_EXT_discard_rectangles 1
   8486 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
   8487 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
   8488 
   8489 typedef enum VkDiscardRectangleModeEXT {
   8490     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
   8491     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
   8492     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
   8493 } VkDiscardRectangleModeEXT;
   8494 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
   8495 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
   8496     VkStructureType    sType;
   8497     void*              pNext;
   8498     uint32_t           maxDiscardRectangles;
   8499 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
   8500 
   8501 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
   8502     VkStructureType                                  sType;
   8503     const void*                                      pNext;
   8504     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
   8505     VkDiscardRectangleModeEXT                        discardRectangleMode;
   8506     uint32_t                                         discardRectangleCount;
   8507     const VkRect2D*                                  pDiscardRectangles;
   8508 } VkPipelineDiscardRectangleStateCreateInfoEXT;
   8509 
   8510 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
   8511 
   8512 #ifndef VK_NO_PROTOTYPES
   8513 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
   8514     VkCommandBuffer                             commandBuffer,
   8515     uint32_t                                    firstDiscardRectangle,
   8516     uint32_t                                    discardRectangleCount,
   8517     const VkRect2D*                             pDiscardRectangles);
   8518 #endif
   8519 
   8520 
   8521 #define VK_EXT_conservative_rasterization 1
   8522 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
   8523 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
   8524 
   8525 typedef enum VkConservativeRasterizationModeEXT {
   8526     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
   8527     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
   8528     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
   8529     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
   8530 } VkConservativeRasterizationModeEXT;
   8531 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
   8532 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
   8533     VkStructureType    sType;
   8534     void*              pNext;
   8535     float              primitiveOverestimationSize;
   8536     float              maxExtraPrimitiveOverestimationSize;
   8537     float              extraPrimitiveOverestimationSizeGranularity;
   8538     VkBool32           primitiveUnderestimation;
   8539     VkBool32           conservativePointAndLineRasterization;
   8540     VkBool32           degenerateTrianglesRasterized;
   8541     VkBool32           degenerateLinesRasterized;
   8542     VkBool32           fullyCoveredFragmentShaderInputVariable;
   8543     VkBool32           conservativeRasterizationPostDepthCoverage;
   8544 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
   8545 
   8546 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
   8547     VkStructureType                                           sType;
   8548     const void*                                               pNext;
   8549     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
   8550     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
   8551     float                                                     extraPrimitiveOverestimationSize;
   8552 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
   8553 
   8554 
   8555 
   8556 #define VK_EXT_depth_clip_enable 1
   8557 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
   8558 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
   8559 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
   8560 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
   8561     VkStructureType    sType;
   8562     void*              pNext;
   8563     VkBool32           depthClipEnable;
   8564 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
   8565 
   8566 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
   8567     VkStructureType                                        sType;
   8568     const void*                                            pNext;
   8569     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
   8570     VkBool32                                               depthClipEnable;
   8571 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
   8572 
   8573 
   8574 
   8575 #define VK_EXT_swapchain_colorspace 1
   8576 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
   8577 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
   8578 
   8579 
   8580 #define VK_EXT_hdr_metadata 1
   8581 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
   8582 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
   8583 typedef struct VkXYColorEXT {
   8584     float    x;
   8585     float    y;
   8586 } VkXYColorEXT;
   8587 
   8588 typedef struct VkHdrMetadataEXT {
   8589     VkStructureType    sType;
   8590     const void*        pNext;
   8591     VkXYColorEXT       displayPrimaryRed;
   8592     VkXYColorEXT       displayPrimaryGreen;
   8593     VkXYColorEXT       displayPrimaryBlue;
   8594     VkXYColorEXT       whitePoint;
   8595     float              maxLuminance;
   8596     float              minLuminance;
   8597     float              maxContentLightLevel;
   8598     float              maxFrameAverageLightLevel;
   8599 } VkHdrMetadataEXT;
   8600 
   8601 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
   8602 
   8603 #ifndef VK_NO_PROTOTYPES
   8604 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
   8605     VkDevice                                    device,
   8606     uint32_t                                    swapchainCount,
   8607     const VkSwapchainKHR*                       pSwapchains,
   8608     const VkHdrMetadataEXT*                     pMetadata);
   8609 #endif
   8610 
   8611 
   8612 #define VK_EXT_external_memory_dma_buf 1
   8613 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
   8614 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
   8615 
   8616 
   8617 #define VK_EXT_queue_family_foreign 1
   8618 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
   8619 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
   8620 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~0U-2)
   8621 
   8622 
   8623 #define VK_EXT_debug_utils 1
   8624 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
   8625 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
   8626 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
   8627 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
   8628 
   8629 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
   8630     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
   8631     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
   8632     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
   8633     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
   8634     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   8635 } VkDebugUtilsMessageSeverityFlagBitsEXT;
   8636 
   8637 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
   8638     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
   8639     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
   8640     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
   8641     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   8642 } VkDebugUtilsMessageTypeFlagBitsEXT;
   8643 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
   8644 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
   8645 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
   8646 typedef struct VkDebugUtilsLabelEXT {
   8647     VkStructureType    sType;
   8648     const void*        pNext;
   8649     const char*        pLabelName;
   8650     float              color[4];
   8651 } VkDebugUtilsLabelEXT;
   8652 
   8653 typedef struct VkDebugUtilsObjectNameInfoEXT {
   8654     VkStructureType    sType;
   8655     const void*        pNext;
   8656     VkObjectType       objectType;
   8657     uint64_t           objectHandle;
   8658     const char*        pObjectName;
   8659 } VkDebugUtilsObjectNameInfoEXT;
   8660 
   8661 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
   8662     VkStructureType                              sType;
   8663     const void*                                  pNext;
   8664     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
   8665     const char*                                  pMessageIdName;
   8666     int32_t                                      messageIdNumber;
   8667     const char*                                  pMessage;
   8668     uint32_t                                     queueLabelCount;
   8669     const VkDebugUtilsLabelEXT*                  pQueueLabels;
   8670     uint32_t                                     cmdBufLabelCount;
   8671     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
   8672     uint32_t                                     objectCount;
   8673     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
   8674 } VkDebugUtilsMessengerCallbackDataEXT;
   8675 
   8676 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
   8677     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
   8678     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
   8679     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
   8680     void*                                            pUserData);
   8681 
   8682 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
   8683     VkStructureType                         sType;
   8684     const void*                             pNext;
   8685     VkDebugUtilsMessengerCreateFlagsEXT     flags;
   8686     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
   8687     VkDebugUtilsMessageTypeFlagsEXT         messageType;
   8688     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
   8689     void*                                   pUserData;
   8690 } VkDebugUtilsMessengerCreateInfoEXT;
   8691 
   8692 typedef struct VkDebugUtilsObjectTagInfoEXT {
   8693     VkStructureType    sType;
   8694     const void*        pNext;
   8695     VkObjectType       objectType;
   8696     uint64_t           objectHandle;
   8697     uint64_t           tagName;
   8698     size_t             tagSize;
   8699     const void*        pTag;
   8700 } VkDebugUtilsObjectTagInfoEXT;
   8701 
   8702 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
   8703 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
   8704 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
   8705 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
   8706 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
   8707 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
   8708 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
   8709 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
   8710 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
   8711 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
   8712 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
   8713 
   8714 #ifndef VK_NO_PROTOTYPES
   8715 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
   8716     VkDevice                                    device,
   8717     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
   8718 
   8719 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
   8720     VkDevice                                    device,
   8721     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
   8722 
   8723 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
   8724     VkQueue                                     queue,
   8725     const VkDebugUtilsLabelEXT*                 pLabelInfo);
   8726 
   8727 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
   8728     VkQueue                                     queue);
   8729 
   8730 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
   8731     VkQueue                                     queue,
   8732     const VkDebugUtilsLabelEXT*                 pLabelInfo);
   8733 
   8734 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
   8735     VkCommandBuffer                             commandBuffer,
   8736     const VkDebugUtilsLabelEXT*                 pLabelInfo);
   8737 
   8738 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
   8739     VkCommandBuffer                             commandBuffer);
   8740 
   8741 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
   8742     VkCommandBuffer                             commandBuffer,
   8743     const VkDebugUtilsLabelEXT*                 pLabelInfo);
   8744 
   8745 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
   8746     VkInstance                                  instance,
   8747     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
   8748     const VkAllocationCallbacks*                pAllocator,
   8749     VkDebugUtilsMessengerEXT*                   pMessenger);
   8750 
   8751 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
   8752     VkInstance                                  instance,
   8753     VkDebugUtilsMessengerEXT                    messenger,
   8754     const VkAllocationCallbacks*                pAllocator);
   8755 
   8756 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
   8757     VkInstance                                  instance,
   8758     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
   8759     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
   8760     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
   8761 #endif
   8762 
   8763 
   8764 #define VK_EXT_sampler_filter_minmax 1
   8765 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
   8766 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
   8767 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
   8768 
   8769 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
   8770 
   8771 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
   8772 
   8773 
   8774 
   8775 #define VK_AMD_gpu_shader_int16 1
   8776 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
   8777 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
   8778 
   8779 
   8780 #define VK_AMD_mixed_attachment_samples 1
   8781 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
   8782 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
   8783 
   8784 
   8785 #define VK_AMD_shader_fragment_mask 1
   8786 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
   8787 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
   8788 
   8789 
   8790 #define VK_EXT_inline_uniform_block 1
   8791 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
   8792 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
   8793 typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
   8794     VkStructureType    sType;
   8795     void*              pNext;
   8796     VkBool32           inlineUniformBlock;
   8797     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
   8798 } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
   8799 
   8800 typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
   8801     VkStructureType    sType;
   8802     void*              pNext;
   8803     uint32_t           maxInlineUniformBlockSize;
   8804     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
   8805     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
   8806     uint32_t           maxDescriptorSetInlineUniformBlocks;
   8807     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
   8808 } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
   8809 
   8810 typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
   8811     VkStructureType    sType;
   8812     const void*        pNext;
   8813     uint32_t           dataSize;
   8814     const void*        pData;
   8815 } VkWriteDescriptorSetInlineUniformBlockEXT;
   8816 
   8817 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
   8818     VkStructureType    sType;
   8819     const void*        pNext;
   8820     uint32_t           maxInlineUniformBlockBindings;
   8821 } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
   8822 
   8823 
   8824 
   8825 #define VK_EXT_shader_stencil_export 1
   8826 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
   8827 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
   8828 
   8829 
   8830 #define VK_EXT_sample_locations 1
   8831 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
   8832 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
   8833 typedef struct VkSampleLocationEXT {
   8834     float    x;
   8835     float    y;
   8836 } VkSampleLocationEXT;
   8837 
   8838 typedef struct VkSampleLocationsInfoEXT {
   8839     VkStructureType               sType;
   8840     const void*                   pNext;
   8841     VkSampleCountFlagBits         sampleLocationsPerPixel;
   8842     VkExtent2D                    sampleLocationGridSize;
   8843     uint32_t                      sampleLocationsCount;
   8844     const VkSampleLocationEXT*    pSampleLocations;
   8845 } VkSampleLocationsInfoEXT;
   8846 
   8847 typedef struct VkAttachmentSampleLocationsEXT {
   8848     uint32_t                    attachmentIndex;
   8849     VkSampleLocationsInfoEXT    sampleLocationsInfo;
   8850 } VkAttachmentSampleLocationsEXT;
   8851 
   8852 typedef struct VkSubpassSampleLocationsEXT {
   8853     uint32_t                    subpassIndex;
   8854     VkSampleLocationsInfoEXT    sampleLocationsInfo;
   8855 } VkSubpassSampleLocationsEXT;
   8856 
   8857 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
   8858     VkStructureType                          sType;
   8859     const void*                              pNext;
   8860     uint32_t                                 attachmentInitialSampleLocationsCount;
   8861     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
   8862     uint32_t                                 postSubpassSampleLocationsCount;
   8863     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
   8864 } VkRenderPassSampleLocationsBeginInfoEXT;
   8865 
   8866 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
   8867     VkStructureType             sType;
   8868     const void*                 pNext;
   8869     VkBool32                    sampleLocationsEnable;
   8870     VkSampleLocationsInfoEXT    sampleLocationsInfo;
   8871 } VkPipelineSampleLocationsStateCreateInfoEXT;
   8872 
   8873 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
   8874     VkStructureType       sType;
   8875     void*                 pNext;
   8876     VkSampleCountFlags    sampleLocationSampleCounts;
   8877     VkExtent2D            maxSampleLocationGridSize;
   8878     float                 sampleLocationCoordinateRange[2];
   8879     uint32_t              sampleLocationSubPixelBits;
   8880     VkBool32              variableSampleLocations;
   8881 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
   8882 
   8883 typedef struct VkMultisamplePropertiesEXT {
   8884     VkStructureType    sType;
   8885     void*              pNext;
   8886     VkExtent2D         maxSampleLocationGridSize;
   8887 } VkMultisamplePropertiesEXT;
   8888 
   8889 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
   8890 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
   8891 
   8892 #ifndef VK_NO_PROTOTYPES
   8893 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
   8894     VkCommandBuffer                             commandBuffer,
   8895     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
   8896 
   8897 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
   8898     VkPhysicalDevice                            physicalDevice,
   8899     VkSampleCountFlagBits                       samples,
   8900     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
   8901 #endif
   8902 
   8903 
   8904 #define VK_EXT_blend_operation_advanced 1
   8905 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
   8906 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
   8907 
   8908 typedef enum VkBlendOverlapEXT {
   8909     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
   8910     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
   8911     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
   8912     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
   8913 } VkBlendOverlapEXT;
   8914 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
   8915     VkStructureType    sType;
   8916     void*              pNext;
   8917     VkBool32           advancedBlendCoherentOperations;
   8918 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
   8919 
   8920 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
   8921     VkStructureType    sType;
   8922     void*              pNext;
   8923     uint32_t           advancedBlendMaxColorAttachments;
   8924     VkBool32           advancedBlendIndependentBlend;
   8925     VkBool32           advancedBlendNonPremultipliedSrcColor;
   8926     VkBool32           advancedBlendNonPremultipliedDstColor;
   8927     VkBool32           advancedBlendCorrelatedOverlap;
   8928     VkBool32           advancedBlendAllOperations;
   8929 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
   8930 
   8931 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
   8932     VkStructureType      sType;
   8933     const void*          pNext;
   8934     VkBool32             srcPremultiplied;
   8935     VkBool32             dstPremultiplied;
   8936     VkBlendOverlapEXT    blendOverlap;
   8937 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
   8938 
   8939 
   8940 
   8941 #define VK_NV_fragment_coverage_to_color 1
   8942 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
   8943 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
   8944 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
   8945 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
   8946     VkStructureType                                sType;
   8947     const void*                                    pNext;
   8948     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
   8949     VkBool32                                       coverageToColorEnable;
   8950     uint32_t                                       coverageToColorLocation;
   8951 } VkPipelineCoverageToColorStateCreateInfoNV;
   8952 
   8953 
   8954 
   8955 #define VK_NV_framebuffer_mixed_samples 1
   8956 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
   8957 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
   8958 
   8959 typedef enum VkCoverageModulationModeNV {
   8960     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
   8961     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
   8962     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
   8963     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
   8964     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
   8965 } VkCoverageModulationModeNV;
   8966 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
   8967 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
   8968     VkStructureType                                   sType;
   8969     const void*                                       pNext;
   8970     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
   8971     VkCoverageModulationModeNV                        coverageModulationMode;
   8972     VkBool32                                          coverageModulationTableEnable;
   8973     uint32_t                                          coverageModulationTableCount;
   8974     const float*                                      pCoverageModulationTable;
   8975 } VkPipelineCoverageModulationStateCreateInfoNV;
   8976 
   8977 
   8978 
   8979 #define VK_NV_fill_rectangle 1
   8980 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
   8981 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
   8982 
   8983 
   8984 #define VK_NV_shader_sm_builtins 1
   8985 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
   8986 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
   8987 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
   8988     VkStructureType    sType;
   8989     void*              pNext;
   8990     uint32_t           shaderSMCount;
   8991     uint32_t           shaderWarpsPerSM;
   8992 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
   8993 
   8994 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
   8995     VkStructureType    sType;
   8996     void*              pNext;
   8997     VkBool32           shaderSMBuiltins;
   8998 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
   8999 
   9000 
   9001 
   9002 #define VK_EXT_post_depth_coverage 1
   9003 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
   9004 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
   9005 
   9006 
   9007 #define VK_EXT_image_drm_format_modifier 1
   9008 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
   9009 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
   9010 typedef struct VkDrmFormatModifierPropertiesEXT {
   9011     uint64_t                drmFormatModifier;
   9012     uint32_t                drmFormatModifierPlaneCount;
   9013     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
   9014 } VkDrmFormatModifierPropertiesEXT;
   9015 
   9016 typedef struct VkDrmFormatModifierPropertiesListEXT {
   9017     VkStructureType                      sType;
   9018     void*                                pNext;
   9019     uint32_t                             drmFormatModifierCount;
   9020     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
   9021 } VkDrmFormatModifierPropertiesListEXT;
   9022 
   9023 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
   9024     VkStructureType    sType;
   9025     const void*        pNext;
   9026     uint64_t           drmFormatModifier;
   9027     VkSharingMode      sharingMode;
   9028     uint32_t           queueFamilyIndexCount;
   9029     const uint32_t*    pQueueFamilyIndices;
   9030 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
   9031 
   9032 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
   9033     VkStructureType    sType;
   9034     const void*        pNext;
   9035     uint32_t           drmFormatModifierCount;
   9036     const uint64_t*    pDrmFormatModifiers;
   9037 } VkImageDrmFormatModifierListCreateInfoEXT;
   9038 
   9039 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
   9040     VkStructureType               sType;
   9041     const void*                   pNext;
   9042     uint64_t                      drmFormatModifier;
   9043     uint32_t                      drmFormatModifierPlaneCount;
   9044     const VkSubresourceLayout*    pPlaneLayouts;
   9045 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
   9046 
   9047 typedef struct VkImageDrmFormatModifierPropertiesEXT {
   9048     VkStructureType    sType;
   9049     void*              pNext;
   9050     uint64_t           drmFormatModifier;
   9051 } VkImageDrmFormatModifierPropertiesEXT;
   9052 
   9053 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
   9054 
   9055 #ifndef VK_NO_PROTOTYPES
   9056 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
   9057     VkDevice                                    device,
   9058     VkImage                                     image,
   9059     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
   9060 #endif
   9061 
   9062 
   9063 #define VK_EXT_validation_cache 1
   9064 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
   9065 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
   9066 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
   9067 
   9068 typedef enum VkValidationCacheHeaderVersionEXT {
   9069     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
   9070     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
   9071 } VkValidationCacheHeaderVersionEXT;
   9072 typedef VkFlags VkValidationCacheCreateFlagsEXT;
   9073 typedef struct VkValidationCacheCreateInfoEXT {
   9074     VkStructureType                    sType;
   9075     const void*                        pNext;
   9076     VkValidationCacheCreateFlagsEXT    flags;
   9077     size_t                             initialDataSize;
   9078     const void*                        pInitialData;
   9079 } VkValidationCacheCreateInfoEXT;
   9080 
   9081 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
   9082     VkStructureType         sType;
   9083     const void*             pNext;
   9084     VkValidationCacheEXT    validationCache;
   9085 } VkShaderModuleValidationCacheCreateInfoEXT;
   9086 
   9087 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
   9088 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
   9089 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
   9090 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
   9091 
   9092 #ifndef VK_NO_PROTOTYPES
   9093 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
   9094     VkDevice                                    device,
   9095     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
   9096     const VkAllocationCallbacks*                pAllocator,
   9097     VkValidationCacheEXT*                       pValidationCache);
   9098 
   9099 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
   9100     VkDevice                                    device,
   9101     VkValidationCacheEXT                        validationCache,
   9102     const VkAllocationCallbacks*                pAllocator);
   9103 
   9104 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
   9105     VkDevice                                    device,
   9106     VkValidationCacheEXT                        dstCache,
   9107     uint32_t                                    srcCacheCount,
   9108     const VkValidationCacheEXT*                 pSrcCaches);
   9109 
   9110 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
   9111     VkDevice                                    device,
   9112     VkValidationCacheEXT                        validationCache,
   9113     size_t*                                     pDataSize,
   9114     void*                                       pData);
   9115 #endif
   9116 
   9117 
   9118 #define VK_EXT_descriptor_indexing 1
   9119 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
   9120 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
   9121 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
   9122 
   9123 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
   9124 
   9125 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
   9126 
   9127 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
   9128 
   9129 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
   9130 
   9131 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
   9132 
   9133 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
   9134 
   9135 
   9136 
   9137 #define VK_EXT_shader_viewport_index_layer 1
   9138 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
   9139 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
   9140 
   9141 
   9142 #define VK_NV_shading_rate_image 1
   9143 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
   9144 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
   9145 
   9146 typedef enum VkShadingRatePaletteEntryNV {
   9147     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
   9148     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
   9149     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
   9150     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
   9151     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
   9152     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
   9153     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
   9154     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
   9155     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
   9156     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
   9157     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
   9158     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
   9159     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
   9160 } VkShadingRatePaletteEntryNV;
   9161 
   9162 typedef enum VkCoarseSampleOrderTypeNV {
   9163     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
   9164     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
   9165     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
   9166     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
   9167     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
   9168 } VkCoarseSampleOrderTypeNV;
   9169 typedef struct VkShadingRatePaletteNV {
   9170     uint32_t                              shadingRatePaletteEntryCount;
   9171     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
   9172 } VkShadingRatePaletteNV;
   9173 
   9174 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
   9175     VkStructureType                  sType;
   9176     const void*                      pNext;
   9177     VkBool32                         shadingRateImageEnable;
   9178     uint32_t                         viewportCount;
   9179     const VkShadingRatePaletteNV*    pShadingRatePalettes;
   9180 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
   9181 
   9182 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
   9183     VkStructureType    sType;
   9184     void*              pNext;
   9185     VkBool32           shadingRateImage;
   9186     VkBool32           shadingRateCoarseSampleOrder;
   9187 } VkPhysicalDeviceShadingRateImageFeaturesNV;
   9188 
   9189 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
   9190     VkStructureType    sType;
   9191     void*              pNext;
   9192     VkExtent2D         shadingRateTexelSize;
   9193     uint32_t           shadingRatePaletteSize;
   9194     uint32_t           shadingRateMaxCoarseSamples;
   9195 } VkPhysicalDeviceShadingRateImagePropertiesNV;
   9196 
   9197 typedef struct VkCoarseSampleLocationNV {
   9198     uint32_t    pixelX;
   9199     uint32_t    pixelY;
   9200     uint32_t    sample;
   9201 } VkCoarseSampleLocationNV;
   9202 
   9203 typedef struct VkCoarseSampleOrderCustomNV {
   9204     VkShadingRatePaletteEntryNV        shadingRate;
   9205     uint32_t                           sampleCount;
   9206     uint32_t                           sampleLocationCount;
   9207     const VkCoarseSampleLocationNV*    pSampleLocations;
   9208 } VkCoarseSampleOrderCustomNV;
   9209 
   9210 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
   9211     VkStructureType                       sType;
   9212     const void*                           pNext;
   9213     VkCoarseSampleOrderTypeNV             sampleOrderType;
   9214     uint32_t                              customSampleOrderCount;
   9215     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
   9216 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
   9217 
   9218 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
   9219 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
   9220 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
   9221 
   9222 #ifndef VK_NO_PROTOTYPES
   9223 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
   9224     VkCommandBuffer                             commandBuffer,
   9225     VkImageView                                 imageView,
   9226     VkImageLayout                               imageLayout);
   9227 
   9228 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
   9229     VkCommandBuffer                             commandBuffer,
   9230     uint32_t                                    firstViewport,
   9231     uint32_t                                    viewportCount,
   9232     const VkShadingRatePaletteNV*               pShadingRatePalettes);
   9233 
   9234 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
   9235     VkCommandBuffer                             commandBuffer,
   9236     VkCoarseSampleOrderTypeNV                   sampleOrderType,
   9237     uint32_t                                    customSampleOrderCount,
   9238     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
   9239 #endif
   9240 
   9241 
   9242 #define VK_NV_ray_tracing 1
   9243 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
   9244 typedef VkAccelerationStructureKHR VkAccelerationStructureNV;
   9245 
   9246 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
   9247 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
   9248 #define VK_SHADER_UNUSED_KHR              (~0U)
   9249 #define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
   9250 
   9251 typedef enum VkRayTracingShaderGroupTypeKHR {
   9252     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
   9253     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
   9254     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
   9255     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
   9256     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
   9257     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
   9258     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
   9259 } VkRayTracingShaderGroupTypeKHR;
   9260 typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
   9261 
   9262 
   9263 typedef enum VkGeometryTypeKHR {
   9264     VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
   9265     VK_GEOMETRY_TYPE_AABBS_KHR = 1,
   9266     VK_GEOMETRY_TYPE_INSTANCES_KHR = 1000150000,
   9267     VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
   9268     VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
   9269     VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
   9270 } VkGeometryTypeKHR;
   9271 typedef VkGeometryTypeKHR VkGeometryTypeNV;
   9272 
   9273 
   9274 typedef enum VkAccelerationStructureTypeKHR {
   9275     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
   9276     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
   9277     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
   9278     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
   9279     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
   9280 } VkAccelerationStructureTypeKHR;
   9281 typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
   9282 
   9283 
   9284 typedef enum VkCopyAccelerationStructureModeKHR {
   9285     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
   9286     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
   9287     VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
   9288     VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
   9289     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
   9290     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
   9291     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
   9292 } VkCopyAccelerationStructureModeKHR;
   9293 typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
   9294 
   9295 
   9296 typedef enum VkAccelerationStructureMemoryRequirementsTypeKHR {
   9297     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR = 0,
   9298     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR = 1,
   9299     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR = 2,
   9300     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
   9301     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
   9302     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR,
   9303     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
   9304 } VkAccelerationStructureMemoryRequirementsTypeKHR;
   9305 typedef VkAccelerationStructureMemoryRequirementsTypeKHR VkAccelerationStructureMemoryRequirementsTypeNV;
   9306 
   9307 
   9308 typedef enum VkGeometryFlagBitsKHR {
   9309     VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
   9310     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
   9311     VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
   9312     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
   9313     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   9314 } VkGeometryFlagBitsKHR;
   9315 typedef VkFlags VkGeometryFlagsKHR;
   9316 typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
   9317 
   9318 typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
   9319 
   9320 
   9321 typedef enum VkGeometryInstanceFlagBitsKHR {
   9322     VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
   9323     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002,
   9324     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
   9325     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
   9326     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
   9327     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
   9328     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
   9329     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
   9330     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   9331 } VkGeometryInstanceFlagBitsKHR;
   9332 typedef VkFlags VkGeometryInstanceFlagsKHR;
   9333 typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
   9334 
   9335 typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
   9336 
   9337 
   9338 typedef enum VkBuildAccelerationStructureFlagBitsKHR {
   9339     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
   9340     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
   9341     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
   9342     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
   9343     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
   9344     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
   9345     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
   9346     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
   9347     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
   9348     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
   9349     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   9350 } VkBuildAccelerationStructureFlagBitsKHR;
   9351 typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
   9352 typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
   9353 
   9354 typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
   9355 
   9356 typedef struct VkRayTracingShaderGroupCreateInfoNV {
   9357     VkStructureType                   sType;
   9358     const void*                       pNext;
   9359     VkRayTracingShaderGroupTypeKHR    type;
   9360     uint32_t                          generalShader;
   9361     uint32_t                          closestHitShader;
   9362     uint32_t                          anyHitShader;
   9363     uint32_t                          intersectionShader;
   9364 } VkRayTracingShaderGroupCreateInfoNV;
   9365 
   9366 typedef struct VkRayTracingPipelineCreateInfoNV {
   9367     VkStructureType                               sType;
   9368     const void*                                   pNext;
   9369     VkPipelineCreateFlags                         flags;
   9370     uint32_t                                      stageCount;
   9371     const VkPipelineShaderStageCreateInfo*        pStages;
   9372     uint32_t                                      groupCount;
   9373     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
   9374     uint32_t                                      maxRecursionDepth;
   9375     VkPipelineLayout                              layout;
   9376     VkPipeline                                    basePipelineHandle;
   9377     int32_t                                       basePipelineIndex;
   9378 } VkRayTracingPipelineCreateInfoNV;
   9379 
   9380 typedef struct VkGeometryTrianglesNV {
   9381     VkStructureType    sType;
   9382     const void*        pNext;
   9383     VkBuffer           vertexData;
   9384     VkDeviceSize       vertexOffset;
   9385     uint32_t           vertexCount;
   9386     VkDeviceSize       vertexStride;
   9387     VkFormat           vertexFormat;
   9388     VkBuffer           indexData;
   9389     VkDeviceSize       indexOffset;
   9390     uint32_t           indexCount;
   9391     VkIndexType        indexType;
   9392     VkBuffer           transformData;
   9393     VkDeviceSize       transformOffset;
   9394 } VkGeometryTrianglesNV;
   9395 
   9396 typedef struct VkGeometryAABBNV {
   9397     VkStructureType    sType;
   9398     const void*        pNext;
   9399     VkBuffer           aabbData;
   9400     uint32_t           numAABBs;
   9401     uint32_t           stride;
   9402     VkDeviceSize       offset;
   9403 } VkGeometryAABBNV;
   9404 
   9405 typedef struct VkGeometryDataNV {
   9406     VkGeometryTrianglesNV    triangles;
   9407     VkGeometryAABBNV         aabbs;
   9408 } VkGeometryDataNV;
   9409 
   9410 typedef struct VkGeometryNV {
   9411     VkStructureType       sType;
   9412     const void*           pNext;
   9413     VkGeometryTypeKHR     geometryType;
   9414     VkGeometryDataNV      geometry;
   9415     VkGeometryFlagsKHR    flags;
   9416 } VkGeometryNV;
   9417 
   9418 typedef struct VkAccelerationStructureInfoNV {
   9419     VkStructureType                        sType;
   9420     const void*                            pNext;
   9421     VkAccelerationStructureTypeNV          type;
   9422     VkBuildAccelerationStructureFlagsNV    flags;
   9423     uint32_t                               instanceCount;
   9424     uint32_t                               geometryCount;
   9425     const VkGeometryNV*                    pGeometries;
   9426 } VkAccelerationStructureInfoNV;
   9427 
   9428 typedef struct VkAccelerationStructureCreateInfoNV {
   9429     VkStructureType                  sType;
   9430     const void*                      pNext;
   9431     VkDeviceSize                     compactedSize;
   9432     VkAccelerationStructureInfoNV    info;
   9433 } VkAccelerationStructureCreateInfoNV;
   9434 
   9435 typedef struct VkBindAccelerationStructureMemoryInfoKHR {
   9436     VkStructureType               sType;
   9437     const void*                   pNext;
   9438     VkAccelerationStructureKHR    accelerationStructure;
   9439     VkDeviceMemory                memory;
   9440     VkDeviceSize                  memoryOffset;
   9441     uint32_t                      deviceIndexCount;
   9442     const uint32_t*               pDeviceIndices;
   9443 } VkBindAccelerationStructureMemoryInfoKHR;
   9444 
   9445 typedef VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoNV;
   9446 
   9447 typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
   9448     VkStructureType                      sType;
   9449     const void*                          pNext;
   9450     uint32_t                             accelerationStructureCount;
   9451     const VkAccelerationStructureKHR*    pAccelerationStructures;
   9452 } VkWriteDescriptorSetAccelerationStructureKHR;
   9453 
   9454 typedef VkWriteDescriptorSetAccelerationStructureKHR VkWriteDescriptorSetAccelerationStructureNV;
   9455 
   9456 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
   9457     VkStructureType                                    sType;
   9458     const void*                                        pNext;
   9459     VkAccelerationStructureMemoryRequirementsTypeNV    type;
   9460     VkAccelerationStructureNV                          accelerationStructure;
   9461 } VkAccelerationStructureMemoryRequirementsInfoNV;
   9462 
   9463 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
   9464     VkStructureType    sType;
   9465     void*              pNext;
   9466     uint32_t           shaderGroupHandleSize;
   9467     uint32_t           maxRecursionDepth;
   9468     uint32_t           maxShaderGroupStride;
   9469     uint32_t           shaderGroupBaseAlignment;
   9470     uint64_t           maxGeometryCount;
   9471     uint64_t           maxInstanceCount;
   9472     uint64_t           maxTriangleCount;
   9473     uint32_t           maxDescriptorSetAccelerationStructures;
   9474 } VkPhysicalDeviceRayTracingPropertiesNV;
   9475 
   9476 typedef struct VkTransformMatrixKHR {
   9477     float    matrix[3][4];
   9478 } VkTransformMatrixKHR;
   9479 
   9480 typedef VkTransformMatrixKHR VkTransformMatrixNV;
   9481 
   9482 typedef struct VkAabbPositionsKHR {
   9483     float    minX;
   9484     float    minY;
   9485     float    minZ;
   9486     float    maxX;
   9487     float    maxY;
   9488     float    maxZ;
   9489 } VkAabbPositionsKHR;
   9490 
   9491 typedef VkAabbPositionsKHR VkAabbPositionsNV;
   9492 
   9493 typedef struct VkAccelerationStructureInstanceKHR {
   9494     VkTransformMatrixKHR          transform;
   9495     uint32_t                      instanceCustomIndex:24;
   9496     uint32_t                      mask:8;
   9497     uint32_t                      instanceShaderBindingTableRecordOffset:24;
   9498     VkGeometryInstanceFlagsKHR    flags:8;
   9499     uint64_t                      accelerationStructureReference;
   9500 } VkAccelerationStructureInstanceKHR;
   9501 
   9502 typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
   9503 
   9504 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
   9505 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
   9506 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
   9507 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
   9508 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryKHR)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
   9509 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
   9510 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset);
   9511 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode);
   9512 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);
   9513 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
   9514 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
   9515 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
   9516 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData);
   9517 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
   9518 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
   9519 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
   9520 
   9521 #ifndef VK_NO_PROTOTYPES
   9522 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
   9523     VkDevice                                    device,
   9524     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
   9525     const VkAllocationCallbacks*                pAllocator,
   9526     VkAccelerationStructureNV*                  pAccelerationStructure);
   9527 
   9528 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
   9529     VkDevice                                    device,
   9530     VkAccelerationStructureKHR                  accelerationStructure,
   9531     const VkAllocationCallbacks*                pAllocator);
   9532 
   9533 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
   9534     VkDevice                                    device,
   9535     VkAccelerationStructureKHR                  accelerationStructure,
   9536     const VkAllocationCallbacks*                pAllocator);
   9537 
   9538 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
   9539     VkDevice                                    device,
   9540     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
   9541     VkMemoryRequirements2KHR*                   pMemoryRequirements);
   9542 
   9543 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryKHR(
   9544     VkDevice                                    device,
   9545     uint32_t                                    bindInfoCount,
   9546     const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
   9547 
   9548 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
   9549     VkDevice                                    device,
   9550     uint32_t                                    bindInfoCount,
   9551     const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
   9552 
   9553 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
   9554     VkCommandBuffer                             commandBuffer,
   9555     const VkAccelerationStructureInfoNV*        pInfo,
   9556     VkBuffer                                    instanceData,
   9557     VkDeviceSize                                instanceOffset,
   9558     VkBool32                                    update,
   9559     VkAccelerationStructureKHR                  dst,
   9560     VkAccelerationStructureKHR                  src,
   9561     VkBuffer                                    scratch,
   9562     VkDeviceSize                                scratchOffset);
   9563 
   9564 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
   9565     VkCommandBuffer                             commandBuffer,
   9566     VkAccelerationStructureKHR                  dst,
   9567     VkAccelerationStructureKHR                  src,
   9568     VkCopyAccelerationStructureModeKHR          mode);
   9569 
   9570 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
   9571     VkCommandBuffer                             commandBuffer,
   9572     VkBuffer                                    raygenShaderBindingTableBuffer,
   9573     VkDeviceSize                                raygenShaderBindingOffset,
   9574     VkBuffer                                    missShaderBindingTableBuffer,
   9575     VkDeviceSize                                missShaderBindingOffset,
   9576     VkDeviceSize                                missShaderBindingStride,
   9577     VkBuffer                                    hitShaderBindingTableBuffer,
   9578     VkDeviceSize                                hitShaderBindingOffset,
   9579     VkDeviceSize                                hitShaderBindingStride,
   9580     VkBuffer                                    callableShaderBindingTableBuffer,
   9581     VkDeviceSize                                callableShaderBindingOffset,
   9582     VkDeviceSize                                callableShaderBindingStride,
   9583     uint32_t                                    width,
   9584     uint32_t                                    height,
   9585     uint32_t                                    depth);
   9586 
   9587 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
   9588     VkDevice                                    device,
   9589     VkPipelineCache                             pipelineCache,
   9590     uint32_t                                    createInfoCount,
   9591     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
   9592     const VkAllocationCallbacks*                pAllocator,
   9593     VkPipeline*                                 pPipelines);
   9594 
   9595 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
   9596     VkDevice                                    device,
   9597     VkPipeline                                  pipeline,
   9598     uint32_t                                    firstGroup,
   9599     uint32_t                                    groupCount,
   9600     size_t                                      dataSize,
   9601     void*                                       pData);
   9602 
   9603 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
   9604     VkDevice                                    device,
   9605     VkPipeline                                  pipeline,
   9606     uint32_t                                    firstGroup,
   9607     uint32_t                                    groupCount,
   9608     size_t                                      dataSize,
   9609     void*                                       pData);
   9610 
   9611 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
   9612     VkDevice                                    device,
   9613     VkAccelerationStructureKHR                  accelerationStructure,
   9614     size_t                                      dataSize,
   9615     void*                                       pData);
   9616 
   9617 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
   9618     VkCommandBuffer                             commandBuffer,
   9619     uint32_t                                    accelerationStructureCount,
   9620     const VkAccelerationStructureKHR*           pAccelerationStructures,
   9621     VkQueryType                                 queryType,
   9622     VkQueryPool                                 queryPool,
   9623     uint32_t                                    firstQuery);
   9624 
   9625 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
   9626     VkCommandBuffer                             commandBuffer,
   9627     uint32_t                                    accelerationStructureCount,
   9628     const VkAccelerationStructureKHR*           pAccelerationStructures,
   9629     VkQueryType                                 queryType,
   9630     VkQueryPool                                 queryPool,
   9631     uint32_t                                    firstQuery);
   9632 
   9633 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
   9634     VkDevice                                    device,
   9635     VkPipeline                                  pipeline,
   9636     uint32_t                                    shader);
   9637 #endif
   9638 
   9639 
   9640 #define VK_NV_representative_fragment_test 1
   9641 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
   9642 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
   9643 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
   9644     VkStructureType    sType;
   9645     void*              pNext;
   9646     VkBool32           representativeFragmentTest;
   9647 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
   9648 
   9649 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
   9650     VkStructureType    sType;
   9651     const void*        pNext;
   9652     VkBool32           representativeFragmentTestEnable;
   9653 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
   9654 
   9655 
   9656 
   9657 #define VK_EXT_filter_cubic 1
   9658 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  3
   9659 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
   9660 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
   9661     VkStructureType    sType;
   9662     void*              pNext;
   9663     VkImageViewType    imageViewType;
   9664 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
   9665 
   9666 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
   9667     VkStructureType    sType;
   9668     void*              pNext;
   9669     VkBool32           filterCubic;
   9670     VkBool32           filterCubicMinmax;
   9671 } VkFilterCubicImageViewImageFormatPropertiesEXT;
   9672 
   9673 
   9674 
   9675 #define VK_QCOM_render_pass_shader_resolve 1
   9676 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
   9677 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
   9678 
   9679 
   9680 #define VK_EXT_global_priority 1
   9681 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
   9682 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
   9683 
   9684 typedef enum VkQueueGlobalPriorityEXT {
   9685     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
   9686     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
   9687     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
   9688     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
   9689     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
   9690 } VkQueueGlobalPriorityEXT;
   9691 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
   9692     VkStructureType             sType;
   9693     const void*                 pNext;
   9694     VkQueueGlobalPriorityEXT    globalPriority;
   9695 } VkDeviceQueueGlobalPriorityCreateInfoEXT;
   9696 
   9697 
   9698 
   9699 #define VK_EXT_external_memory_host 1
   9700 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
   9701 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
   9702 typedef struct VkImportMemoryHostPointerInfoEXT {
   9703     VkStructureType                       sType;
   9704     const void*                           pNext;
   9705     VkExternalMemoryHandleTypeFlagBits    handleType;
   9706     void*                                 pHostPointer;
   9707 } VkImportMemoryHostPointerInfoEXT;
   9708 
   9709 typedef struct VkMemoryHostPointerPropertiesEXT {
   9710     VkStructureType    sType;
   9711     void*              pNext;
   9712     uint32_t           memoryTypeBits;
   9713 } VkMemoryHostPointerPropertiesEXT;
   9714 
   9715 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
   9716     VkStructureType    sType;
   9717     void*              pNext;
   9718     VkDeviceSize       minImportedHostPointerAlignment;
   9719 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
   9720 
   9721 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
   9722 
   9723 #ifndef VK_NO_PROTOTYPES
   9724 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
   9725     VkDevice                                    device,
   9726     VkExternalMemoryHandleTypeFlagBits          handleType,
   9727     const void*                                 pHostPointer,
   9728     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
   9729 #endif
   9730 
   9731 
   9732 #define VK_AMD_buffer_marker 1
   9733 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
   9734 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
   9735 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
   9736 
   9737 #ifndef VK_NO_PROTOTYPES
   9738 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
   9739     VkCommandBuffer                             commandBuffer,
   9740     VkPipelineStageFlagBits                     pipelineStage,
   9741     VkBuffer                                    dstBuffer,
   9742     VkDeviceSize                                dstOffset,
   9743     uint32_t                                    marker);
   9744 #endif
   9745 
   9746 
   9747 #define VK_AMD_pipeline_compiler_control 1
   9748 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
   9749 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
   9750 
   9751 typedef enum VkPipelineCompilerControlFlagBitsAMD {
   9752     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
   9753 } VkPipelineCompilerControlFlagBitsAMD;
   9754 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
   9755 typedef struct VkPipelineCompilerControlCreateInfoAMD {
   9756     VkStructureType                      sType;
   9757     const void*                          pNext;
   9758     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
   9759 } VkPipelineCompilerControlCreateInfoAMD;
   9760 
   9761 
   9762 
   9763 #define VK_EXT_calibrated_timestamps 1
   9764 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
   9765 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
   9766 
   9767 typedef enum VkTimeDomainEXT {
   9768     VK_TIME_DOMAIN_DEVICE_EXT = 0,
   9769     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
   9770     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
   9771     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
   9772     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
   9773 } VkTimeDomainEXT;
   9774 typedef struct VkCalibratedTimestampInfoEXT {
   9775     VkStructureType    sType;
   9776     const void*        pNext;
   9777     VkTimeDomainEXT    timeDomain;
   9778 } VkCalibratedTimestampInfoEXT;
   9779 
   9780 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
   9781 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
   9782 
   9783 #ifndef VK_NO_PROTOTYPES
   9784 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
   9785     VkPhysicalDevice                            physicalDevice,
   9786     uint32_t*                                   pTimeDomainCount,
   9787     VkTimeDomainEXT*                            pTimeDomains);
   9788 
   9789 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
   9790     VkDevice                                    device,
   9791     uint32_t                                    timestampCount,
   9792     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
   9793     uint64_t*                                   pTimestamps,
   9794     uint64_t*                                   pMaxDeviation);
   9795 #endif
   9796 
   9797 
   9798 #define VK_AMD_shader_core_properties 1
   9799 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
   9800 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
   9801 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
   9802     VkStructureType    sType;
   9803     void*              pNext;
   9804     uint32_t           shaderEngineCount;
   9805     uint32_t           shaderArraysPerEngineCount;
   9806     uint32_t           computeUnitsPerShaderArray;
   9807     uint32_t           simdPerComputeUnit;
   9808     uint32_t           wavefrontsPerSimd;
   9809     uint32_t           wavefrontSize;
   9810     uint32_t           sgprsPerSimd;
   9811     uint32_t           minSgprAllocation;
   9812     uint32_t           maxSgprAllocation;
   9813     uint32_t           sgprAllocationGranularity;
   9814     uint32_t           vgprsPerSimd;
   9815     uint32_t           minVgprAllocation;
   9816     uint32_t           maxVgprAllocation;
   9817     uint32_t           vgprAllocationGranularity;
   9818 } VkPhysicalDeviceShaderCorePropertiesAMD;
   9819 
   9820 
   9821 
   9822 #define VK_AMD_memory_overallocation_behavior 1
   9823 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
   9824 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
   9825 
   9826 typedef enum VkMemoryOverallocationBehaviorAMD {
   9827     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
   9828     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
   9829     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
   9830     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
   9831 } VkMemoryOverallocationBehaviorAMD;
   9832 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
   9833     VkStructureType                      sType;
   9834     const void*                          pNext;
   9835     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
   9836 } VkDeviceMemoryOverallocationCreateInfoAMD;
   9837 
   9838 
   9839 
   9840 #define VK_EXT_vertex_attribute_divisor 1
   9841 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
   9842 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
   9843 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
   9844     VkStructureType    sType;
   9845     void*              pNext;
   9846     uint32_t           maxVertexAttribDivisor;
   9847 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
   9848 
   9849 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
   9850     uint32_t    binding;
   9851     uint32_t    divisor;
   9852 } VkVertexInputBindingDivisorDescriptionEXT;
   9853 
   9854 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
   9855     VkStructureType                                     sType;
   9856     const void*                                         pNext;
   9857     uint32_t                                            vertexBindingDivisorCount;
   9858     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
   9859 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
   9860 
   9861 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
   9862     VkStructureType    sType;
   9863     void*              pNext;
   9864     VkBool32           vertexAttributeInstanceRateDivisor;
   9865     VkBool32           vertexAttributeInstanceRateZeroDivisor;
   9866 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
   9867 
   9868 
   9869 
   9870 #define VK_EXT_pipeline_creation_feedback 1
   9871 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
   9872 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
   9873 
   9874 typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
   9875     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001,
   9876     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002,
   9877     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004,
   9878     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   9879 } VkPipelineCreationFeedbackFlagBitsEXT;
   9880 typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;
   9881 typedef struct VkPipelineCreationFeedbackEXT {
   9882     VkPipelineCreationFeedbackFlagsEXT    flags;
   9883     uint64_t                              duration;
   9884 } VkPipelineCreationFeedbackEXT;
   9885 
   9886 typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
   9887     VkStructureType                   sType;
   9888     const void*                       pNext;
   9889     VkPipelineCreationFeedbackEXT*    pPipelineCreationFeedback;
   9890     uint32_t                          pipelineStageCreationFeedbackCount;
   9891     VkPipelineCreationFeedbackEXT*    pPipelineStageCreationFeedbacks;
   9892 } VkPipelineCreationFeedbackCreateInfoEXT;
   9893 
   9894 
   9895 
   9896 #define VK_NV_shader_subgroup_partitioned 1
   9897 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
   9898 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
   9899 
   9900 
   9901 #define VK_NV_compute_shader_derivatives 1
   9902 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
   9903 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
   9904 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
   9905     VkStructureType    sType;
   9906     void*              pNext;
   9907     VkBool32           computeDerivativeGroupQuads;
   9908     VkBool32           computeDerivativeGroupLinear;
   9909 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
   9910 
   9911 
   9912 
   9913 #define VK_NV_mesh_shader 1
   9914 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
   9915 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
   9916 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
   9917     VkStructureType    sType;
   9918     void*              pNext;
   9919     VkBool32           taskShader;
   9920     VkBool32           meshShader;
   9921 } VkPhysicalDeviceMeshShaderFeaturesNV;
   9922 
   9923 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
   9924     VkStructureType    sType;
   9925     void*              pNext;
   9926     uint32_t           maxDrawMeshTasksCount;
   9927     uint32_t           maxTaskWorkGroupInvocations;
   9928     uint32_t           maxTaskWorkGroupSize[3];
   9929     uint32_t           maxTaskTotalMemorySize;
   9930     uint32_t           maxTaskOutputCount;
   9931     uint32_t           maxMeshWorkGroupInvocations;
   9932     uint32_t           maxMeshWorkGroupSize[3];
   9933     uint32_t           maxMeshTotalMemorySize;
   9934     uint32_t           maxMeshOutputVertices;
   9935     uint32_t           maxMeshOutputPrimitives;
   9936     uint32_t           maxMeshMultiviewViewCount;
   9937     uint32_t           meshOutputPerVertexGranularity;
   9938     uint32_t           meshOutputPerPrimitiveGranularity;
   9939 } VkPhysicalDeviceMeshShaderPropertiesNV;
   9940 
   9941 typedef struct VkDrawMeshTasksIndirectCommandNV {
   9942     uint32_t    taskCount;
   9943     uint32_t    firstTask;
   9944 } VkDrawMeshTasksIndirectCommandNV;
   9945 
   9946 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
   9947 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   9948 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   9949 
   9950 #ifndef VK_NO_PROTOTYPES
   9951 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
   9952     VkCommandBuffer                             commandBuffer,
   9953     uint32_t                                    taskCount,
   9954     uint32_t                                    firstTask);
   9955 
   9956 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
   9957     VkCommandBuffer                             commandBuffer,
   9958     VkBuffer                                    buffer,
   9959     VkDeviceSize                                offset,
   9960     uint32_t                                    drawCount,
   9961     uint32_t                                    stride);
   9962 
   9963 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
   9964     VkCommandBuffer                             commandBuffer,
   9965     VkBuffer                                    buffer,
   9966     VkDeviceSize                                offset,
   9967     VkBuffer                                    countBuffer,
   9968     VkDeviceSize                                countBufferOffset,
   9969     uint32_t                                    maxDrawCount,
   9970     uint32_t                                    stride);
   9971 #endif
   9972 
   9973 
   9974 #define VK_NV_fragment_shader_barycentric 1
   9975 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
   9976 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
   9977 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
   9978     VkStructureType    sType;
   9979     void*              pNext;
   9980     VkBool32           fragmentShaderBarycentric;
   9981 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
   9982 
   9983 
   9984 
   9985 #define VK_NV_shader_image_footprint 1
   9986 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
   9987 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
   9988 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
   9989     VkStructureType    sType;
   9990     void*              pNext;
   9991     VkBool32           imageFootprint;
   9992 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
   9993 
   9994 
   9995 
   9996 #define VK_NV_scissor_exclusive 1
   9997 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
   9998 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
   9999 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
  10000     VkStructureType    sType;
  10001     const void*        pNext;
  10002     uint32_t           exclusiveScissorCount;
  10003     const VkRect2D*    pExclusiveScissors;
  10004 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  10005 
  10006 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
  10007     VkStructureType    sType;
  10008     void*              pNext;
  10009     VkBool32           exclusiveScissor;
  10010 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
  10011 
  10012 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
  10013 
  10014 #ifndef VK_NO_PROTOTYPES
  10015 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
  10016     VkCommandBuffer                             commandBuffer,
  10017     uint32_t                                    firstExclusiveScissor,
  10018     uint32_t                                    exclusiveScissorCount,
  10019     const VkRect2D*                             pExclusiveScissors);
  10020 #endif
  10021 
  10022 
  10023 #define VK_NV_device_diagnostic_checkpoints 1
  10024 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
  10025 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
  10026 typedef struct VkQueueFamilyCheckpointPropertiesNV {
  10027     VkStructureType         sType;
  10028     void*                   pNext;
  10029     VkPipelineStageFlags    checkpointExecutionStageMask;
  10030 } VkQueueFamilyCheckpointPropertiesNV;
  10031 
  10032 typedef struct VkCheckpointDataNV {
  10033     VkStructureType            sType;
  10034     void*                      pNext;
  10035     VkPipelineStageFlagBits    stage;
  10036     void*                      pCheckpointMarker;
  10037 } VkCheckpointDataNV;
  10038 
  10039 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
  10040 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
  10041 
  10042 #ifndef VK_NO_PROTOTYPES
  10043 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
  10044     VkCommandBuffer                             commandBuffer,
  10045     const void*                                 pCheckpointMarker);
  10046 
  10047 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
  10048     VkQueue                                     queue,
  10049     uint32_t*                                   pCheckpointDataCount,
  10050     VkCheckpointDataNV*                         pCheckpointData);
  10051 #endif
  10052 
  10053 
  10054 #define VK_INTEL_shader_integer_functions2 1
  10055 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
  10056 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
  10057 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
  10058     VkStructureType    sType;
  10059     void*              pNext;
  10060     VkBool32           shaderIntegerFunctions2;
  10061 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  10062 
  10063 
  10064 
  10065 #define VK_INTEL_performance_query 1
  10066 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
  10067 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
  10068 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
  10069 
  10070 typedef enum VkPerformanceConfigurationTypeINTEL {
  10071     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
  10072     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  10073 } VkPerformanceConfigurationTypeINTEL;
  10074 
  10075 typedef enum VkQueryPoolSamplingModeINTEL {
  10076     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
  10077     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
  10078 } VkQueryPoolSamplingModeINTEL;
  10079 
  10080 typedef enum VkPerformanceOverrideTypeINTEL {
  10081     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
  10082     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
  10083     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  10084 } VkPerformanceOverrideTypeINTEL;
  10085 
  10086 typedef enum VkPerformanceParameterTypeINTEL {
  10087     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
  10088     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
  10089     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  10090 } VkPerformanceParameterTypeINTEL;
  10091 
  10092 typedef enum VkPerformanceValueTypeINTEL {
  10093     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
  10094     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
  10095     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
  10096     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
  10097     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
  10098     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  10099 } VkPerformanceValueTypeINTEL;
  10100 typedef union VkPerformanceValueDataINTEL {
  10101     uint32_t       value32;
  10102     uint64_t       value64;
  10103     float          valueFloat;
  10104     VkBool32       valueBool;
  10105     const char*    valueString;
  10106 } VkPerformanceValueDataINTEL;
  10107 
  10108 typedef struct VkPerformanceValueINTEL {
  10109     VkPerformanceValueTypeINTEL    type;
  10110     VkPerformanceValueDataINTEL    data;
  10111 } VkPerformanceValueINTEL;
  10112 
  10113 typedef struct VkInitializePerformanceApiInfoINTEL {
  10114     VkStructureType    sType;
  10115     const void*        pNext;
  10116     void*              pUserData;
  10117 } VkInitializePerformanceApiInfoINTEL;
  10118 
  10119 typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
  10120     VkStructureType                 sType;
  10121     const void*                     pNext;
  10122     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
  10123 } VkQueryPoolPerformanceQueryCreateInfoINTEL;
  10124 
  10125 typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
  10126 
  10127 typedef struct VkPerformanceMarkerInfoINTEL {
  10128     VkStructureType    sType;
  10129     const void*        pNext;
  10130     uint64_t           marker;
  10131 } VkPerformanceMarkerInfoINTEL;
  10132 
  10133 typedef struct VkPerformanceStreamMarkerInfoINTEL {
  10134     VkStructureType    sType;
  10135     const void*        pNext;
  10136     uint32_t           marker;
  10137 } VkPerformanceStreamMarkerInfoINTEL;
  10138 
  10139 typedef struct VkPerformanceOverrideInfoINTEL {
  10140     VkStructureType                   sType;
  10141     const void*                       pNext;
  10142     VkPerformanceOverrideTypeINTEL    type;
  10143     VkBool32                          enable;
  10144     uint64_t                          parameter;
  10145 } VkPerformanceOverrideInfoINTEL;
  10146 
  10147 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
  10148     VkStructureType                        sType;
  10149     const void*                            pNext;
  10150     VkPerformanceConfigurationTypeINTEL    type;
  10151 } VkPerformanceConfigurationAcquireInfoINTEL;
  10152 
  10153 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  10154 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
  10155 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  10156 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  10157 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  10158 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
  10159 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
  10160 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
  10161 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
  10162 
  10163 #ifndef VK_NO_PROTOTYPES
  10164 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
  10165     VkDevice                                    device,
  10166     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
  10167 
  10168 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
  10169     VkDevice                                    device);
  10170 
  10171 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
  10172     VkCommandBuffer                             commandBuffer,
  10173     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
  10174 
  10175 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
  10176     VkCommandBuffer                             commandBuffer,
  10177     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
  10178 
  10179 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
  10180     VkCommandBuffer                             commandBuffer,
  10181     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
  10182 
  10183 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
  10184     VkDevice                                    device,
  10185     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
  10186     VkPerformanceConfigurationINTEL*            pConfiguration);
  10187 
  10188 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
  10189     VkDevice                                    device,
  10190     VkPerformanceConfigurationINTEL             configuration);
  10191 
  10192 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
  10193     VkQueue                                     queue,
  10194     VkPerformanceConfigurationINTEL             configuration);
  10195 
  10196 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
  10197     VkDevice                                    device,
  10198     VkPerformanceParameterTypeINTEL             parameter,
  10199     VkPerformanceValueINTEL*                    pValue);
  10200 #endif
  10201 
  10202 
  10203 #define VK_EXT_pci_bus_info 1
  10204 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
  10205 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
  10206 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
  10207     VkStructureType    sType;
  10208     void*              pNext;
  10209     uint32_t           pciDomain;
  10210     uint32_t           pciBus;
  10211     uint32_t           pciDevice;
  10212     uint32_t           pciFunction;
  10213 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
  10214 
  10215 
  10216 
  10217 #define VK_AMD_display_native_hdr 1
  10218 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
  10219 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
  10220 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
  10221     VkStructureType    sType;
  10222     void*              pNext;
  10223     VkBool32           localDimmingSupport;
  10224 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  10225 
  10226 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
  10227     VkStructureType    sType;
  10228     const void*        pNext;
  10229     VkBool32           localDimmingEnable;
  10230 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
  10231 
  10232 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
  10233 
  10234 #ifndef VK_NO_PROTOTYPES
  10235 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
  10236     VkDevice                                    device,
  10237     VkSwapchainKHR                              swapChain,
  10238     VkBool32                                    localDimmingEnable);
  10239 #endif
  10240 
  10241 
  10242 #define VK_EXT_fragment_density_map 1
  10243 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
  10244 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
  10245 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
  10246     VkStructureType    sType;
  10247     void*              pNext;
  10248     VkBool32           fragmentDensityMap;
  10249     VkBool32           fragmentDensityMapDynamic;
  10250     VkBool32           fragmentDensityMapNonSubsampledImages;
  10251 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  10252 
  10253 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
  10254     VkStructureType    sType;
  10255     void*              pNext;
  10256     VkExtent2D         minFragmentDensityTexelSize;
  10257     VkExtent2D         maxFragmentDensityTexelSize;
  10258     VkBool32           fragmentDensityInvocations;
  10259 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  10260 
  10261 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
  10262     VkStructureType          sType;
  10263     const void*              pNext;
  10264     VkAttachmentReference    fragmentDensityMapAttachment;
  10265 } VkRenderPassFragmentDensityMapCreateInfoEXT;
  10266 
  10267 
  10268 
  10269 #define VK_EXT_scalar_block_layout 1
  10270 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
  10271 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
  10272 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
  10273 
  10274 
  10275 
  10276 #define VK_GOOGLE_hlsl_functionality1 1
  10277 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
  10278 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
  10279 
  10280 
  10281 #define VK_GOOGLE_decorate_string 1
  10282 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
  10283 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
  10284 
  10285 
  10286 #define VK_EXT_subgroup_size_control 1
  10287 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
  10288 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
  10289 typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
  10290     VkStructureType    sType;
  10291     void*              pNext;
  10292     VkBool32           subgroupSizeControl;
  10293     VkBool32           computeFullSubgroups;
  10294 } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
  10295 
  10296 typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT {
  10297     VkStructureType       sType;
  10298     void*                 pNext;
  10299     uint32_t              minSubgroupSize;
  10300     uint32_t              maxSubgroupSize;
  10301     uint32_t              maxComputeWorkgroupSubgroups;
  10302     VkShaderStageFlags    requiredSubgroupSizeStages;
  10303 } VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
  10304 
  10305 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
  10306     VkStructureType    sType;
  10307     void*              pNext;
  10308     uint32_t           requiredSubgroupSize;
  10309 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
  10310 
  10311 
  10312 
  10313 #define VK_AMD_shader_core_properties2 1
  10314 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
  10315 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
  10316 
  10317 typedef enum VkShaderCorePropertiesFlagBitsAMD {
  10318     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  10319 } VkShaderCorePropertiesFlagBitsAMD;
  10320 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
  10321 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
  10322     VkStructureType                   sType;
  10323     void*                             pNext;
  10324     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
  10325     uint32_t                          activeComputeUnitCount;
  10326 } VkPhysicalDeviceShaderCoreProperties2AMD;
  10327 
  10328 
  10329 
  10330 #define VK_AMD_device_coherent_memory 1
  10331 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
  10332 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
  10333 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
  10334     VkStructureType    sType;
  10335     void*              pNext;
  10336     VkBool32           deviceCoherentMemory;
  10337 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  10338 
  10339 
  10340 
  10341 #define VK_EXT_shader_image_atomic_int64 1
  10342 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
  10343 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
  10344 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
  10345     VkStructureType    sType;
  10346     void*              pNext;
  10347     VkBool32           shaderImageInt64Atomics;
  10348     VkBool32           sparseImageInt64Atomics;
  10349 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  10350 
  10351 
  10352 
  10353 #define VK_EXT_memory_budget 1
  10354 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
  10355 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
  10356 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
  10357     VkStructureType    sType;
  10358     void*              pNext;
  10359     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
  10360     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
  10361 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  10362 
  10363 
  10364 
  10365 #define VK_EXT_memory_priority 1
  10366 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
  10367 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
  10368 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
  10369     VkStructureType    sType;
  10370     void*              pNext;
  10371     VkBool32           memoryPriority;
  10372 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  10373 
  10374 typedef struct VkMemoryPriorityAllocateInfoEXT {
  10375     VkStructureType    sType;
  10376     const void*        pNext;
  10377     float              priority;
  10378 } VkMemoryPriorityAllocateInfoEXT;
  10379 
  10380 
  10381 
  10382 #define VK_NV_dedicated_allocation_image_aliasing 1
  10383 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
  10384 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
  10385 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
  10386     VkStructureType    sType;
  10387     void*              pNext;
  10388     VkBool32           dedicatedAllocationImageAliasing;
  10389 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  10390 
  10391 
  10392 
  10393 #define VK_EXT_buffer_device_address 1
  10394 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
  10395 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
  10396 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
  10397     VkStructureType    sType;
  10398     void*              pNext;
  10399     VkBool32           bufferDeviceAddress;
  10400     VkBool32           bufferDeviceAddressCaptureReplay;
  10401     VkBool32           bufferDeviceAddressMultiDevice;
  10402 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  10403 
  10404 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
  10405 
  10406 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
  10407 
  10408 typedef struct VkBufferDeviceAddressCreateInfoEXT {
  10409     VkStructureType    sType;
  10410     const void*        pNext;
  10411     VkDeviceAddress    deviceAddress;
  10412 } VkBufferDeviceAddressCreateInfoEXT;
  10413 
  10414 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  10415 
  10416 #ifndef VK_NO_PROTOTYPES
  10417 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
  10418     VkDevice                                    device,
  10419     const VkBufferDeviceAddressInfo*            pInfo);
  10420 #endif
  10421 
  10422 
  10423 #define VK_EXT_tooling_info 1
  10424 #define VK_EXT_TOOLING_INFO_SPEC_VERSION  1
  10425 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
  10426 
  10427 typedef enum VkToolPurposeFlagBitsEXT {
  10428     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 0x00000001,
  10429     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 0x00000002,
  10430     VK_TOOL_PURPOSE_TRACING_BIT_EXT = 0x00000004,
  10431     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 0x00000008,
  10432     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 0x00000010,
  10433     VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
  10434     VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
  10435     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  10436 } VkToolPurposeFlagBitsEXT;
  10437 typedef VkFlags VkToolPurposeFlagsEXT;
  10438 typedef struct VkPhysicalDeviceToolPropertiesEXT {
  10439     VkStructureType          sType;
  10440     void*                    pNext;
  10441     char                     name[VK_MAX_EXTENSION_NAME_SIZE];
  10442     char                     version[VK_MAX_EXTENSION_NAME_SIZE];
  10443     VkToolPurposeFlagsEXT    purposes;
  10444     char                     description[VK_MAX_DESCRIPTION_SIZE];
  10445     char                     layer[VK_MAX_EXTENSION_NAME_SIZE];
  10446 } VkPhysicalDeviceToolPropertiesEXT;
  10447 
  10448 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
  10449 
  10450 #ifndef VK_NO_PROTOTYPES
  10451 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
  10452     VkPhysicalDevice                            physicalDevice,
  10453     uint32_t*                                   pToolCount,
  10454     VkPhysicalDeviceToolPropertiesEXT*          pToolProperties);
  10455 #endif
  10456 
  10457 
  10458 #define VK_EXT_separate_stencil_usage 1
  10459 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
  10460 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
  10461 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
  10462 
  10463 
  10464 
  10465 #define VK_EXT_validation_features 1
  10466 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 4
  10467 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
  10468 
  10469 typedef enum VkValidationFeatureEnableEXT {
  10470     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
  10471     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
  10472     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
  10473     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
  10474     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
  10475     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  10476 } VkValidationFeatureEnableEXT;
  10477 
  10478 typedef enum VkValidationFeatureDisableEXT {
  10479     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
  10480     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
  10481     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
  10482     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
  10483     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
  10484     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
  10485     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
  10486     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  10487 } VkValidationFeatureDisableEXT;
  10488 typedef struct VkValidationFeaturesEXT {
  10489     VkStructureType                         sType;
  10490     const void*                             pNext;
  10491     uint32_t                                enabledValidationFeatureCount;
  10492     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
  10493     uint32_t                                disabledValidationFeatureCount;
  10494     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
  10495 } VkValidationFeaturesEXT;
  10496 
  10497 
  10498 
  10499 #define VK_NV_cooperative_matrix 1
  10500 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
  10501 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
  10502 
  10503 typedef enum VkComponentTypeNV {
  10504     VK_COMPONENT_TYPE_FLOAT16_NV = 0,
  10505     VK_COMPONENT_TYPE_FLOAT32_NV = 1,
  10506     VK_COMPONENT_TYPE_FLOAT64_NV = 2,
  10507     VK_COMPONENT_TYPE_SINT8_NV = 3,
  10508     VK_COMPONENT_TYPE_SINT16_NV = 4,
  10509     VK_COMPONENT_TYPE_SINT32_NV = 5,
  10510     VK_COMPONENT_TYPE_SINT64_NV = 6,
  10511     VK_COMPONENT_TYPE_UINT8_NV = 7,
  10512     VK_COMPONENT_TYPE_UINT16_NV = 8,
  10513     VK_COMPONENT_TYPE_UINT32_NV = 9,
  10514     VK_COMPONENT_TYPE_UINT64_NV = 10,
  10515     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  10516 } VkComponentTypeNV;
  10517 
  10518 typedef enum VkScopeNV {
  10519     VK_SCOPE_DEVICE_NV = 1,
  10520     VK_SCOPE_WORKGROUP_NV = 2,
  10521     VK_SCOPE_SUBGROUP_NV = 3,
  10522     VK_SCOPE_QUEUE_FAMILY_NV = 5,
  10523     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
  10524 } VkScopeNV;
  10525 typedef struct VkCooperativeMatrixPropertiesNV {
  10526     VkStructureType      sType;
  10527     void*                pNext;
  10528     uint32_t             MSize;
  10529     uint32_t             NSize;
  10530     uint32_t             KSize;
  10531     VkComponentTypeNV    AType;
  10532     VkComponentTypeNV    BType;
  10533     VkComponentTypeNV    CType;
  10534     VkComponentTypeNV    DType;
  10535     VkScopeNV            scope;
  10536 } VkCooperativeMatrixPropertiesNV;
  10537 
  10538 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
  10539     VkStructureType    sType;
  10540     void*              pNext;
  10541     VkBool32           cooperativeMatrix;
  10542     VkBool32           cooperativeMatrixRobustBufferAccess;
  10543 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  10544 
  10545 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
  10546     VkStructureType       sType;
  10547     void*                 pNext;
  10548     VkShaderStageFlags    cooperativeMatrixSupportedStages;
  10549 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  10550 
  10551 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
  10552 
  10553 #ifndef VK_NO_PROTOTYPES
  10554 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
  10555     VkPhysicalDevice                            physicalDevice,
  10556     uint32_t*                                   pPropertyCount,
  10557     VkCooperativeMatrixPropertiesNV*            pProperties);
  10558 #endif
  10559 
  10560 
  10561 #define VK_NV_coverage_reduction_mode 1
  10562 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
  10563 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
  10564 
  10565 typedef enum VkCoverageReductionModeNV {
  10566     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
  10567     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
  10568     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  10569 } VkCoverageReductionModeNV;
  10570 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
  10571 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
  10572     VkStructureType    sType;
  10573     void*              pNext;
  10574     VkBool32           coverageReductionMode;
  10575 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  10576 
  10577 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
  10578     VkStructureType                                  sType;
  10579     const void*                                      pNext;
  10580     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
  10581     VkCoverageReductionModeNV                        coverageReductionMode;
  10582 } VkPipelineCoverageReductionStateCreateInfoNV;
  10583 
  10584 typedef struct VkFramebufferMixedSamplesCombinationNV {
  10585     VkStructureType              sType;
  10586     void*                        pNext;
  10587     VkCoverageReductionModeNV    coverageReductionMode;
  10588     VkSampleCountFlagBits        rasterizationSamples;
  10589     VkSampleCountFlags           depthStencilSamples;
  10590     VkSampleCountFlags           colorSamples;
  10591 } VkFramebufferMixedSamplesCombinationNV;
  10592 
  10593 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
  10594 
  10595 #ifndef VK_NO_PROTOTYPES
  10596 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  10597     VkPhysicalDevice                            physicalDevice,
  10598     uint32_t*                                   pCombinationCount,
  10599     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
  10600 #endif
  10601 
  10602 
  10603 #define VK_EXT_fragment_shader_interlock 1
  10604 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
  10605 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
  10606 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
  10607     VkStructureType    sType;
  10608     void*              pNext;
  10609     VkBool32           fragmentShaderSampleInterlock;
  10610     VkBool32           fragmentShaderPixelInterlock;
  10611     VkBool32           fragmentShaderShadingRateInterlock;
  10612 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  10613 
  10614 
  10615 
  10616 #define VK_EXT_ycbcr_image_arrays 1
  10617 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
  10618 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
  10619 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
  10620     VkStructureType    sType;
  10621     void*              pNext;
  10622     VkBool32           ycbcrImageArrays;
  10623 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  10624 
  10625 
  10626 
  10627 #define VK_EXT_headless_surface 1
  10628 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
  10629 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
  10630 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
  10631 typedef struct VkHeadlessSurfaceCreateInfoEXT {
  10632     VkStructureType                    sType;
  10633     const void*                        pNext;
  10634     VkHeadlessSurfaceCreateFlagsEXT    flags;
  10635 } VkHeadlessSurfaceCreateInfoEXT;
  10636 
  10637 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  10638 
  10639 #ifndef VK_NO_PROTOTYPES
  10640 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
  10641     VkInstance                                  instance,
  10642     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
  10643     const VkAllocationCallbacks*                pAllocator,
  10644     VkSurfaceKHR*                               pSurface);
  10645 #endif
  10646 
  10647 
  10648 #define VK_EXT_line_rasterization 1
  10649 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
  10650 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
  10651 
  10652 typedef enum VkLineRasterizationModeEXT {
  10653     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
  10654     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
  10655     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
  10656     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
  10657     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  10658 } VkLineRasterizationModeEXT;
  10659 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
  10660     VkStructureType    sType;
  10661     void*              pNext;
  10662     VkBool32           rectangularLines;
  10663     VkBool32           bresenhamLines;
  10664     VkBool32           smoothLines;
  10665     VkBool32           stippledRectangularLines;
  10666     VkBool32           stippledBresenhamLines;
  10667     VkBool32           stippledSmoothLines;
  10668 } VkPhysicalDeviceLineRasterizationFeaturesEXT;
  10669 
  10670 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
  10671     VkStructureType    sType;
  10672     void*              pNext;
  10673     uint32_t           lineSubPixelPrecisionBits;
  10674 } VkPhysicalDeviceLineRasterizationPropertiesEXT;
  10675 
  10676 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
  10677     VkStructureType               sType;
  10678     const void*                   pNext;
  10679     VkLineRasterizationModeEXT    lineRasterizationMode;
  10680     VkBool32                      stippledLineEnable;
  10681     uint32_t                      lineStippleFactor;
  10682     uint16_t                      lineStipplePattern;
  10683 } VkPipelineRasterizationLineStateCreateInfoEXT;
  10684 
  10685 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  10686 
  10687 #ifndef VK_NO_PROTOTYPES
  10688 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
  10689     VkCommandBuffer                             commandBuffer,
  10690     uint32_t                                    lineStippleFactor,
  10691     uint16_t                                    lineStipplePattern);
  10692 #endif
  10693 
  10694 
  10695 #define VK_EXT_shader_atomic_float 1
  10696 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
  10697 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
  10698 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
  10699     VkStructureType    sType;
  10700     void*              pNext;
  10701     VkBool32           shaderBufferFloat32Atomics;
  10702     VkBool32           shaderBufferFloat32AtomicAdd;
  10703     VkBool32           shaderBufferFloat64Atomics;
  10704     VkBool32           shaderBufferFloat64AtomicAdd;
  10705     VkBool32           shaderSharedFloat32Atomics;
  10706     VkBool32           shaderSharedFloat32AtomicAdd;
  10707     VkBool32           shaderSharedFloat64Atomics;
  10708     VkBool32           shaderSharedFloat64AtomicAdd;
  10709     VkBool32           shaderImageFloat32Atomics;
  10710     VkBool32           shaderImageFloat32AtomicAdd;
  10711     VkBool32           sparseImageFloat32Atomics;
  10712     VkBool32           sparseImageFloat32AtomicAdd;
  10713 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  10714 
  10715 
  10716 
  10717 #define VK_EXT_host_query_reset 1
  10718 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
  10719 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
  10720 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
  10721 
  10722 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  10723 
  10724 #ifndef VK_NO_PROTOTYPES
  10725 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
  10726     VkDevice                                    device,
  10727     VkQueryPool                                 queryPool,
  10728     uint32_t                                    firstQuery,
  10729     uint32_t                                    queryCount);
  10730 #endif
  10731 
  10732 
  10733 #define VK_EXT_index_type_uint8 1
  10734 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
  10735 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
  10736 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
  10737     VkStructureType    sType;
  10738     void*              pNext;
  10739     VkBool32           indexTypeUint8;
  10740 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  10741 
  10742 
  10743 
  10744 #define VK_EXT_extended_dynamic_state 1
  10745 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
  10746 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
  10747 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
  10748     VkStructureType    sType;
  10749     void*              pNext;
  10750     VkBool32           extendedDynamicState;
  10751 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  10752 
  10753 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
  10754 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
  10755 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
  10756 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
  10757 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
  10758 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);
  10759 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
  10760 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
  10761 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
  10762 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
  10763 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
  10764 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
  10765 
  10766 #ifndef VK_NO_PROTOTYPES
  10767 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
  10768     VkCommandBuffer                             commandBuffer,
  10769     VkCullModeFlags                             cullMode);
  10770 
  10771 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
  10772     VkCommandBuffer                             commandBuffer,
  10773     VkFrontFace                                 frontFace);
  10774 
  10775 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
  10776     VkCommandBuffer                             commandBuffer,
  10777     VkPrimitiveTopology                         primitiveTopology);
  10778 
  10779 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
  10780     VkCommandBuffer                             commandBuffer,
  10781     uint32_t                                    viewportCount,
  10782     const VkViewport*                           pViewports);
  10783 
  10784 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
  10785     VkCommandBuffer                             commandBuffer,
  10786     uint32_t                                    scissorCount,
  10787     const VkRect2D*                             pScissors);
  10788 
  10789 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
  10790     VkCommandBuffer                             commandBuffer,
  10791     uint32_t                                    firstBinding,
  10792     uint32_t                                    bindingCount,
  10793     const VkBuffer*                             pBuffers,
  10794     const VkDeviceSize*                         pOffsets,
  10795     const VkDeviceSize*                         pSizes,
  10796     const VkDeviceSize*                         pStrides);
  10797 
  10798 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
  10799     VkCommandBuffer                             commandBuffer,
  10800     VkBool32                                    depthTestEnable);
  10801 
  10802 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
  10803     VkCommandBuffer                             commandBuffer,
  10804     VkBool32                                    depthWriteEnable);
  10805 
  10806 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
  10807     VkCommandBuffer                             commandBuffer,
  10808     VkCompareOp                                 depthCompareOp);
  10809 
  10810 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
  10811     VkCommandBuffer                             commandBuffer,
  10812     VkBool32                                    depthBoundsTestEnable);
  10813 
  10814 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
  10815     VkCommandBuffer                             commandBuffer,
  10816     VkBool32                                    stencilTestEnable);
  10817 
  10818 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
  10819     VkCommandBuffer                             commandBuffer,
  10820     VkStencilFaceFlags                          faceMask,
  10821     VkStencilOp                                 failOp,
  10822     VkStencilOp                                 passOp,
  10823     VkStencilOp                                 depthFailOp,
  10824     VkCompareOp                                 compareOp);
  10825 #endif
  10826 
  10827 
  10828 #define VK_EXT_shader_demote_to_helper_invocation 1
  10829 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
  10830 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
  10831 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
  10832     VkStructureType    sType;
  10833     void*              pNext;
  10834     VkBool32           shaderDemoteToHelperInvocation;
  10835 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  10836 
  10837 
  10838 
  10839 #define VK_NV_device_generated_commands 1
  10840 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
  10841 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
  10842 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
  10843 
  10844 typedef enum VkIndirectCommandsTokenTypeNV {
  10845     VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
  10846     VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
  10847     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
  10848     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
  10849     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
  10850     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
  10851     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
  10852     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
  10853     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  10854 } VkIndirectCommandsTokenTypeNV;
  10855 
  10856 typedef enum VkIndirectStateFlagBitsNV {
  10857     VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
  10858     VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  10859 } VkIndirectStateFlagBitsNV;
  10860 typedef VkFlags VkIndirectStateFlagsNV;
  10861 
  10862 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
  10863     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
  10864     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
  10865     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
  10866     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  10867 } VkIndirectCommandsLayoutUsageFlagBitsNV;
  10868 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
  10869 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
  10870     VkStructureType    sType;
  10871     void*              pNext;
  10872     uint32_t           maxGraphicsShaderGroupCount;
  10873     uint32_t           maxIndirectSequenceCount;
  10874     uint32_t           maxIndirectCommandsTokenCount;
  10875     uint32_t           maxIndirectCommandsStreamCount;
  10876     uint32_t           maxIndirectCommandsTokenOffset;
  10877     uint32_t           maxIndirectCommandsStreamStride;
  10878     uint32_t           minSequencesCountBufferOffsetAlignment;
  10879     uint32_t           minSequencesIndexBufferOffsetAlignment;
  10880     uint32_t           minIndirectCommandsBufferOffsetAlignment;
  10881 } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  10882 
  10883 typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
  10884     VkStructureType    sType;
  10885     void*              pNext;
  10886     VkBool32           deviceGeneratedCommands;
  10887 } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  10888 
  10889 typedef struct VkGraphicsShaderGroupCreateInfoNV {
  10890     VkStructureType                                 sType;
  10891     const void*                                     pNext;
  10892     uint32_t                                        stageCount;
  10893     const VkPipelineShaderStageCreateInfo*          pStages;
  10894     const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
  10895     const VkPipelineTessellationStateCreateInfo*    pTessellationState;
  10896 } VkGraphicsShaderGroupCreateInfoNV;
  10897 
  10898 typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
  10899     VkStructureType                             sType;
  10900     const void*                                 pNext;
  10901     uint32_t                                    groupCount;
  10902     const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
  10903     uint32_t                                    pipelineCount;
  10904     const VkPipeline*                           pPipelines;
  10905 } VkGraphicsPipelineShaderGroupsCreateInfoNV;
  10906 
  10907 typedef struct VkBindShaderGroupIndirectCommandNV {
  10908     uint32_t    groupIndex;
  10909 } VkBindShaderGroupIndirectCommandNV;
  10910 
  10911 typedef struct VkBindIndexBufferIndirectCommandNV {
  10912     VkDeviceAddress    bufferAddress;
  10913     uint32_t           size;
  10914     VkIndexType        indexType;
  10915 } VkBindIndexBufferIndirectCommandNV;
  10916 
  10917 typedef struct VkBindVertexBufferIndirectCommandNV {
  10918     VkDeviceAddress    bufferAddress;
  10919     uint32_t           size;
  10920     uint32_t           stride;
  10921 } VkBindVertexBufferIndirectCommandNV;
  10922 
  10923 typedef struct VkSetStateFlagsIndirectCommandNV {
  10924     uint32_t    data;
  10925 } VkSetStateFlagsIndirectCommandNV;
  10926 
  10927 typedef struct VkIndirectCommandsStreamNV {
  10928     VkBuffer        buffer;
  10929     VkDeviceSize    offset;
  10930 } VkIndirectCommandsStreamNV;
  10931 
  10932 typedef struct VkIndirectCommandsLayoutTokenNV {
  10933     VkStructureType                  sType;
  10934     const void*                      pNext;
  10935     VkIndirectCommandsTokenTypeNV    tokenType;
  10936     uint32_t                         stream;
  10937     uint32_t                         offset;
  10938     uint32_t                         vertexBindingUnit;
  10939     VkBool32                         vertexDynamicStride;
  10940     VkPipelineLayout                 pushconstantPipelineLayout;
  10941     VkShaderStageFlags               pushconstantShaderStageFlags;
  10942     uint32_t                         pushconstantOffset;
  10943     uint32_t                         pushconstantSize;
  10944     VkIndirectStateFlagsNV           indirectStateFlags;
  10945     uint32_t                         indexTypeCount;
  10946     const VkIndexType*               pIndexTypes;
  10947     const uint32_t*                  pIndexTypeValues;
  10948 } VkIndirectCommandsLayoutTokenNV;
  10949 
  10950 typedef struct VkIndirectCommandsLayoutCreateInfoNV {
  10951     VkStructureType                           sType;
  10952     const void*                               pNext;
  10953     VkIndirectCommandsLayoutUsageFlagsNV      flags;
  10954     VkPipelineBindPoint                       pipelineBindPoint;
  10955     uint32_t                                  tokenCount;
  10956     const VkIndirectCommandsLayoutTokenNV*    pTokens;
  10957     uint32_t                                  streamCount;
  10958     const uint32_t*                           pStreamStrides;
  10959 } VkIndirectCommandsLayoutCreateInfoNV;
  10960 
  10961 typedef struct VkGeneratedCommandsInfoNV {
  10962     VkStructureType                      sType;
  10963     const void*                          pNext;
  10964     VkPipelineBindPoint                  pipelineBindPoint;
  10965     VkPipeline                           pipeline;
  10966     VkIndirectCommandsLayoutNV           indirectCommandsLayout;
  10967     uint32_t                             streamCount;
  10968     const VkIndirectCommandsStreamNV*    pStreams;
  10969     uint32_t                             sequencesCount;
  10970     VkBuffer                             preprocessBuffer;
  10971     VkDeviceSize                         preprocessOffset;
  10972     VkDeviceSize                         preprocessSize;
  10973     VkBuffer                             sequencesCountBuffer;
  10974     VkDeviceSize                         sequencesCountOffset;
  10975     VkBuffer                             sequencesIndexBuffer;
  10976     VkDeviceSize                         sequencesIndexOffset;
  10977 } VkGeneratedCommandsInfoNV;
  10978 
  10979 typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
  10980     VkStructureType               sType;
  10981     const void*                   pNext;
  10982     VkPipelineBindPoint           pipelineBindPoint;
  10983     VkPipeline                    pipeline;
  10984     VkIndirectCommandsLayoutNV    indirectCommandsLayout;
  10985     uint32_t                      maxSequencesCount;
  10986 } VkGeneratedCommandsMemoryRequirementsInfoNV;
  10987 
  10988 typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  10989 typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10990 typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10991 typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
  10992 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  10993 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  10994 
  10995 #ifndef VK_NO_PROTOTYPES
  10996 VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
  10997     VkDevice                                    device,
  10998     const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
  10999     VkMemoryRequirements2*                      pMemoryRequirements);
  11000 
  11001 VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
  11002     VkCommandBuffer                             commandBuffer,
  11003     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
  11004 
  11005 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
  11006     VkCommandBuffer                             commandBuffer,
  11007     VkBool32                                    isPreprocessed,
  11008     const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
  11009 
  11010 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
  11011     VkCommandBuffer                             commandBuffer,
  11012     VkPipelineBindPoint                         pipelineBindPoint,
  11013     VkPipeline                                  pipeline,
  11014     uint32_t                                    groupIndex);
  11015 
  11016 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
  11017     VkDevice                                    device,
  11018     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
  11019     const VkAllocationCallbacks*                pAllocator,
  11020     VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
  11021 
  11022 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
  11023     VkDevice                                    device,
  11024     VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
  11025     const VkAllocationCallbacks*                pAllocator);
  11026 #endif
  11027 
  11028 
  11029 #define VK_EXT_texel_buffer_alignment 1
  11030 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
  11031 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
  11032 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
  11033     VkStructureType    sType;
  11034     void*              pNext;
  11035     VkBool32           texelBufferAlignment;
  11036 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  11037 
  11038 typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT {
  11039     VkStructureType    sType;
  11040     void*              pNext;
  11041     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
  11042     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
  11043     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
  11044     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
  11045 } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  11046 
  11047 
  11048 
  11049 #define VK_QCOM_render_pass_transform 1
  11050 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1
  11051 #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
  11052 typedef struct VkRenderPassTransformBeginInfoQCOM {
  11053     VkStructureType                  sType;
  11054     void*                            pNext;
  11055     VkSurfaceTransformFlagBitsKHR    transform;
  11056 } VkRenderPassTransformBeginInfoQCOM;
  11057 
  11058 typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
  11059     VkStructureType                  sType;
  11060     void*                            pNext;
  11061     VkSurfaceTransformFlagBitsKHR    transform;
  11062     VkRect2D                         renderArea;
  11063 } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  11064 
  11065 
  11066 
  11067 #define VK_EXT_device_memory_report 1
  11068 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 1
  11069 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
  11070 
  11071 typedef enum VkDeviceMemoryReportEventTypeEXT {
  11072     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
  11073     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
  11074     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
  11075     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
  11076     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
  11077     VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  11078 } VkDeviceMemoryReportEventTypeEXT;
  11079 typedef VkFlags VkDeviceMemoryReportFlagsEXT;
  11080 typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
  11081     VkStructureType    sType;
  11082     void*              pNext;
  11083     VkBool32           deviceMemoryReport;
  11084 } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  11085 
  11086 typedef struct VkDeviceMemoryReportCallbackDataEXT {
  11087     VkStructureType                     sType;
  11088     const void*                         pNext;
  11089     VkDeviceMemoryReportFlagsEXT        flags;
  11090     VkDeviceMemoryReportEventTypeEXT    type;
  11091     uint64_t                            memoryObjectId;
  11092     VkDeviceSize                        size;
  11093     VkObjectType                        objectType;
  11094     uint64_t                            objectHandle;
  11095     uint32_t                            heapIndex;
  11096 } VkDeviceMemoryReportCallbackDataEXT;
  11097 
  11098 typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
  11099     const VkDeviceMemoryReportCallbackDataEXT*  pCallbackData,
  11100     void*                                       pUserData);
  11101 
  11102 typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
  11103     VkStructureType                        sType;
  11104     const void*                            pNext;
  11105     VkDeviceMemoryReportFlagsEXT           flags;
  11106     PFN_vkDeviceMemoryReportCallbackEXT    pfnUserCallback;
  11107     void*                                  pUserData;
  11108 } VkDeviceDeviceMemoryReportCreateInfoEXT;
  11109 
  11110 
  11111 
  11112 #define VK_EXT_robustness2 1
  11113 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
  11114 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
  11115 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
  11116     VkStructureType    sType;
  11117     void*              pNext;
  11118     VkBool32           robustBufferAccess2;
  11119     VkBool32           robustImageAccess2;
  11120     VkBool32           nullDescriptor;
  11121 } VkPhysicalDeviceRobustness2FeaturesEXT;
  11122 
  11123 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
  11124     VkStructureType    sType;
  11125     void*              pNext;
  11126     VkDeviceSize       robustStorageBufferAccessSizeAlignment;
  11127     VkDeviceSize       robustUniformBufferAccessSizeAlignment;
  11128 } VkPhysicalDeviceRobustness2PropertiesEXT;
  11129 
  11130 
  11131 
  11132 #define VK_EXT_custom_border_color 1
  11133 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
  11134 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
  11135 typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
  11136     VkStructureType      sType;
  11137     const void*          pNext;
  11138     VkClearColorValue    customBorderColor;
  11139     VkFormat             format;
  11140 } VkSamplerCustomBorderColorCreateInfoEXT;
  11141 
  11142 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
  11143     VkStructureType    sType;
  11144     void*              pNext;
  11145     uint32_t           maxCustomBorderColorSamplers;
  11146 } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  11147 
  11148 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
  11149     VkStructureType    sType;
  11150     void*              pNext;
  11151     VkBool32           customBorderColors;
  11152     VkBool32           customBorderColorWithoutFormat;
  11153 } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  11154 
  11155 
  11156 
  11157 #define VK_GOOGLE_user_type 1
  11158 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
  11159 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
  11160 
  11161 
  11162 #define VK_EXT_private_data 1
  11163 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT)
  11164 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
  11165 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
  11166 
  11167 typedef enum VkPrivateDataSlotCreateFlagBitsEXT {
  11168     VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  11169 } VkPrivateDataSlotCreateFlagBitsEXT;
  11170 typedef VkFlags VkPrivateDataSlotCreateFlagsEXT;
  11171 typedef struct VkPhysicalDevicePrivateDataFeaturesEXT {
  11172     VkStructureType    sType;
  11173     void*              pNext;
  11174     VkBool32           privateData;
  11175 } VkPhysicalDevicePrivateDataFeaturesEXT;
  11176 
  11177 typedef struct VkDevicePrivateDataCreateInfoEXT {
  11178     VkStructureType    sType;
  11179     const void*        pNext;
  11180     uint32_t           privateDataSlotRequestCount;
  11181 } VkDevicePrivateDataCreateInfoEXT;
  11182 
  11183 typedef struct VkPrivateDataSlotCreateInfoEXT {
  11184     VkStructureType                    sType;
  11185     const void*                        pNext;
  11186     VkPrivateDataSlotCreateFlagsEXT    flags;
  11187 } VkPrivateDataSlotCreateInfoEXT;
  11188 
  11189 typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot);
  11190 typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator);
  11191 typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data);
  11192 typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData);
  11193 
  11194 #ifndef VK_NO_PROTOTYPES
  11195 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
  11196     VkDevice                                    device,
  11197     const VkPrivateDataSlotCreateInfoEXT*       pCreateInfo,
  11198     const VkAllocationCallbacks*                pAllocator,
  11199     VkPrivateDataSlotEXT*                       pPrivateDataSlot);
  11200 
  11201 VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
  11202     VkDevice                                    device,
  11203     VkPrivateDataSlotEXT                        privateDataSlot,
  11204     const VkAllocationCallbacks*                pAllocator);
  11205 
  11206 VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
  11207     VkDevice                                    device,
  11208     VkObjectType                                objectType,
  11209     uint64_t                                    objectHandle,
  11210     VkPrivateDataSlotEXT                        privateDataSlot,
  11211     uint64_t                                    data);
  11212 
  11213 VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
  11214     VkDevice                                    device,
  11215     VkObjectType                                objectType,
  11216     uint64_t                                    objectHandle,
  11217     VkPrivateDataSlotEXT                        privateDataSlot,
  11218     uint64_t*                                   pData);
  11219 #endif
  11220 
  11221 
  11222 #define VK_EXT_pipeline_creation_cache_control 1
  11223 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
  11224 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
  11225 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT {
  11226     VkStructureType    sType;
  11227     void*              pNext;
  11228     VkBool32           pipelineCreationCacheControl;
  11229 } VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
  11230 
  11231 
  11232 
  11233 #define VK_NV_device_diagnostics_config 1
  11234 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
  11235 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
  11236 
  11237 typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
  11238     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
  11239     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
  11240     VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
  11241     VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  11242 } VkDeviceDiagnosticsConfigFlagBitsNV;
  11243 typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
  11244 typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
  11245     VkStructureType    sType;
  11246     void*              pNext;
  11247     VkBool32           diagnosticsConfig;
  11248 } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  11249 
  11250 typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
  11251     VkStructureType                     sType;
  11252     const void*                         pNext;
  11253     VkDeviceDiagnosticsConfigFlagsNV    flags;
  11254 } VkDeviceDiagnosticsConfigCreateInfoNV;
  11255 
  11256 
  11257 
  11258 #define VK_QCOM_render_pass_store_ops 1
  11259 #define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
  11260 #define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
  11261 
  11262 
  11263 #define VK_EXT_fragment_density_map2 1
  11264 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
  11265 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
  11266 typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
  11267     VkStructureType    sType;
  11268     void*              pNext;
  11269     VkBool32           fragmentDensityMapDeferred;
  11270 } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  11271 
  11272 typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
  11273     VkStructureType    sType;
  11274     void*              pNext;
  11275     VkBool32           subsampledLoads;
  11276     VkBool32           subsampledCoarseReconstructionEarlyAccess;
  11277     uint32_t           maxSubsampledArrayLayers;
  11278     uint32_t           maxDescriptorSetSubsampledSamplers;
  11279 } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  11280 
  11281 
  11282 
  11283 #define VK_EXT_image_robustness 1
  11284 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
  11285 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
  11286 typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT {
  11287     VkStructureType    sType;
  11288     void*              pNext;
  11289     VkBool32           robustImageAccess;
  11290 } VkPhysicalDeviceImageRobustnessFeaturesEXT;
  11291 
  11292 
  11293 
  11294 #define VK_EXT_4444_formats 1
  11295 #define VK_EXT_4444_FORMATS_SPEC_VERSION  1
  11296 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
  11297 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
  11298     VkStructureType    sType;
  11299     void*              pNext;
  11300     VkBool32           formatA4R4G4B4;
  11301     VkBool32           formatA4B4G4R4;
  11302 } VkPhysicalDevice4444FormatsFeaturesEXT;
  11303 
  11304 
  11305 #ifdef __cplusplus
  11306 }
  11307 #endif
  11308 
  11309 #endif