minesweeper

A minewseeper implementation to play around with Hare and Raylib
git clone https://git.tronto.net/minesweeper
Download | Log | Files | Refs | README | LICENSE

vulkan.h (336197B)


      1 /**
      2  * Loader generated by glad 2.0.0-beta on Thu Jul  7 20:52:04 2022
      3  *
      4  * Generator: C/C++
      5  * Specification: vk
      6  * Extensions: 4
      7  *
      8  * APIs:
      9  *  - vulkan=1.3
     10  *
     11  * Options:
     12  *  - ALIAS = False
     13  *  - DEBUG = False
     14  *  - HEADER_ONLY = True
     15  *  - LOADER = False
     16  *  - MX = False
     17  *  - MX_GLOBAL = False
     18  *  - ON_DEMAND = False
     19  *
     20  * Commandline:
     21  *    --api='vulkan=1.3' --extensions='VK_EXT_debug_report,VK_KHR_portability_enumeration,VK_KHR_surface,VK_KHR_swapchain' c --header-only
     22  *
     23  * Online:
     24  *    http://glad.sh/#api=vulkan%3D1.3&extensions=VK_EXT_debug_report%2CVK_KHR_portability_enumeration%2CVK_KHR_surface%2CVK_KHR_swapchain&generator=c&options=HEADER_ONLY
     25  *
     26  */
     27 
     28 #ifndef GLAD_VULKAN_H_
     29 #define GLAD_VULKAN_H_
     30 
     31 #ifdef VULKAN_H_
     32   #error  header already included (API: vulkan), remove previous include!
     33 #endif
     34 #define VULKAN_H_ 1
     35 
     36 #ifdef VULKAN_CORE_H_
     37   #error  header already included (API: vulkan), remove previous include!
     38 #endif
     39 #define VULKAN_CORE_H_ 1
     40 
     41 
     42 #define GLAD_VULKAN
     43 #define GLAD_OPTION_VULKAN_HEADER_ONLY
     44 
     45 #ifdef __cplusplus
     46 extern "C" {
     47 #endif
     48 
     49 #ifndef GLAD_PLATFORM_H_
     50 #define GLAD_PLATFORM_H_
     51 
     52 #ifndef GLAD_PLATFORM_WIN32
     53   #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
     54     #define GLAD_PLATFORM_WIN32 1
     55   #else
     56     #define GLAD_PLATFORM_WIN32 0
     57   #endif
     58 #endif
     59 
     60 #ifndef GLAD_PLATFORM_APPLE
     61   #ifdef __APPLE__
     62     #define GLAD_PLATFORM_APPLE 1
     63   #else
     64     #define GLAD_PLATFORM_APPLE 0
     65   #endif
     66 #endif
     67 
     68 #ifndef GLAD_PLATFORM_EMSCRIPTEN
     69   #ifdef __EMSCRIPTEN__
     70     #define GLAD_PLATFORM_EMSCRIPTEN 1
     71   #else
     72     #define GLAD_PLATFORM_EMSCRIPTEN 0
     73   #endif
     74 #endif
     75 
     76 #ifndef GLAD_PLATFORM_UWP
     77   #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
     78     #ifdef __has_include
     79       #if __has_include(<winapifamily.h>)
     80         #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     81       #endif
     82     #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
     83       #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     84     #endif
     85   #endif
     86 
     87   #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
     88     #include <winapifamily.h>
     89     #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
     90       #define GLAD_PLATFORM_UWP 1
     91     #endif
     92   #endif
     93 
     94   #ifndef GLAD_PLATFORM_UWP
     95     #define GLAD_PLATFORM_UWP 0
     96   #endif
     97 #endif
     98 
     99 #ifdef __GNUC__
    100   #define GLAD_GNUC_EXTENSION __extension__
    101 #else
    102   #define GLAD_GNUC_EXTENSION
    103 #endif
    104 
    105 #ifndef GLAD_API_CALL
    106   #if defined(GLAD_API_CALL_EXPORT)
    107     #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
    108       #if defined(GLAD_API_CALL_EXPORT_BUILD)
    109         #if defined(__GNUC__)
    110           #define GLAD_API_CALL __attribute__ ((dllexport)) extern
    111         #else
    112           #define GLAD_API_CALL __declspec(dllexport) extern
    113         #endif
    114       #else
    115         #if defined(__GNUC__)
    116           #define GLAD_API_CALL __attribute__ ((dllimport)) extern
    117         #else
    118           #define GLAD_API_CALL __declspec(dllimport) extern
    119         #endif
    120       #endif
    121     #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
    122       #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
    123     #else
    124       #define GLAD_API_CALL extern
    125     #endif
    126   #else
    127     #define GLAD_API_CALL extern
    128   #endif
    129 #endif
    130 
    131 #ifdef APIENTRY
    132   #define GLAD_API_PTR APIENTRY
    133 #elif GLAD_PLATFORM_WIN32
    134   #define GLAD_API_PTR __stdcall
    135 #else
    136   #define GLAD_API_PTR
    137 #endif
    138 
    139 #ifndef GLAPI
    140 #define GLAPI GLAD_API_CALL
    141 #endif
    142 
    143 #ifndef GLAPIENTRY
    144 #define GLAPIENTRY GLAD_API_PTR
    145 #endif
    146 
    147 #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
    148 #define GLAD_VERSION_MAJOR(version) (version / 10000)
    149 #define GLAD_VERSION_MINOR(version) (version % 10000)
    150 
    151 #define GLAD_GENERATOR_VERSION "2.0.0-beta"
    152 
    153 typedef void (*GLADapiproc)(void);
    154 
    155 typedef GLADapiproc (*GLADloadfunc)(const char *name);
    156 typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
    157 
    158 typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
    159 typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
    160 
    161 #endif /* GLAD_PLATFORM_H_ */
    162 
    163 #define VK_ATTACHMENT_UNUSED (~0U)
    164 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
    165 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
    166 #define VK_FALSE 0
    167 #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
    168 #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
    169 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
    170 #define VK_KHR_SURFACE_SPEC_VERSION 25
    171 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
    172 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
    173 #define VK_LOD_CLAMP_NONE 1000.0F
    174 #define VK_LUID_SIZE 8
    175 #define VK_MAX_DESCRIPTION_SIZE 256
    176 #define VK_MAX_DEVICE_GROUP_SIZE 32
    177 #define VK_MAX_DRIVER_INFO_SIZE 256
    178 #define VK_MAX_DRIVER_NAME_SIZE 256
    179 #define VK_MAX_EXTENSION_NAME_SIZE 256
    180 #define VK_MAX_MEMORY_HEAPS 16
    181 #define VK_MAX_MEMORY_TYPES 32
    182 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
    183 #define VK_QUEUE_FAMILY_EXTERNAL (~1U)
    184 #define VK_QUEUE_FAMILY_IGNORED (~0U)
    185 #define VK_REMAINING_ARRAY_LAYERS (~0U)
    186 #define VK_REMAINING_MIP_LEVELS (~0U)
    187 #define VK_SUBPASS_EXTERNAL (~0U)
    188 #define VK_TRUE 1
    189 #define VK_UUID_SIZE 16
    190 #define VK_WHOLE_SIZE (~0ULL)
    191 
    192 
    193 /* */
    194 /* File: vk_platform.h */
    195 /* */
    196 /*
    197 ** Copyright 2014-2022 The Khronos Group Inc.
    198 **
    199 ** SPDX-License-Identifier: Apache-2.0
    200 */
    201 
    202 
    203 #ifndef VK_PLATFORM_H_
    204 #define VK_PLATFORM_H_
    205 
    206 #ifdef __cplusplus
    207 extern "C"
    208 {
    209 #endif /* __cplusplus */
    210 
    211 /*
    212 ***************************************************************************************************
    213 *   Platform-specific directives and type declarations
    214 ***************************************************************************************************
    215 */
    216 
    217 /* Platform-specific calling convention macros.
    218  *
    219  * Platforms should define these so that Vulkan clients call Vulkan commands
    220  * with the same calling conventions that the Vulkan implementation expects.
    221  *
    222  * VKAPI_ATTR - Placed before the return type in function declarations.
    223  *              Useful for C++11 and GCC/Clang-style function attribute syntax.
    224  * VKAPI_CALL - Placed after the return type in function declarations.
    225  *              Useful for MSVC-style calling convention syntax.
    226  * VKAPI_PTR  - Placed between the '(' and '*' in function pointer types.
    227  *
    228  * Function declaration:  VKAPI_ATTR void VKAPI_CALL vkCommand(void);
    229  * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
    230  */
    231 #if defined(_WIN32)
    232     /* On Windows, Vulkan commands use the stdcall convention */
    233     #define VKAPI_ATTR
    234     #define VKAPI_CALL __stdcall
    235     #define VKAPI_PTR  VKAPI_CALL
    236 #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
    237     #error "Vulkan is not supported for the 'armeabi' NDK ABI"
    238 #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
    239     /* On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" */
    240     /* calling convention, i.e. float parameters are passed in registers. This */
    241     /* is true even if the rest of the application passes floats on the stack, */
    242     /* as it does by default when compiling for the armeabi-v7a NDK ABI. */
    243     #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
    244     #define VKAPI_CALL
    245     #define VKAPI_PTR  VKAPI_ATTR
    246 #else
    247     /* On other platforms, use the default calling convention */
    248     #define VKAPI_ATTR
    249     #define VKAPI_CALL
    250     #define VKAPI_PTR
    251 #endif
    252 
    253 #if !defined(VK_NO_STDDEF_H)
    254     #include <stddef.h>
    255 #endif /* !defined(VK_NO_STDDEF_H) */
    256 
    257 #if !defined(VK_NO_STDINT_H)
    258     #if defined(_MSC_VER) && (_MSC_VER < 1600)
    259         typedef signed   __int8  int8_t;
    260         typedef unsigned __int8  uint8_t;
    261         typedef signed   __int16 int16_t;
    262         typedef unsigned __int16 uint16_t;
    263         typedef signed   __int32 int32_t;
    264         typedef unsigned __int32 uint32_t;
    265         typedef signed   __int64 int64_t;
    266         typedef unsigned __int64 uint64_t;
    267     #else
    268         #include <stdint.h>
    269     #endif
    270 #endif /* !defined(VK_NO_STDINT_H) */
    271 
    272 #ifdef __cplusplus
    273 } /* extern "C" */
    274 #endif /* __cplusplus */
    275 
    276 #endif
    277 /* DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. */
    278 #define VK_MAKE_VERSION(major, minor, patch) \
    279     ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
    280 /* DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. */
    281 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
    282 /* DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. */
    283 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
    284 /* DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. */
    285 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
    286 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
    287     ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
    288 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
    289 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
    290 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
    291 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
    292 /* 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. */
    293 /*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */
    294 /* Vulkan 1.0 version number */
    295 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)/* Patch version should always be set to 0 */
    296 /* Vulkan 1.1 version number */
    297 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)/* Patch version should always be set to 0 */
    298 /* Vulkan 1.2 version number */
    299 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)/* Patch version should always be set to 0 */
    300 /* Vulkan 1.3 version number */
    301 #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)/* Patch version should always be set to 0 */
    302 /* Version of this file */
    303 #define VK_HEADER_VERSION 220
    304 /* Complete version of this file */
    305 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
    306 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
    307 #ifndef VK_USE_64_BIT_PTR_DEFINES
    308     #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
    309         #define VK_USE_64_BIT_PTR_DEFINES 1
    310     #else
    311         #define VK_USE_64_BIT_PTR_DEFINES 0
    312     #endif
    313 #endif
    314 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
    315     #if (VK_USE_64_BIT_PTR_DEFINES==1)
    316         #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
    317             #define VK_NULL_HANDLE nullptr
    318         #else
    319             #define VK_NULL_HANDLE ((void*)0)
    320         #endif
    321     #else
    322         #define VK_NULL_HANDLE 0ULL
    323     #endif
    324 #endif
    325 #ifndef VK_NULL_HANDLE
    326     #define VK_NULL_HANDLE 0
    327 #endif
    328 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
    329     #if (VK_USE_64_BIT_PTR_DEFINES==1)
    330         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
    331     #else
    332         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
    333     #endif
    334 #endif
    335 
    336 
    337 
    338 
    339 
    340 
    341 
    342 
    343 VK_DEFINE_HANDLE(VkInstance)
    344 VK_DEFINE_HANDLE(VkPhysicalDevice)
    345 VK_DEFINE_HANDLE(VkDevice)
    346 VK_DEFINE_HANDLE(VkQueue)
    347 VK_DEFINE_HANDLE(VkCommandBuffer)
    348 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
    349 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
    350 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
    351 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
    352 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
    353 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
    354 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
    355 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
    356 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
    357 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
    358 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
    359 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
    360 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
    361 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
    362 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
    363 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
    364 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
    365 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
    366 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
    367 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
    368 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
    369 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
    370 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
    371 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
    372 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
    373 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
    374 typedef enum VkAttachmentLoadOp {
    375     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
    376     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
    377     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
    378     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
    379 } VkAttachmentLoadOp;
    380 typedef enum VkAttachmentStoreOp {
    381     VK_ATTACHMENT_STORE_OP_STORE = 0,
    382     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
    383     VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
    384     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
    385 } VkAttachmentStoreOp;
    386 typedef enum VkBlendFactor {
    387     VK_BLEND_FACTOR_ZERO = 0,
    388     VK_BLEND_FACTOR_ONE = 1,
    389     VK_BLEND_FACTOR_SRC_COLOR = 2,
    390     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
    391     VK_BLEND_FACTOR_DST_COLOR = 4,
    392     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
    393     VK_BLEND_FACTOR_SRC_ALPHA = 6,
    394     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
    395     VK_BLEND_FACTOR_DST_ALPHA = 8,
    396     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
    397     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
    398     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
    399     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
    400     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
    401     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
    402     VK_BLEND_FACTOR_SRC1_COLOR = 15,
    403     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
    404     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
    405     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
    406     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
    407 } VkBlendFactor;
    408 typedef enum VkBlendOp {
    409     VK_BLEND_OP_ADD = 0,
    410     VK_BLEND_OP_SUBTRACT = 1,
    411     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
    412     VK_BLEND_OP_MIN = 3,
    413     VK_BLEND_OP_MAX = 4,
    414     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
    415 } VkBlendOp;
    416 typedef enum VkBorderColor {
    417     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
    418     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
    419     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
    420     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
    421     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
    422     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
    423     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
    424 } VkBorderColor;
    425 typedef enum VkFramebufferCreateFlagBits {
    426     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 1,
    427     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    428 } VkFramebufferCreateFlagBits;
    429 typedef enum VkPipelineCacheHeaderVersion {
    430     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
    431     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
    432 } VkPipelineCacheHeaderVersion;
    433 typedef enum VkPipelineCacheCreateFlagBits {
    434     VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 1,
    435     VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    436 } VkPipelineCacheCreateFlagBits;
    437 typedef enum VkPipelineShaderStageCreateFlagBits {
    438     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 1,
    439     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 2,
    440     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    441 } VkPipelineShaderStageCreateFlagBits;
    442 typedef enum VkDescriptorSetLayoutCreateFlagBits {
    443     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2,
    444     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    445 } VkDescriptorSetLayoutCreateFlagBits;
    446 typedef enum VkInstanceCreateFlagBits {
    447     VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1,
    448     VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    449 } VkInstanceCreateFlagBits;
    450 typedef enum VkDeviceQueueCreateFlagBits {
    451     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1,
    452     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    453 } VkDeviceQueueCreateFlagBits;
    454 typedef enum VkBufferCreateFlagBits {
    455     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1,
    456     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2,
    457     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4,
    458     VK_BUFFER_CREATE_PROTECTED_BIT = 8,
    459     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16,
    460     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    461 } VkBufferCreateFlagBits;
    462 typedef enum VkBufferUsageFlagBits {
    463     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1,
    464     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2,
    465     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4,
    466     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8,
    467     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16,
    468     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32,
    469     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64,
    470     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128,
    471     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256,
    472     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072,
    473     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    474 } VkBufferUsageFlagBits;
    475 typedef enum VkColorComponentFlagBits {
    476     VK_COLOR_COMPONENT_R_BIT = 1,
    477     VK_COLOR_COMPONENT_G_BIT = 2,
    478     VK_COLOR_COMPONENT_B_BIT = 4,
    479     VK_COLOR_COMPONENT_A_BIT = 8,
    480     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    481 } VkColorComponentFlagBits;
    482 typedef enum VkComponentSwizzle {
    483     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
    484     VK_COMPONENT_SWIZZLE_ZERO = 1,
    485     VK_COMPONENT_SWIZZLE_ONE = 2,
    486     VK_COMPONENT_SWIZZLE_R = 3,
    487     VK_COMPONENT_SWIZZLE_G = 4,
    488     VK_COMPONENT_SWIZZLE_B = 5,
    489     VK_COMPONENT_SWIZZLE_A = 6,
    490     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
    491 } VkComponentSwizzle;
    492 typedef enum VkCommandPoolCreateFlagBits {
    493     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
    494     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2,
    495     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4,
    496     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    497 } VkCommandPoolCreateFlagBits;
    498 typedef enum VkCommandPoolResetFlagBits {
    499     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1,
    500     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    501 } VkCommandPoolResetFlagBits;
    502 typedef enum VkCommandBufferResetFlagBits {
    503     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1,
    504     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    505 } VkCommandBufferResetFlagBits;
    506 typedef enum VkCommandBufferLevel {
    507     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
    508     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
    509     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
    510 } VkCommandBufferLevel;
    511 typedef enum VkCommandBufferUsageFlagBits {
    512     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1,
    513     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2,
    514     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4,
    515     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    516 } VkCommandBufferUsageFlagBits;
    517 typedef enum VkCompareOp {
    518     VK_COMPARE_OP_NEVER = 0,
    519     VK_COMPARE_OP_LESS = 1,
    520     VK_COMPARE_OP_EQUAL = 2,
    521     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
    522     VK_COMPARE_OP_GREATER = 4,
    523     VK_COMPARE_OP_NOT_EQUAL = 5,
    524     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
    525     VK_COMPARE_OP_ALWAYS = 7,
    526     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
    527 } VkCompareOp;
    528 typedef enum VkCullModeFlagBits {
    529     VK_CULL_MODE_NONE = 0,
    530     VK_CULL_MODE_FRONT_BIT = 1,
    531     VK_CULL_MODE_BACK_BIT = 2,
    532     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
    533     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    534 } VkCullModeFlagBits;
    535 typedef enum VkDescriptorType {
    536     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
    537     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
    538     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
    539     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
    540     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
    541     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
    542     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
    543     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
    544     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
    545     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
    546     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
    547     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
    548     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
    549 } VkDescriptorType;
    550 typedef enum VkDynamicState {
    551     VK_DYNAMIC_STATE_VIEWPORT = 0,
    552     VK_DYNAMIC_STATE_SCISSOR = 1,
    553     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
    554     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
    555     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
    556     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
    557     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
    558     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
    559     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
    560     VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
    561     VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
    562     VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
    563     VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
    564     VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
    565     VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
    566     VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
    567     VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
    568     VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
    569     VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
    570     VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
    571     VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
    572     VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
    573     VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
    574     VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
    575     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
    576 } VkDynamicState;
    577 typedef enum VkFenceCreateFlagBits {
    578     VK_FENCE_CREATE_SIGNALED_BIT = 1,
    579     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    580 } VkFenceCreateFlagBits;
    581 typedef enum VkPolygonMode {
    582     VK_POLYGON_MODE_FILL = 0,
    583     VK_POLYGON_MODE_LINE = 1,
    584     VK_POLYGON_MODE_POINT = 2,
    585     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
    586 } VkPolygonMode;
    587 typedef enum VkFormat {
    588     VK_FORMAT_UNDEFINED = 0,
    589     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
    590     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
    591     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
    592     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
    593     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
    594     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
    595     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
    596     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
    597     VK_FORMAT_R8_UNORM = 9,
    598     VK_FORMAT_R8_SNORM = 10,
    599     VK_FORMAT_R8_USCALED = 11,
    600     VK_FORMAT_R8_SSCALED = 12,
    601     VK_FORMAT_R8_UINT = 13,
    602     VK_FORMAT_R8_SINT = 14,
    603     VK_FORMAT_R8_SRGB = 15,
    604     VK_FORMAT_R8G8_UNORM = 16,
    605     VK_FORMAT_R8G8_SNORM = 17,
    606     VK_FORMAT_R8G8_USCALED = 18,
    607     VK_FORMAT_R8G8_SSCALED = 19,
    608     VK_FORMAT_R8G8_UINT = 20,
    609     VK_FORMAT_R8G8_SINT = 21,
    610     VK_FORMAT_R8G8_SRGB = 22,
    611     VK_FORMAT_R8G8B8_UNORM = 23,
    612     VK_FORMAT_R8G8B8_SNORM = 24,
    613     VK_FORMAT_R8G8B8_USCALED = 25,
    614     VK_FORMAT_R8G8B8_SSCALED = 26,
    615     VK_FORMAT_R8G8B8_UINT = 27,
    616     VK_FORMAT_R8G8B8_SINT = 28,
    617     VK_FORMAT_R8G8B8_SRGB = 29,
    618     VK_FORMAT_B8G8R8_UNORM = 30,
    619     VK_FORMAT_B8G8R8_SNORM = 31,
    620     VK_FORMAT_B8G8R8_USCALED = 32,
    621     VK_FORMAT_B8G8R8_SSCALED = 33,
    622     VK_FORMAT_B8G8R8_UINT = 34,
    623     VK_FORMAT_B8G8R8_SINT = 35,
    624     VK_FORMAT_B8G8R8_SRGB = 36,
    625     VK_FORMAT_R8G8B8A8_UNORM = 37,
    626     VK_FORMAT_R8G8B8A8_SNORM = 38,
    627     VK_FORMAT_R8G8B8A8_USCALED = 39,
    628     VK_FORMAT_R8G8B8A8_SSCALED = 40,
    629     VK_FORMAT_R8G8B8A8_UINT = 41,
    630     VK_FORMAT_R8G8B8A8_SINT = 42,
    631     VK_FORMAT_R8G8B8A8_SRGB = 43,
    632     VK_FORMAT_B8G8R8A8_UNORM = 44,
    633     VK_FORMAT_B8G8R8A8_SNORM = 45,
    634     VK_FORMAT_B8G8R8A8_USCALED = 46,
    635     VK_FORMAT_B8G8R8A8_SSCALED = 47,
    636     VK_FORMAT_B8G8R8A8_UINT = 48,
    637     VK_FORMAT_B8G8R8A8_SINT = 49,
    638     VK_FORMAT_B8G8R8A8_SRGB = 50,
    639     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
    640     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
    641     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
    642     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
    643     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
    644     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
    645     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
    646     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
    647     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
    648     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
    649     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
    650     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
    651     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
    652     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
    653     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
    654     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
    655     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
    656     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
    657     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
    658     VK_FORMAT_R16_UNORM = 70,
    659     VK_FORMAT_R16_SNORM = 71,
    660     VK_FORMAT_R16_USCALED = 72,
    661     VK_FORMAT_R16_SSCALED = 73,
    662     VK_FORMAT_R16_UINT = 74,
    663     VK_FORMAT_R16_SINT = 75,
    664     VK_FORMAT_R16_SFLOAT = 76,
    665     VK_FORMAT_R16G16_UNORM = 77,
    666     VK_FORMAT_R16G16_SNORM = 78,
    667     VK_FORMAT_R16G16_USCALED = 79,
    668     VK_FORMAT_R16G16_SSCALED = 80,
    669     VK_FORMAT_R16G16_UINT = 81,
    670     VK_FORMAT_R16G16_SINT = 82,
    671     VK_FORMAT_R16G16_SFLOAT = 83,
    672     VK_FORMAT_R16G16B16_UNORM = 84,
    673     VK_FORMAT_R16G16B16_SNORM = 85,
    674     VK_FORMAT_R16G16B16_USCALED = 86,
    675     VK_FORMAT_R16G16B16_SSCALED = 87,
    676     VK_FORMAT_R16G16B16_UINT = 88,
    677     VK_FORMAT_R16G16B16_SINT = 89,
    678     VK_FORMAT_R16G16B16_SFLOAT = 90,
    679     VK_FORMAT_R16G16B16A16_UNORM = 91,
    680     VK_FORMAT_R16G16B16A16_SNORM = 92,
    681     VK_FORMAT_R16G16B16A16_USCALED = 93,
    682     VK_FORMAT_R16G16B16A16_SSCALED = 94,
    683     VK_FORMAT_R16G16B16A16_UINT = 95,
    684     VK_FORMAT_R16G16B16A16_SINT = 96,
    685     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
    686     VK_FORMAT_R32_UINT = 98,
    687     VK_FORMAT_R32_SINT = 99,
    688     VK_FORMAT_R32_SFLOAT = 100,
    689     VK_FORMAT_R32G32_UINT = 101,
    690     VK_FORMAT_R32G32_SINT = 102,
    691     VK_FORMAT_R32G32_SFLOAT = 103,
    692     VK_FORMAT_R32G32B32_UINT = 104,
    693     VK_FORMAT_R32G32B32_SINT = 105,
    694     VK_FORMAT_R32G32B32_SFLOAT = 106,
    695     VK_FORMAT_R32G32B32A32_UINT = 107,
    696     VK_FORMAT_R32G32B32A32_SINT = 108,
    697     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
    698     VK_FORMAT_R64_UINT = 110,
    699     VK_FORMAT_R64_SINT = 111,
    700     VK_FORMAT_R64_SFLOAT = 112,
    701     VK_FORMAT_R64G64_UINT = 113,
    702     VK_FORMAT_R64G64_SINT = 114,
    703     VK_FORMAT_R64G64_SFLOAT = 115,
    704     VK_FORMAT_R64G64B64_UINT = 116,
    705     VK_FORMAT_R64G64B64_SINT = 117,
    706     VK_FORMAT_R64G64B64_SFLOAT = 118,
    707     VK_FORMAT_R64G64B64A64_UINT = 119,
    708     VK_FORMAT_R64G64B64A64_SINT = 120,
    709     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
    710     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
    711     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
    712     VK_FORMAT_D16_UNORM = 124,
    713     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
    714     VK_FORMAT_D32_SFLOAT = 126,
    715     VK_FORMAT_S8_UINT = 127,
    716     VK_FORMAT_D16_UNORM_S8_UINT = 128,
    717     VK_FORMAT_D24_UNORM_S8_UINT = 129,
    718     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
    719     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
    720     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
    721     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
    722     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
    723     VK_FORMAT_BC2_UNORM_BLOCK = 135,
    724     VK_FORMAT_BC2_SRGB_BLOCK = 136,
    725     VK_FORMAT_BC3_UNORM_BLOCK = 137,
    726     VK_FORMAT_BC3_SRGB_BLOCK = 138,
    727     VK_FORMAT_BC4_UNORM_BLOCK = 139,
    728     VK_FORMAT_BC4_SNORM_BLOCK = 140,
    729     VK_FORMAT_BC5_UNORM_BLOCK = 141,
    730     VK_FORMAT_BC5_SNORM_BLOCK = 142,
    731     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
    732     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
    733     VK_FORMAT_BC7_UNORM_BLOCK = 145,
    734     VK_FORMAT_BC7_SRGB_BLOCK = 146,
    735     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
    736     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
    737     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
    738     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
    739     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
    740     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
    741     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
    742     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
    743     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
    744     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
    745     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
    746     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
    747     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
    748     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
    749     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
    750     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
    751     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
    752     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
    753     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
    754     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
    755     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
    756     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
    757     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
    758     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
    759     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
    760     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
    761     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
    762     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
    763     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
    764     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
    765     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
    766     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
    767     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
    768     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
    769     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
    770     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
    771     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
    772     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
    773     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
    774     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
    775     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
    776     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
    777     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
    778     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
    779     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
    780     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
    781     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
    782     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
    783     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
    784     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
    785     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
    786     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
    787     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
    788     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
    789     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
    790     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
    791     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
    792     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
    793     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
    794     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
    795     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
    796     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
    797     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
    798     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
    799     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
    800     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
    801     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
    802     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
    803     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
    804     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
    805     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
    806     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
    807     VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
    808     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
    809     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
    810     VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
    811     VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
    812     VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
    813     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
    814     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
    815     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
    816     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
    817     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
    818     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
    819     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
    820     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
    821     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
    822     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
    823     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
    824     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
    825     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
    826     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
    827     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
    828 } VkFormat;
    829 typedef enum VkFormatFeatureFlagBits {
    830     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1,
    831     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2,
    832     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4,
    833     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8,
    834     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16,
    835     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32,
    836     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64,
    837     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128,
    838     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256,
    839     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512,
    840     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024,
    841     VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048,
    842     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096,
    843     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 16384,
    844     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 32768,
    845     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 131072,
    846     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144,
    847     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288,
    848     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576,
    849     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152,
    850     VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304,
    851     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608,
    852     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536,
    853     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    854 } VkFormatFeatureFlagBits;
    855 typedef enum VkFrontFace {
    856     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
    857     VK_FRONT_FACE_CLOCKWISE = 1,
    858     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
    859 } VkFrontFace;
    860 typedef enum VkImageAspectFlagBits {
    861     VK_IMAGE_ASPECT_COLOR_BIT = 1,
    862     VK_IMAGE_ASPECT_DEPTH_BIT = 2,
    863     VK_IMAGE_ASPECT_STENCIL_BIT = 4,
    864     VK_IMAGE_ASPECT_METADATA_BIT = 8,
    865     VK_IMAGE_ASPECT_PLANE_0_BIT = 16,
    866     VK_IMAGE_ASPECT_PLANE_1_BIT = 32,
    867     VK_IMAGE_ASPECT_PLANE_2_BIT = 64,
    868     VK_IMAGE_ASPECT_NONE = 0,
    869     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    870 } VkImageAspectFlagBits;
    871 typedef enum VkImageCreateFlagBits {
    872     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1,
    873     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2,
    874     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4,
    875     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8,
    876     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16,
    877     VK_IMAGE_CREATE_ALIAS_BIT = 1024,
    878     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 64,
    879     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 32,
    880     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 128,
    881     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 256,
    882     VK_IMAGE_CREATE_PROTECTED_BIT = 2048,
    883     VK_IMAGE_CREATE_DISJOINT_BIT = 512,
    884     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    885 } VkImageCreateFlagBits;
    886 typedef enum VkImageLayout {
    887     VK_IMAGE_LAYOUT_UNDEFINED = 0,
    888     VK_IMAGE_LAYOUT_GENERAL = 1,
    889     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
    890     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
    891     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
    892     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
    893     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
    894     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
    895     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
    896     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
    897     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
    898     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
    899     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
    900     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
    901     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
    902     VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
    903     VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
    904     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
    905     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
    906 } VkImageLayout;
    907 typedef enum VkImageTiling {
    908     VK_IMAGE_TILING_OPTIMAL = 0,
    909     VK_IMAGE_TILING_LINEAR = 1,
    910     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
    911 } VkImageTiling;
    912 typedef enum VkImageType {
    913     VK_IMAGE_TYPE_1D = 0,
    914     VK_IMAGE_TYPE_2D = 1,
    915     VK_IMAGE_TYPE_3D = 2,
    916     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
    917 } VkImageType;
    918 typedef enum VkImageUsageFlagBits {
    919     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1,
    920     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2,
    921     VK_IMAGE_USAGE_SAMPLED_BIT = 4,
    922     VK_IMAGE_USAGE_STORAGE_BIT = 8,
    923     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16,
    924     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32,
    925     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64,
    926     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128,
    927     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    928 } VkImageUsageFlagBits;
    929 typedef enum VkImageViewType {
    930     VK_IMAGE_VIEW_TYPE_1D = 0,
    931     VK_IMAGE_VIEW_TYPE_2D = 1,
    932     VK_IMAGE_VIEW_TYPE_3D = 2,
    933     VK_IMAGE_VIEW_TYPE_CUBE = 3,
    934     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
    935     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
    936     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
    937     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
    938 } VkImageViewType;
    939 typedef enum VkSharingMode {
    940     VK_SHARING_MODE_EXCLUSIVE = 0,
    941     VK_SHARING_MODE_CONCURRENT = 1,
    942     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
    943 } VkSharingMode;
    944 typedef enum VkIndexType {
    945     VK_INDEX_TYPE_UINT16 = 0,
    946     VK_INDEX_TYPE_UINT32 = 1,
    947     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
    948 } VkIndexType;
    949 typedef enum VkLogicOp {
    950     VK_LOGIC_OP_CLEAR = 0,
    951     VK_LOGIC_OP_AND = 1,
    952     VK_LOGIC_OP_AND_REVERSE = 2,
    953     VK_LOGIC_OP_COPY = 3,
    954     VK_LOGIC_OP_AND_INVERTED = 4,
    955     VK_LOGIC_OP_NO_OP = 5,
    956     VK_LOGIC_OP_XOR = 6,
    957     VK_LOGIC_OP_OR = 7,
    958     VK_LOGIC_OP_NOR = 8,
    959     VK_LOGIC_OP_EQUIVALENT = 9,
    960     VK_LOGIC_OP_INVERT = 10,
    961     VK_LOGIC_OP_OR_REVERSE = 11,
    962     VK_LOGIC_OP_COPY_INVERTED = 12,
    963     VK_LOGIC_OP_OR_INVERTED = 13,
    964     VK_LOGIC_OP_NAND = 14,
    965     VK_LOGIC_OP_SET = 15,
    966     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
    967 } VkLogicOp;
    968 typedef enum VkMemoryHeapFlagBits {
    969     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1,
    970     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2,
    971     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    972 } VkMemoryHeapFlagBits;
    973 typedef enum VkAccessFlagBits {
    974     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1,
    975     VK_ACCESS_INDEX_READ_BIT = 2,
    976     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4,
    977     VK_ACCESS_UNIFORM_READ_BIT = 8,
    978     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16,
    979     VK_ACCESS_SHADER_READ_BIT = 32,
    980     VK_ACCESS_SHADER_WRITE_BIT = 64,
    981     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128,
    982     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256,
    983     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512,
    984     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024,
    985     VK_ACCESS_TRANSFER_READ_BIT = 2048,
    986     VK_ACCESS_TRANSFER_WRITE_BIT = 4096,
    987     VK_ACCESS_HOST_READ_BIT = 8192,
    988     VK_ACCESS_HOST_WRITE_BIT = 16384,
    989     VK_ACCESS_MEMORY_READ_BIT = 32768,
    990     VK_ACCESS_MEMORY_WRITE_BIT = 65536,
    991     VK_ACCESS_NONE = 0,
    992     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    993 } VkAccessFlagBits;
    994 typedef enum VkMemoryPropertyFlagBits {
    995     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1,
    996     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2,
    997     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4,
    998     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8,
    999     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16,
   1000     VK_MEMORY_PROPERTY_PROTECTED_BIT = 32,
   1001     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1002 } VkMemoryPropertyFlagBits;
   1003 typedef enum VkPhysicalDeviceType {
   1004     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
   1005     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
   1006     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
   1007     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
   1008     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
   1009     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1010 } VkPhysicalDeviceType;
   1011 typedef enum VkPipelineBindPoint {
   1012     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
   1013     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
   1014     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
   1015 } VkPipelineBindPoint;
   1016 typedef enum VkPipelineCreateFlagBits {
   1017     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1,
   1018     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2,
   1019     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4,
   1020     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 8,
   1021     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 16,
   1022     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
   1023     VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 256,
   1024     VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 512,
   1025     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1026 } VkPipelineCreateFlagBits;
   1027 typedef enum VkPrimitiveTopology {
   1028     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
   1029     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
   1030     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
   1031     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
   1032     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
   1033     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
   1034     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
   1035     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
   1036     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
   1037     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
   1038     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
   1039     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
   1040 } VkPrimitiveTopology;
   1041 typedef enum VkQueryControlFlagBits {
   1042     VK_QUERY_CONTROL_PRECISE_BIT = 1,
   1043     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1044 } VkQueryControlFlagBits;
   1045 typedef enum VkQueryPipelineStatisticFlagBits {
   1046     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1,
   1047     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2,
   1048     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4,
   1049     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8,
   1050     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16,
   1051     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32,
   1052     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64,
   1053     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128,
   1054     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256,
   1055     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512,
   1056     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024,
   1057     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1058 } VkQueryPipelineStatisticFlagBits;
   1059 typedef enum VkQueryResultFlagBits {
   1060     VK_QUERY_RESULT_64_BIT = 1,
   1061     VK_QUERY_RESULT_WAIT_BIT = 2,
   1062     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4,
   1063     VK_QUERY_RESULT_PARTIAL_BIT = 8,
   1064     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1065 } VkQueryResultFlagBits;
   1066 typedef enum VkQueryType {
   1067     VK_QUERY_TYPE_OCCLUSION = 0,
   1068     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
   1069     VK_QUERY_TYPE_TIMESTAMP = 2,
   1070     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
   1071 } VkQueryType;
   1072 typedef enum VkQueueFlagBits {
   1073     VK_QUEUE_GRAPHICS_BIT = 1,
   1074     VK_QUEUE_COMPUTE_BIT = 2,
   1075     VK_QUEUE_TRANSFER_BIT = 4,
   1076     VK_QUEUE_SPARSE_BINDING_BIT = 8,
   1077     VK_QUEUE_PROTECTED_BIT = 16,
   1078     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1079 } VkQueueFlagBits;
   1080 typedef enum VkSubpassContents {
   1081     VK_SUBPASS_CONTENTS_INLINE = 0,
   1082     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
   1083     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
   1084 } VkSubpassContents;
   1085 typedef enum VkResult {
   1086     VK_SUCCESS = 0,
   1087     VK_NOT_READY = 1,
   1088     VK_TIMEOUT = 2,
   1089     VK_EVENT_SET = 3,
   1090     VK_EVENT_RESET = 4,
   1091     VK_INCOMPLETE = 5,
   1092     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
   1093     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
   1094     VK_ERROR_INITIALIZATION_FAILED = -3,
   1095     VK_ERROR_DEVICE_LOST = -4,
   1096     VK_ERROR_MEMORY_MAP_FAILED = -5,
   1097     VK_ERROR_LAYER_NOT_PRESENT = -6,
   1098     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
   1099     VK_ERROR_FEATURE_NOT_PRESENT = -8,
   1100     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
   1101     VK_ERROR_TOO_MANY_OBJECTS = -10,
   1102     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
   1103     VK_ERROR_FRAGMENTED_POOL = -12,
   1104     VK_ERROR_UNKNOWN = -13,
   1105     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
   1106     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
   1107     VK_ERROR_FRAGMENTATION = -1000161000,
   1108     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
   1109     VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
   1110     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
   1111     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
   1112     VK_SUBOPTIMAL_KHR = 1000001003,
   1113     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
   1114     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
   1115     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
   1116 } VkResult;
   1117 typedef enum VkShaderStageFlagBits {
   1118     VK_SHADER_STAGE_VERTEX_BIT = 1,
   1119     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
   1120     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
   1121     VK_SHADER_STAGE_GEOMETRY_BIT = 8,
   1122     VK_SHADER_STAGE_FRAGMENT_BIT = 16,
   1123     VK_SHADER_STAGE_COMPUTE_BIT = 32,
   1124     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
   1125     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
   1126     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1127 } VkShaderStageFlagBits;
   1128 typedef enum VkSparseMemoryBindFlagBits {
   1129     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1,
   1130     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1131 } VkSparseMemoryBindFlagBits;
   1132 typedef enum VkStencilFaceFlagBits {
   1133     VK_STENCIL_FACE_FRONT_BIT = 1,
   1134     VK_STENCIL_FACE_BACK_BIT = 2,
   1135     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
   1136     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
   1137     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1138 } VkStencilFaceFlagBits;
   1139 typedef enum VkStencilOp {
   1140     VK_STENCIL_OP_KEEP = 0,
   1141     VK_STENCIL_OP_ZERO = 1,
   1142     VK_STENCIL_OP_REPLACE = 2,
   1143     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
   1144     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
   1145     VK_STENCIL_OP_INVERT = 5,
   1146     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
   1147     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
   1148     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
   1149 } VkStencilOp;
   1150 typedef enum VkStructureType {
   1151     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
   1152     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
   1153     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
   1154     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
   1155     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
   1156     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
   1157     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
   1158     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
   1159     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
   1160     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
   1161     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
   1162     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
   1163     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
   1164     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
   1165     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
   1166     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
   1167     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
   1168     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
   1169     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
   1170     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
   1171     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
   1172     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
   1173     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
   1174     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
   1175     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
   1176     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
   1177     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
   1178     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
   1179     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
   1180     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
   1181     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
   1182     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
   1183     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
   1184     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
   1185     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
   1186     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
   1187     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
   1188     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
   1189     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
   1190     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
   1191     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
   1192     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
   1193     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
   1194     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
   1195     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
   1196     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
   1197     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
   1198     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
   1199     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
   1200     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
   1201     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
   1202     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
   1203     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
   1204     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
   1205     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
   1206     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
   1207     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
   1208     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
   1209     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
   1210     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
   1211     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
   1212     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
   1213     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
   1214     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
   1215     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
   1216     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
   1217     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
   1218     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
   1219     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
   1220     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
   1221     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
   1222     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
   1223     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
   1224     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
   1225     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
   1226     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
   1227     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
   1228     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
   1229     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
   1230     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
   1231     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
   1232     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
   1233     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
   1234     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
   1235     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
   1236     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
   1237     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
   1238     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
   1239     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
   1240     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
   1241     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
   1242     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
   1243     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
   1244     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
   1245     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
   1246     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
   1247     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
   1248     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
   1249     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
   1250     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
   1251     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
   1252     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
   1253     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
   1254     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
   1255     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
   1256     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
   1257     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
   1258     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
   1259     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
   1260     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
   1261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
   1262     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
   1263     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
   1264     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
   1265     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
   1266     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
   1267     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
   1268     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
   1269     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
   1270     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
   1271     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
   1272     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
   1273     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
   1274     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
   1275     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
   1276     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
   1277     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
   1278     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
   1279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
   1280     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
   1281     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
   1282     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
   1283     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
   1284     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
   1285     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
   1286     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
   1287     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
   1288     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
   1289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
   1290     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
   1291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
   1292     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
   1293     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
   1294     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
   1295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
   1296     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
   1297     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
   1298     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
   1299     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
   1300     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
   1301     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
   1302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
   1303     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
   1304     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
   1305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
   1306     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
   1307     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
   1308     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
   1309     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
   1310     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
   1311     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
   1312     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
   1313     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
   1314     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
   1315     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
   1316     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
   1317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
   1318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
   1319     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
   1320     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
   1321     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
   1322     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
   1323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
   1324     VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
   1325     VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
   1326     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
   1327     VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
   1328     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
   1329     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
   1330     VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
   1331     VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
   1332     VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
   1333     VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
   1334     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
   1335     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
   1336     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
   1337     VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
   1338     VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
   1339     VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
   1340     VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
   1341     VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
   1342     VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
   1343     VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
   1344     VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
   1345     VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
   1346     VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
   1347     VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
   1348     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
   1349     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
   1350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
   1351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
   1352     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
   1353     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
   1354     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
   1355     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
   1356     VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
   1357     VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
   1358     VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
   1359     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
   1360     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
   1361     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
   1362     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
   1363     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
   1364     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
   1365     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
   1366     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
   1367     VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
   1368     VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
   1369     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
   1370     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
   1371     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
   1372     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
   1373     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
   1374     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
   1375     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
   1376     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
   1377     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
   1378     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
   1379     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1380 } VkStructureType;
   1381 typedef enum VkSystemAllocationScope {
   1382     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
   1383     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
   1384     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
   1385     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
   1386     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
   1387     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
   1388 } VkSystemAllocationScope;
   1389 typedef enum VkInternalAllocationType {
   1390     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
   1391     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
   1392 } VkInternalAllocationType;
   1393 typedef enum VkSamplerAddressMode {
   1394     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
   1395     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
   1396     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
   1397     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
   1398     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
   1399     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
   1400 } VkSamplerAddressMode;
   1401 typedef enum VkFilter {
   1402     VK_FILTER_NEAREST = 0,
   1403     VK_FILTER_LINEAR = 1,
   1404     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
   1405 } VkFilter;
   1406 typedef enum VkSamplerMipmapMode {
   1407     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
   1408     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
   1409     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
   1410 } VkSamplerMipmapMode;
   1411 typedef enum VkVertexInputRate {
   1412     VK_VERTEX_INPUT_RATE_VERTEX = 0,
   1413     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
   1414     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
   1415 } VkVertexInputRate;
   1416 typedef enum VkPipelineStageFlagBits {
   1417     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1,
   1418     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2,
   1419     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4,
   1420     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8,
   1421     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16,
   1422     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32,
   1423     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64,
   1424     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128,
   1425     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256,
   1426     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512,
   1427     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024,
   1428     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048,
   1429     VK_PIPELINE_STAGE_TRANSFER_BIT = 4096,
   1430     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192,
   1431     VK_PIPELINE_STAGE_HOST_BIT = 16384,
   1432     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768,
   1433     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536,
   1434     VK_PIPELINE_STAGE_NONE = 0,
   1435     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1436 } VkPipelineStageFlagBits;
   1437 typedef enum VkSparseImageFormatFlagBits {
   1438     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1,
   1439     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2,
   1440     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4,
   1441     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1442 } VkSparseImageFormatFlagBits;
   1443 typedef enum VkSampleCountFlagBits {
   1444     VK_SAMPLE_COUNT_1_BIT = 1,
   1445     VK_SAMPLE_COUNT_2_BIT = 2,
   1446     VK_SAMPLE_COUNT_4_BIT = 4,
   1447     VK_SAMPLE_COUNT_8_BIT = 8,
   1448     VK_SAMPLE_COUNT_16_BIT = 16,
   1449     VK_SAMPLE_COUNT_32_BIT = 32,
   1450     VK_SAMPLE_COUNT_64_BIT = 64,
   1451     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1452 } VkSampleCountFlagBits;
   1453 typedef enum VkAttachmentDescriptionFlagBits {
   1454     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1,
   1455     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1456 } VkAttachmentDescriptionFlagBits;
   1457 typedef enum VkDescriptorPoolCreateFlagBits {
   1458     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1,
   1459     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2,
   1460     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1461 } VkDescriptorPoolCreateFlagBits;
   1462 typedef enum VkDependencyFlagBits {
   1463     VK_DEPENDENCY_BY_REGION_BIT = 1,
   1464     VK_DEPENDENCY_DEVICE_GROUP_BIT = 4,
   1465     VK_DEPENDENCY_VIEW_LOCAL_BIT = 2,
   1466     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1467 } VkDependencyFlagBits;
   1468 typedef enum VkObjectType {
   1469     VK_OBJECT_TYPE_UNKNOWN = 0,
   1470     VK_OBJECT_TYPE_INSTANCE = 1,
   1471     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
   1472     VK_OBJECT_TYPE_DEVICE = 3,
   1473     VK_OBJECT_TYPE_QUEUE = 4,
   1474     VK_OBJECT_TYPE_SEMAPHORE = 5,
   1475     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
   1476     VK_OBJECT_TYPE_FENCE = 7,
   1477     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
   1478     VK_OBJECT_TYPE_BUFFER = 9,
   1479     VK_OBJECT_TYPE_IMAGE = 10,
   1480     VK_OBJECT_TYPE_EVENT = 11,
   1481     VK_OBJECT_TYPE_QUERY_POOL = 12,
   1482     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
   1483     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
   1484     VK_OBJECT_TYPE_SHADER_MODULE = 15,
   1485     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
   1486     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
   1487     VK_OBJECT_TYPE_RENDER_PASS = 18,
   1488     VK_OBJECT_TYPE_PIPELINE = 19,
   1489     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
   1490     VK_OBJECT_TYPE_SAMPLER = 21,
   1491     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
   1492     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
   1493     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
   1494     VK_OBJECT_TYPE_COMMAND_POOL = 25,
   1495     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
   1496     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
   1497     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
   1498     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
   1499     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
   1500     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
   1501     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
   1502 } VkObjectType;
   1503 typedef enum VkEventCreateFlagBits {
   1504     VK_EVENT_CREATE_DEVICE_ONLY_BIT = 1,
   1505     VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1506 } VkEventCreateFlagBits;
   1507 typedef enum VkDescriptorUpdateTemplateType {
   1508     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
   1509     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1510 } VkDescriptorUpdateTemplateType;
   1511 typedef enum VkPointClippingBehavior {
   1512     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
   1513     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
   1514     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
   1515 } VkPointClippingBehavior;
   1516 typedef enum VkResolveModeFlagBits {
   1517     VK_RESOLVE_MODE_NONE = 0,
   1518     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1,
   1519     VK_RESOLVE_MODE_AVERAGE_BIT = 2,
   1520     VK_RESOLVE_MODE_MIN_BIT = 4,
   1521     VK_RESOLVE_MODE_MAX_BIT = 8,
   1522     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1523 } VkResolveModeFlagBits;
   1524 typedef enum VkDescriptorBindingFlagBits {
   1525     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1,
   1526     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 2,
   1527     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 4,
   1528     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 8,
   1529     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1530 } VkDescriptorBindingFlagBits;
   1531 typedef enum VkSemaphoreType {
   1532     VK_SEMAPHORE_TYPE_BINARY = 0,
   1533     VK_SEMAPHORE_TYPE_TIMELINE = 1,
   1534     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
   1535 } VkSemaphoreType;
   1536 typedef enum VkPipelineCreationFeedbackFlagBits {
   1537     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 1,
   1538     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
   1539     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 2,
   1540     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
   1541     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 4,
   1542     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
   1543     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1544 } VkPipelineCreationFeedbackFlagBits;
   1545 typedef enum VkSemaphoreWaitFlagBits {
   1546     VK_SEMAPHORE_WAIT_ANY_BIT = 1,
   1547     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1548 } VkSemaphoreWaitFlagBits;
   1549 typedef enum VkToolPurposeFlagBits {
   1550     VK_TOOL_PURPOSE_VALIDATION_BIT = 1,
   1551     VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
   1552     VK_TOOL_PURPOSE_PROFILING_BIT = 2,
   1553     VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
   1554     VK_TOOL_PURPOSE_TRACING_BIT = 4,
   1555     VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
   1556     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 8,
   1557     VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
   1558     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 16,
   1559     VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
   1560     VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1561 } VkToolPurposeFlagBits;
   1562 typedef uint64_t VkAccessFlagBits2;
   1563 static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0;
   1564 static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0;
   1565 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 1;
   1566 static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 1;
   1567 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 2;
   1568 static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 2;
   1569 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 4;
   1570 static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 4;
   1571 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 8;
   1572 static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 8;
   1573 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 16;
   1574 static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 16;
   1575 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 32;
   1576 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 32;
   1577 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 64;
   1578 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 64;
   1579 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 128;
   1580 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 128;
   1581 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 256;
   1582 static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 256;
   1583 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512;
   1584 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 512;
   1585 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024;
   1586 static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 1024;
   1587 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 2048;
   1588 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 2048;
   1589 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 4096;
   1590 static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 4096;
   1591 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 8192;
   1592 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 8192;
   1593 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 16384;
   1594 static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 16384;
   1595 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 32768;
   1596 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 32768;
   1597 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 65536;
   1598 static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 65536;
   1599 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 4294967296;
   1600 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 4294967296;
   1601 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 8589934592;
   1602 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 8589934592;
   1603 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 17179869184;
   1604 static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 17179869184;
   1605 
   1606 typedef uint64_t VkPipelineStageFlagBits2;
   1607 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0;
   1608 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0;
   1609 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 1;
   1610 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 1;
   1611 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 2;
   1612 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 2;
   1613 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 4;
   1614 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 4;
   1615 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 8;
   1616 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 8;
   1617 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 16;
   1618 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 16;
   1619 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 32;
   1620 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 32;
   1621 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 64;
   1622 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 64;
   1623 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 128;
   1624 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 128;
   1625 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 256;
   1626 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 256;
   1627 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 512;
   1628 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 512;
   1629 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 1024;
   1630 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 1024;
   1631 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 2048;
   1632 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 2048;
   1633 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 4096;
   1634 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 4096;
   1635 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 4096;
   1636 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 4096;
   1637 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 8192;
   1638 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 8192;
   1639 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 16384;
   1640 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 16384;
   1641 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 32768;
   1642 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 32768;
   1643 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 65536;
   1644 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 65536;
   1645 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 4294967296;
   1646 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 4294967296;
   1647 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 8589934592;
   1648 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 8589934592;
   1649 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 17179869184;
   1650 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 17179869184;
   1651 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 34359738368;
   1652 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 34359738368;
   1653 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 68719476736;
   1654 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 68719476736;
   1655 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 137438953472;
   1656 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 137438953472;
   1657 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 274877906944;
   1658 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 274877906944;
   1659 
   1660 typedef uint64_t VkFormatFeatureFlagBits2;
   1661 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 1;
   1662 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 1;
   1663 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 2;
   1664 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 2;
   1665 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 4;
   1666 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 4;
   1667 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 8;
   1668 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 8;
   1669 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 16;
   1670 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 16;
   1671 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32;
   1672 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 32;
   1673 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 64;
   1674 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 64;
   1675 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 128;
   1676 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 128;
   1677 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 256;
   1678 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 256;
   1679 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 512;
   1680 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 512;
   1681 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 1024;
   1682 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 1024;
   1683 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 2048;
   1684 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 2048;
   1685 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096;
   1686 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 4096;
   1687 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 8192;
   1688 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192;
   1689 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 16384;
   1690 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 16384;
   1691 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 32768;
   1692 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 32768;
   1693 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536;
   1694 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 65536;
   1695 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 131072;
   1696 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 131072;
   1697 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144;
   1698 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 262144;
   1699 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288;
   1700 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 524288;
   1701 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576;
   1702 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 1048576;
   1703 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152;
   1704 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152;
   1705 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 4194304;
   1706 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 4194304;
   1707 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 8388608;
   1708 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608;
   1709 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 2147483648;
   1710 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 2147483648;
   1711 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 4294967296;
   1712 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 4294967296;
   1713 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 8589934592;
   1714 static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 8589934592;
   1715 
   1716 typedef enum VkRenderingFlagBits {
   1717     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1,
   1718     VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
   1719     VK_RENDERING_SUSPENDING_BIT = 2,
   1720     VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
   1721     VK_RENDERING_RESUMING_BIT = 4,
   1722     VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
   1723     VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1724 } VkRenderingFlagBits;
   1725 typedef enum VkColorSpaceKHR {
   1726     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
   1727     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
   1728     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
   1729 } VkColorSpaceKHR;
   1730 typedef enum VkCompositeAlphaFlagBitsKHR {
   1731     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1,
   1732     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2,
   1733     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4,
   1734     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8,
   1735     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   1736 } VkCompositeAlphaFlagBitsKHR;
   1737 typedef enum VkPresentModeKHR {
   1738     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
   1739     VK_PRESENT_MODE_MAILBOX_KHR = 1,
   1740     VK_PRESENT_MODE_FIFO_KHR = 2,
   1741     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
   1742     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
   1743 } VkPresentModeKHR;
   1744 typedef enum VkSurfaceTransformFlagBitsKHR {
   1745     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1,
   1746     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2,
   1747     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4,
   1748     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8,
   1749     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16,
   1750     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32,
   1751     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64,
   1752     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128,
   1753     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256,
   1754     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   1755 } VkSurfaceTransformFlagBitsKHR;
   1756 typedef enum VkDebugReportFlagBitsEXT {
   1757     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1,
   1758     VK_DEBUG_REPORT_WARNING_BIT_EXT = 2,
   1759     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4,
   1760     VK_DEBUG_REPORT_ERROR_BIT_EXT = 8,
   1761     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16,
   1762     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
   1763 } VkDebugReportFlagBitsEXT;
   1764 typedef enum VkDebugReportObjectTypeEXT {
   1765     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
   1766     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
   1767     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
   1768     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
   1769     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
   1770     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
   1771     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
   1772     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
   1773     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
   1774     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
   1775     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
   1776     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
   1777     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
   1778     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
   1779     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
   1780     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
   1781     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
   1782     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
   1783     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
   1784     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
   1785     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
   1786     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
   1787     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
   1788     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
   1789     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
   1790     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
   1791     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
   1792     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
   1793     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
   1794     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
   1795     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
   1796     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
   1797     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
   1798     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
   1799     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
   1800     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
   1801     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
   1802 } VkDebugReportObjectTypeEXT;
   1803 typedef enum VkExternalMemoryHandleTypeFlagBits {
   1804     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1805     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1806     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1807     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8,
   1808     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16,
   1809     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32,
   1810     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64,
   1811     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1812 } VkExternalMemoryHandleTypeFlagBits;
   1813 typedef enum VkExternalMemoryFeatureFlagBits {
   1814     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1,
   1815     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2,
   1816     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4,
   1817     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1818 } VkExternalMemoryFeatureFlagBits;
   1819 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
   1820     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1821     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1822     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1823     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8,
   1824     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
   1825     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16,
   1826     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1827 } VkExternalSemaphoreHandleTypeFlagBits;
   1828 typedef enum VkExternalSemaphoreFeatureFlagBits {
   1829     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1,
   1830     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2,
   1831     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1832 } VkExternalSemaphoreFeatureFlagBits;
   1833 typedef enum VkSemaphoreImportFlagBits {
   1834     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1,
   1835     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1836 } VkSemaphoreImportFlagBits;
   1837 typedef enum VkExternalFenceHandleTypeFlagBits {
   1838     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1839     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1840     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1841     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8,
   1842     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1843 } VkExternalFenceHandleTypeFlagBits;
   1844 typedef enum VkExternalFenceFeatureFlagBits {
   1845     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1,
   1846     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2,
   1847     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1848 } VkExternalFenceFeatureFlagBits;
   1849 typedef enum VkFenceImportFlagBits {
   1850     VK_FENCE_IMPORT_TEMPORARY_BIT = 1,
   1851     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1852 } VkFenceImportFlagBits;
   1853 typedef enum VkPeerMemoryFeatureFlagBits {
   1854     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1,
   1855     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2,
   1856     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4,
   1857     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8,
   1858     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1859 } VkPeerMemoryFeatureFlagBits;
   1860 typedef enum VkMemoryAllocateFlagBits {
   1861     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1,
   1862     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 2,
   1863     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 4,
   1864     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1865 } VkMemoryAllocateFlagBits;
   1866 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
   1867     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1,
   1868     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2,
   1869     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4,
   1870     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8,
   1871     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   1872 } VkDeviceGroupPresentModeFlagBitsKHR;
   1873 typedef enum VkSwapchainCreateFlagBitsKHR {
   1874     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
   1875     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2,
   1876     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
   1877 } VkSwapchainCreateFlagBitsKHR;
   1878 typedef enum VkSubgroupFeatureFlagBits {
   1879     VK_SUBGROUP_FEATURE_BASIC_BIT = 1,
   1880     VK_SUBGROUP_FEATURE_VOTE_BIT = 2,
   1881     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4,
   1882     VK_SUBGROUP_FEATURE_BALLOT_BIT = 8,
   1883     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16,
   1884     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32,
   1885     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64,
   1886     VK_SUBGROUP_FEATURE_QUAD_BIT = 128,
   1887     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1888 } VkSubgroupFeatureFlagBits;
   1889 typedef enum VkTessellationDomainOrigin {
   1890     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
   1891     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
   1892     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
   1893 } VkTessellationDomainOrigin;
   1894 typedef enum VkSamplerYcbcrModelConversion {
   1895     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
   1896     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
   1897     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
   1898     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
   1899     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
   1900     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
   1901 } VkSamplerYcbcrModelConversion;
   1902 typedef enum VkSamplerYcbcrRange {
   1903     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
   1904     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
   1905     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
   1906 } VkSamplerYcbcrRange;
   1907 typedef enum VkChromaLocation {
   1908     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
   1909     VK_CHROMA_LOCATION_MIDPOINT = 1,
   1910     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
   1911 } VkChromaLocation;
   1912 typedef enum VkSamplerReductionMode {
   1913     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
   1914     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
   1915     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
   1916     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
   1917 } VkSamplerReductionMode;
   1918 typedef enum VkShaderFloatControlsIndependence {
   1919     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
   1920     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
   1921     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
   1922     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
   1923 } VkShaderFloatControlsIndependence;
   1924 typedef enum VkSubmitFlagBits {
   1925     VK_SUBMIT_PROTECTED_BIT = 1,
   1926     VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
   1927     VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
   1928 } VkSubmitFlagBits;
   1929 typedef enum VkVendorId {
   1930     VK_VENDOR_ID_VIV = 0x10001,
   1931     VK_VENDOR_ID_VSI = 0x10002,
   1932     VK_VENDOR_ID_KAZAN = 0x10003,
   1933     VK_VENDOR_ID_CODEPLAY = 0x10004,
   1934     VK_VENDOR_ID_MESA = 0x10005,
   1935     VK_VENDOR_ID_POCL = 0x10006,
   1936     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
   1937 } VkVendorId;
   1938 typedef enum VkDriverId {
   1939     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
   1940     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
   1941     VK_DRIVER_ID_MESA_RADV = 3,
   1942     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
   1943     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
   1944     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
   1945     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
   1946     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
   1947     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
   1948     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
   1949     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
   1950     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
   1951     VK_DRIVER_ID_MESA_LLVMPIPE = 13,
   1952     VK_DRIVER_ID_MOLTENVK = 14,
   1953     VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
   1954     VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
   1955     VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
   1956     VK_DRIVER_ID_MESA_TURNIP = 18,
   1957     VK_DRIVER_ID_MESA_V3DV = 19,
   1958     VK_DRIVER_ID_MESA_PANVK = 20,
   1959     VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
   1960     VK_DRIVER_ID_MESA_VENUS = 22,
   1961     VK_DRIVER_ID_MESA_DOZEN = 23,
   1962     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
   1963 } VkDriverId;
   1964 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
   1965     void*                                       pUserData,
   1966     size_t                                      size,
   1967     VkInternalAllocationType                    allocationType,
   1968     VkSystemAllocationScope                     allocationScope);
   1969 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
   1970     void*                                       pUserData,
   1971     size_t                                      size,
   1972     VkInternalAllocationType                    allocationType,
   1973     VkSystemAllocationScope                     allocationScope);
   1974 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
   1975     void*                                       pUserData,
   1976     void*                                       pOriginal,
   1977     size_t                                      size,
   1978     size_t                                      alignment,
   1979     VkSystemAllocationScope                     allocationScope);
   1980 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
   1981     void*                                       pUserData,
   1982     size_t                                      size,
   1983     size_t                                      alignment,
   1984     VkSystemAllocationScope                     allocationScope);
   1985 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
   1986     void*                                       pUserData,
   1987     void*                                       pMemory);
   1988 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
   1989 typedef struct VkBaseOutStructure {
   1990     VkStructureType   sType;
   1991     struct  VkBaseOutStructure *  pNext;
   1992 } VkBaseOutStructure;
   1993 
   1994 typedef struct VkBaseInStructure {
   1995     VkStructureType   sType;
   1996     const struct  VkBaseInStructure *  pNext;
   1997 } VkBaseInStructure;
   1998 
   1999 typedef struct VkOffset2D {
   2000     int32_t          x;
   2001     int32_t          y;
   2002 } VkOffset2D;
   2003 
   2004 typedef struct VkOffset3D {
   2005     int32_t          x;
   2006     int32_t          y;
   2007     int32_t          z;
   2008 } VkOffset3D;
   2009 
   2010 typedef struct VkExtent2D {
   2011     uint32_t          width;
   2012     uint32_t          height;
   2013 } VkExtent2D;
   2014 
   2015 typedef struct VkExtent3D {
   2016     uint32_t          width;
   2017     uint32_t          height;
   2018     uint32_t          depth;
   2019 } VkExtent3D;
   2020 
   2021 typedef struct VkViewport {
   2022     float   x;
   2023     float   y;
   2024     float   width;
   2025     float   height;
   2026     float                         minDepth;
   2027     float                         maxDepth;
   2028 } VkViewport;
   2029 
   2030 typedef struct VkRect2D {
   2031     VkOffset2D       offset;
   2032     VkExtent2D       extent;
   2033 } VkRect2D;
   2034 
   2035 typedef struct VkClearRect {
   2036     VkRect2D         rect;
   2037     uint32_t         baseArrayLayer;
   2038     uint32_t         layerCount;
   2039 } VkClearRect;
   2040 
   2041 typedef struct VkComponentMapping {
   2042     VkComponentSwizzle   r;
   2043     VkComponentSwizzle   g;
   2044     VkComponentSwizzle   b;
   2045     VkComponentSwizzle   a;
   2046 } VkComponentMapping;
   2047 
   2048 typedef struct VkExtensionProperties {
   2049     char              extensionName [ VK_MAX_EXTENSION_NAME_SIZE ];
   2050     uint32_t          specVersion;
   2051 } VkExtensionProperties;
   2052 
   2053 typedef struct VkLayerProperties {
   2054     char              layerName [ VK_MAX_EXTENSION_NAME_SIZE ];
   2055     uint32_t          specVersion;
   2056     uint32_t          implementationVersion;
   2057     char              description [ VK_MAX_DESCRIPTION_SIZE ];
   2058 } VkLayerProperties;
   2059 
   2060 typedef struct VkApplicationInfo {
   2061     VkStructureType   sType;
   2062     const  void *      pNext;
   2063     const  char *      pApplicationName;
   2064     uint32_t          applicationVersion;
   2065     const  char *      pEngineName;
   2066     uint32_t          engineVersion;
   2067     uint32_t          apiVersion;
   2068 } VkApplicationInfo;
   2069 
   2070 typedef struct VkAllocationCallbacks {
   2071     void *            pUserData;
   2072     PFN_vkAllocationFunction     pfnAllocation;
   2073     PFN_vkReallocationFunction   pfnReallocation;
   2074     PFN_vkFreeFunction      pfnFree;
   2075     PFN_vkInternalAllocationNotification   pfnInternalAllocation;
   2076     PFN_vkInternalFreeNotification   pfnInternalFree;
   2077 } VkAllocationCallbacks;
   2078 
   2079 typedef struct VkDescriptorImageInfo {
   2080     VkSampler         sampler;
   2081     VkImageView       imageView;
   2082     VkImageLayout     imageLayout;
   2083 } VkDescriptorImageInfo;
   2084 
   2085 typedef struct VkCopyDescriptorSet {
   2086     VkStructureType   sType;
   2087     const  void *             pNext;
   2088     VkDescriptorSet          srcSet;
   2089     uint32_t                 srcBinding;
   2090     uint32_t                 srcArrayElement;
   2091     VkDescriptorSet          dstSet;
   2092     uint32_t                 dstBinding;
   2093     uint32_t                 dstArrayElement;
   2094     uint32_t                 descriptorCount;
   2095 } VkCopyDescriptorSet;
   2096 
   2097 typedef struct VkDescriptorPoolSize {
   2098     VkDescriptorType         type;
   2099     uint32_t                 descriptorCount;
   2100 } VkDescriptorPoolSize;
   2101 
   2102 typedef struct VkDescriptorSetAllocateInfo {
   2103     VkStructureType   sType;
   2104     const  void *             pNext;
   2105     VkDescriptorPool         descriptorPool;
   2106     uint32_t                 descriptorSetCount;
   2107     const  VkDescriptorSetLayout *  pSetLayouts;
   2108 } VkDescriptorSetAllocateInfo;
   2109 
   2110 typedef struct VkSpecializationMapEntry {
   2111     uint32_t                       constantID;
   2112     uint32_t                       offset;
   2113     size_t   size;
   2114 } VkSpecializationMapEntry;
   2115 
   2116 typedef struct VkSpecializationInfo {
   2117     uint32_t                 mapEntryCount;
   2118     const  VkSpecializationMapEntry *  pMapEntries;
   2119     size_t                   dataSize;
   2120     const  void *             pData;
   2121 } VkSpecializationInfo;
   2122 
   2123 typedef struct VkVertexInputBindingDescription {
   2124     uint32_t                 binding;
   2125     uint32_t                 stride;
   2126     VkVertexInputRate        inputRate;
   2127 } VkVertexInputBindingDescription;
   2128 
   2129 typedef struct VkVertexInputAttributeDescription {
   2130     uint32_t                 location;
   2131     uint32_t                 binding;
   2132     VkFormat                 format;
   2133     uint32_t                 offset;
   2134 } VkVertexInputAttributeDescription;
   2135 
   2136 typedef struct VkStencilOpState {
   2137     VkStencilOp              failOp;
   2138     VkStencilOp              passOp;
   2139     VkStencilOp              depthFailOp;
   2140     VkCompareOp              compareOp;
   2141     uint32_t                 compareMask;
   2142     uint32_t                 writeMask;
   2143     uint32_t                 reference;
   2144 } VkStencilOpState;
   2145 
   2146 typedef struct VkPipelineCacheHeaderVersionOne {
   2147     uint32_t                 headerSize;
   2148     VkPipelineCacheHeaderVersion   headerVersion;
   2149     uint32_t                 vendorID;
   2150     uint32_t                 deviceID;
   2151     uint8_t                  pipelineCacheUUID [ VK_UUID_SIZE ];
   2152 } VkPipelineCacheHeaderVersionOne;
   2153 
   2154 typedef struct VkCommandBufferAllocateInfo {
   2155     VkStructureType   sType;
   2156     const  void *             pNext;
   2157     VkCommandPool            commandPool;
   2158     VkCommandBufferLevel     level;
   2159     uint32_t                 commandBufferCount;
   2160 } VkCommandBufferAllocateInfo;
   2161 
   2162 typedef union VkClearColorValue {
   2163     float                    float32 [4];
   2164     int32_t                  int32 [4];
   2165     uint32_t                 uint32 [4];
   2166 } VkClearColorValue;
   2167 
   2168 typedef struct VkClearDepthStencilValue {
   2169     float                    depth;
   2170     uint32_t                 stencil;
   2171 } VkClearDepthStencilValue;
   2172 
   2173 typedef union VkClearValue {
   2174     VkClearColorValue        color;
   2175     VkClearDepthStencilValue   depthStencil;
   2176 } VkClearValue;
   2177 
   2178 typedef struct VkAttachmentReference {
   2179     uint32_t                 attachment;
   2180     VkImageLayout            layout;
   2181 } VkAttachmentReference;
   2182 
   2183 typedef struct VkDrawIndirectCommand {
   2184     uint32_t                         vertexCount;
   2185     uint32_t                         instanceCount;
   2186     uint32_t                         firstVertex;
   2187     uint32_t   firstInstance;
   2188 } VkDrawIndirectCommand;
   2189 
   2190 typedef struct VkDrawIndexedIndirectCommand {
   2191     uint32_t                         indexCount;
   2192     uint32_t                         instanceCount;
   2193     uint32_t                         firstIndex;
   2194     int32_t                          vertexOffset;
   2195     uint32_t   firstInstance;
   2196 } VkDrawIndexedIndirectCommand;
   2197 
   2198 typedef struct VkDispatchIndirectCommand {
   2199     uint32_t   x;
   2200     uint32_t   y;
   2201     uint32_t   z;
   2202 } VkDispatchIndirectCommand;
   2203 
   2204 typedef struct VkSurfaceFormatKHR {
   2205     VkFormat                           format;
   2206     VkColorSpaceKHR                    colorSpace;
   2207 } VkSurfaceFormatKHR;
   2208 
   2209 typedef struct VkPresentInfoKHR {
   2210     VkStructureType   sType;
   2211     const  void *   pNext;
   2212     uint32_t           waitSemaphoreCount;
   2213     const  VkSemaphore *  pWaitSemaphores;
   2214     uint32_t                           swapchainCount;
   2215     const  VkSwapchainKHR *  pSwapchains;
   2216     const  uint32_t *  pImageIndices;
   2217     VkResult *  pResults;
   2218 } VkPresentInfoKHR;
   2219 
   2220 typedef struct VkDevicePrivateDataCreateInfo {
   2221     VkStructureType   sType;
   2222     const  void *                             pNext;
   2223     uint32_t                                 privateDataSlotRequestCount;
   2224 } VkDevicePrivateDataCreateInfo;
   2225 
   2226 typedef struct VkConformanceVersion {
   2227     uint8_t                            major;
   2228     uint8_t                            minor;
   2229     uint8_t                            subminor;
   2230     uint8_t                            patch;
   2231 } VkConformanceVersion;
   2232 
   2233 typedef struct VkPhysicalDeviceDriverProperties {
   2234     VkStructureType   sType;
   2235     void *                             pNext;
   2236     VkDriverId                    driverID;
   2237     char                          driverName [ VK_MAX_DRIVER_NAME_SIZE ];
   2238     char                          driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
   2239     VkConformanceVersion          conformanceVersion;
   2240 } VkPhysicalDeviceDriverProperties;
   2241 
   2242 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
   2243     VkStructureType   sType;
   2244     const  void *                       pNext;
   2245     VkExternalMemoryHandleTypeFlagBits   handleType;
   2246 } VkPhysicalDeviceExternalImageFormatInfo;
   2247 
   2248 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
   2249     VkStructureType   sType;
   2250     const  void *                       pNext;
   2251     VkExternalSemaphoreHandleTypeFlagBits   handleType;
   2252 } VkPhysicalDeviceExternalSemaphoreInfo;
   2253 
   2254 typedef struct VkPhysicalDeviceExternalFenceInfo {
   2255     VkStructureType   sType;
   2256     const  void *                       pNext;
   2257     VkExternalFenceHandleTypeFlagBits   handleType;
   2258 } VkPhysicalDeviceExternalFenceInfo;
   2259 
   2260 typedef struct VkPhysicalDeviceMultiviewProperties {
   2261     VkStructureType   sType;
   2262     void *                             pNext;
   2263     uint32_t                           maxMultiviewViewCount;
   2264     uint32_t                           maxMultiviewInstanceIndex;
   2265 } VkPhysicalDeviceMultiviewProperties;
   2266 
   2267 typedef struct VkRenderPassMultiviewCreateInfo {
   2268     VkStructureType          sType;
   2269     const  void *             pNext;
   2270     uint32_t                 subpassCount;
   2271     const  uint32_t *      pViewMasks;
   2272     uint32_t                 dependencyCount;
   2273     const  int32_t *    pViewOffsets;
   2274     uint32_t                 correlationMaskCount;
   2275     const  uint32_t *  pCorrelationMasks;
   2276 } VkRenderPassMultiviewCreateInfo;
   2277 
   2278 typedef struct VkBindBufferMemoryDeviceGroupInfo {
   2279     VkStructureType   sType;
   2280     const  void *                       pNext;
   2281     uint32_t           deviceIndexCount;
   2282     const  uint32_t *   pDeviceIndices;
   2283 } VkBindBufferMemoryDeviceGroupInfo;
   2284 
   2285 typedef struct VkBindImageMemoryDeviceGroupInfo {
   2286     VkStructureType   sType;
   2287     const  void *                       pNext;
   2288     uint32_t           deviceIndexCount;
   2289     const  uint32_t *   pDeviceIndices;
   2290     uint32_t           splitInstanceBindRegionCount;
   2291     const  VkRect2D *   pSplitInstanceBindRegions;
   2292 } VkBindImageMemoryDeviceGroupInfo;
   2293 
   2294 typedef struct VkDeviceGroupRenderPassBeginInfo {
   2295     VkStructureType   sType;
   2296     const  void *                       pNext;
   2297     uint32_t                           deviceMask;
   2298     uint32_t           deviceRenderAreaCount;
   2299     const  VkRect2D *   pDeviceRenderAreas;
   2300 } VkDeviceGroupRenderPassBeginInfo;
   2301 
   2302 typedef struct VkDeviceGroupCommandBufferBeginInfo {
   2303     VkStructureType   sType;
   2304     const  void *                       pNext;
   2305     uint32_t                           deviceMask;
   2306 } VkDeviceGroupCommandBufferBeginInfo;
   2307 
   2308 typedef struct VkDeviceGroupSubmitInfo {
   2309     VkStructureType   sType;
   2310     const  void *                       pNext;
   2311     uint32_t           waitSemaphoreCount;
   2312     const  uint32_t *     pWaitSemaphoreDeviceIndices;
   2313     uint32_t           commandBufferCount;
   2314     const  uint32_t *     pCommandBufferDeviceMasks;
   2315     uint32_t           signalSemaphoreCount;
   2316     const  uint32_t *   pSignalSemaphoreDeviceIndices;
   2317 } VkDeviceGroupSubmitInfo;
   2318 
   2319 typedef struct VkDeviceGroupBindSparseInfo {
   2320     VkStructureType   sType;
   2321     const  void *                       pNext;
   2322     uint32_t                           resourceDeviceIndex;
   2323     uint32_t                           memoryDeviceIndex;
   2324 } VkDeviceGroupBindSparseInfo;
   2325 
   2326 typedef struct VkImageSwapchainCreateInfoKHR {
   2327     VkStructureType   sType;
   2328     const  void *                       pNext;
   2329     VkSwapchainKHR     swapchain;
   2330 } VkImageSwapchainCreateInfoKHR;
   2331 
   2332 typedef struct VkBindImageMemorySwapchainInfoKHR {
   2333     VkStructureType   sType;
   2334     const  void *                       pNext;
   2335     VkSwapchainKHR   swapchain;
   2336     uint32_t                           imageIndex;
   2337 } VkBindImageMemorySwapchainInfoKHR;
   2338 
   2339 typedef struct VkAcquireNextImageInfoKHR {
   2340     VkStructureType   sType;
   2341     const  void *                       pNext;
   2342     VkSwapchainKHR   swapchain;
   2343     uint64_t                           timeout;
   2344     VkSemaphore   semaphore;
   2345     VkFence   fence;
   2346     uint32_t                           deviceMask;
   2347 } VkAcquireNextImageInfoKHR;
   2348 
   2349 typedef struct VkDeviceGroupPresentInfoKHR {
   2350     VkStructureType   sType;
   2351     const  void *                       pNext;
   2352     uint32_t           swapchainCount;
   2353     const  uint32_t *  pDeviceMasks;
   2354     VkDeviceGroupPresentModeFlagBitsKHR   mode;
   2355 } VkDeviceGroupPresentInfoKHR;
   2356 
   2357 typedef struct VkDeviceGroupDeviceCreateInfo {
   2358     VkStructureType   sType;
   2359     const  void *                       pNext;
   2360     uint32_t                           physicalDeviceCount;
   2361     const  VkPhysicalDevice *   pPhysicalDevices;
   2362 } VkDeviceGroupDeviceCreateInfo;
   2363 
   2364 typedef struct VkDescriptorUpdateTemplateEntry {
   2365     uint32_t                           dstBinding;
   2366     uint32_t                           dstArrayElement;
   2367     uint32_t                           descriptorCount;
   2368     VkDescriptorType                   descriptorType;
   2369     size_t                             offset;
   2370     size_t                             stride;
   2371 } VkDescriptorUpdateTemplateEntry;
   2372 
   2373 typedef struct VkBufferMemoryRequirementsInfo2 {
   2374     VkStructureType   sType;
   2375     const  void *                                                           pNext;
   2376     VkBuffer                                                               buffer;
   2377 } VkBufferMemoryRequirementsInfo2;
   2378 
   2379 typedef struct VkImageMemoryRequirementsInfo2 {
   2380     VkStructureType   sType;
   2381     const  void *                                                           pNext;
   2382     VkImage                                                                image;
   2383 } VkImageMemoryRequirementsInfo2;
   2384 
   2385 typedef struct VkImageSparseMemoryRequirementsInfo2 {
   2386     VkStructureType   sType;
   2387     const  void *                                                           pNext;
   2388     VkImage                                                                image;
   2389 } VkImageSparseMemoryRequirementsInfo2;
   2390 
   2391 typedef struct VkPhysicalDevicePointClippingProperties {
   2392     VkStructureType   sType;
   2393     void *                             pNext;
   2394     VkPointClippingBehavior       pointClippingBehavior;
   2395 } VkPhysicalDevicePointClippingProperties;
   2396 
   2397 typedef struct VkMemoryDedicatedAllocateInfo {
   2398     VkStructureType   sType;
   2399     const  void *                       pNext;
   2400     VkImage            image;
   2401     VkBuffer           buffer;
   2402 } VkMemoryDedicatedAllocateInfo;
   2403 
   2404 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
   2405     VkStructureType   sType;
   2406     const  void *                       pNext;
   2407     VkTessellationDomainOrigin      domainOrigin;
   2408 } VkPipelineTessellationDomainOriginStateCreateInfo;
   2409 
   2410 typedef struct VkSamplerYcbcrConversionInfo {
   2411     VkStructureType   sType;
   2412     const  void *                       pNext;
   2413     VkSamplerYcbcrConversion        conversion;
   2414 } VkSamplerYcbcrConversionInfo;
   2415 
   2416 typedef struct VkBindImagePlaneMemoryInfo {
   2417     VkStructureType   sType;
   2418     const  void *                       pNext;
   2419     VkImageAspectFlagBits              planeAspect;
   2420 } VkBindImagePlaneMemoryInfo;
   2421 
   2422 typedef struct VkImagePlaneMemoryRequirementsInfo {
   2423     VkStructureType   sType;
   2424     const  void *                       pNext;
   2425     VkImageAspectFlagBits              planeAspect;
   2426 } VkImagePlaneMemoryRequirementsInfo;
   2427 
   2428 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
   2429     VkStructureType   sType;
   2430     void *       pNext;
   2431     uint32_t                           combinedImageSamplerDescriptorCount;
   2432 } VkSamplerYcbcrConversionImageFormatProperties;
   2433 
   2434 typedef struct VkSamplerReductionModeCreateInfo {
   2435     VkStructureType   sType;
   2436     const  void *                       pNext;
   2437     VkSamplerReductionMode             reductionMode;
   2438 } VkSamplerReductionModeCreateInfo;
   2439 
   2440 typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
   2441     VkStructureType   sType;
   2442     void *                   pNext;
   2443     uint32_t                 maxInlineUniformBlockSize;
   2444     uint32_t                 maxPerStageDescriptorInlineUniformBlocks;
   2445     uint32_t                 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
   2446     uint32_t                 maxDescriptorSetInlineUniformBlocks;
   2447     uint32_t                 maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
   2448 } VkPhysicalDeviceInlineUniformBlockProperties;
   2449 
   2450 typedef struct VkWriteDescriptorSetInlineUniformBlock {
   2451     VkStructureType   sType;
   2452     const  void *  pNext;
   2453     uint32_t                      dataSize;
   2454     const  void *   pData;
   2455 } VkWriteDescriptorSetInlineUniformBlock;
   2456 
   2457 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
   2458     VkStructureType   sType;
   2459     const  void *  pNext;
   2460     uint32_t                      maxInlineUniformBlockBindings;
   2461 } VkDescriptorPoolInlineUniformBlockCreateInfo;
   2462 
   2463 typedef struct VkImageFormatListCreateInfo {
   2464     VkStructureType   sType;
   2465     const  void *                             pNext;
   2466     uint32_t                 viewFormatCount;
   2467     const  VkFormat *   pViewFormats;
   2468 } VkImageFormatListCreateInfo;
   2469 
   2470 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
   2471     VkStructureType   sType;
   2472     const  void *                             pNext;
   2473     uint32_t                 descriptorSetCount;
   2474     const  uint32_t *  pDescriptorCounts;
   2475 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
   2476 
   2477 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
   2478     VkStructureType   sType;
   2479     void *             pNext;
   2480     uint32_t           maxVariableDescriptorCount;
   2481 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
   2482 
   2483 typedef struct VkSubpassBeginInfo {
   2484     VkStructureType   sType;
   2485     const  void *             pNext;
   2486     VkSubpassContents        contents;
   2487 } VkSubpassBeginInfo;
   2488 
   2489 typedef struct VkSubpassEndInfo {
   2490     VkStructureType   sType;
   2491     const  void *             pNext;
   2492 } VkSubpassEndInfo;
   2493 
   2494 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
   2495     VkStructureType   sType;
   2496     void *                   pNext;
   2497     uint64_t                 maxTimelineSemaphoreValueDifference;
   2498 } VkPhysicalDeviceTimelineSemaphoreProperties;
   2499 
   2500 typedef struct VkSemaphoreTypeCreateInfo {
   2501     VkStructureType   sType;
   2502     const  void *             pNext;
   2503     VkSemaphoreType          semaphoreType;
   2504     uint64_t                 initialValue;
   2505 } VkSemaphoreTypeCreateInfo;
   2506 
   2507 typedef struct VkTimelineSemaphoreSubmitInfo {
   2508     VkStructureType   sType;
   2509     const  void *                       pNext;
   2510     uint32_t           waitSemaphoreValueCount;
   2511     const  uint64_t *  pWaitSemaphoreValues;
   2512     uint32_t           signalSemaphoreValueCount;
   2513     const  uint64_t *  pSignalSemaphoreValues;
   2514 } VkTimelineSemaphoreSubmitInfo;
   2515 
   2516 typedef struct VkSemaphoreSignalInfo {
   2517     VkStructureType   sType;
   2518     const  void *             pNext;
   2519     VkSemaphore              semaphore;
   2520     uint64_t                 value;
   2521 } VkSemaphoreSignalInfo;
   2522 
   2523 typedef struct VkBufferDeviceAddressInfo {
   2524     VkStructureType   sType;
   2525     const  void *                                             pNext;
   2526     VkBuffer                                                 buffer;
   2527 } VkBufferDeviceAddressInfo;
   2528 
   2529 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
   2530     VkStructureType   sType;
   2531     const  void *                       pNext;
   2532     uint64_t                           opaqueCaptureAddress;
   2533 } VkBufferOpaqueCaptureAddressCreateInfo;
   2534 
   2535 typedef struct VkRenderPassAttachmentBeginInfo {
   2536     VkStructureType   sType;
   2537     const  void *                               pNext;
   2538     uint32_t                   attachmentCount;
   2539     const  VkImageView *  pAttachments;
   2540 } VkRenderPassAttachmentBeginInfo;
   2541 
   2542 typedef struct VkAttachmentReferenceStencilLayout {
   2543     VkStructureType sType;
   2544     void *     pNext;
   2545     VkImageLayout                    stencilLayout;
   2546 } VkAttachmentReferenceStencilLayout;
   2547 
   2548 typedef struct VkAttachmentDescriptionStencilLayout {
   2549     VkStructureType sType;
   2550     void *     pNext;
   2551     VkImageLayout                    stencilInitialLayout;
   2552     VkImageLayout                    stencilFinalLayout;
   2553 } VkAttachmentDescriptionStencilLayout;
   2554 
   2555 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
   2556     VkStructureType   sType;
   2557     void *   pNext;
   2558     uint32_t                 requiredSubgroupSize;
   2559 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
   2560 
   2561 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
   2562     VkStructureType   sType;
   2563     const  void *                    pNext;
   2564     uint64_t                        opaqueCaptureAddress;
   2565 } VkMemoryOpaqueCaptureAddressAllocateInfo;
   2566 
   2567 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
   2568     VkStructureType   sType;
   2569     const  void *                       pNext;
   2570     VkDeviceMemory                     memory;
   2571 } VkDeviceMemoryOpaqueCaptureAddressInfo;
   2572 
   2573 typedef struct VkCommandBufferSubmitInfo {
   2574     VkStructureType        sType;
   2575     const  void *                                                                 pNext;
   2576     VkCommandBuffer                                                              commandBuffer;
   2577     uint32_t                                                                     deviceMask;
   2578 } VkCommandBufferSubmitInfo;
   2579 
   2580 typedef struct VkPipelineRenderingCreateInfo {
   2581     VkStructureType   sType;
   2582     const  void *                                                 pNext;
   2583     uint32_t                                                                     viewMask;
   2584     uint32_t                                                     colorAttachmentCount;
   2585     const  VkFormat *            pColorAttachmentFormats;
   2586     VkFormat                                               depthAttachmentFormat;
   2587     VkFormat                                               stencilAttachmentFormat;
   2588 } VkPipelineRenderingCreateInfo;
   2589 
   2590 typedef struct VkRenderingAttachmentInfo {
   2591     VkStructureType         sType;
   2592     const  void *                                                 pNext;
   2593     VkImageView                                                  imageView;
   2594     VkImageLayout                                                                imageLayout;
   2595     VkResolveModeFlagBits                                        resolveMode;
   2596     VkImageView                                                  resolveImageView;
   2597     VkImageLayout                                                                resolveImageLayout;
   2598     VkAttachmentLoadOp                                                           loadOp;
   2599     VkAttachmentStoreOp                                                          storeOp;
   2600     VkClearValue                                                                 clearValue;
   2601 } VkRenderingAttachmentInfo;
   2602 
   2603 typedef uint32_t VkSampleMask;
   2604 typedef uint32_t VkBool32;
   2605 typedef uint32_t VkFlags;
   2606 typedef uint64_t VkFlags64;
   2607 typedef uint64_t VkDeviceSize;
   2608 typedef uint64_t VkDeviceAddress;
   2609 typedef VkFlags VkFramebufferCreateFlags;
   2610 typedef VkFlags VkQueryPoolCreateFlags;
   2611 typedef VkFlags VkRenderPassCreateFlags;
   2612 typedef VkFlags VkSamplerCreateFlags;
   2613 typedef VkFlags VkPipelineLayoutCreateFlags;
   2614 typedef VkFlags VkPipelineCacheCreateFlags;
   2615 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
   2616 typedef VkFlags VkPipelineDynamicStateCreateFlags;
   2617 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
   2618 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
   2619 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
   2620 typedef VkFlags VkPipelineViewportStateCreateFlags;
   2621 typedef VkFlags VkPipelineTessellationStateCreateFlags;
   2622 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
   2623 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
   2624 typedef VkFlags VkPipelineShaderStageCreateFlags;
   2625 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
   2626 typedef VkFlags VkBufferViewCreateFlags;
   2627 typedef VkFlags VkInstanceCreateFlags;
   2628 typedef VkFlags VkDeviceCreateFlags;
   2629 typedef VkFlags VkDeviceQueueCreateFlags;
   2630 typedef VkFlags VkQueueFlags;
   2631 typedef VkFlags VkMemoryPropertyFlags;
   2632 typedef VkFlags VkMemoryHeapFlags;
   2633 typedef VkFlags VkAccessFlags;
   2634 typedef VkFlags VkBufferUsageFlags;
   2635 typedef VkFlags VkBufferCreateFlags;
   2636 typedef VkFlags VkShaderStageFlags;
   2637 typedef VkFlags VkImageUsageFlags;
   2638 typedef VkFlags VkImageCreateFlags;
   2639 typedef VkFlags VkImageViewCreateFlags;
   2640 typedef VkFlags VkPipelineCreateFlags;
   2641 typedef VkFlags VkColorComponentFlags;
   2642 typedef VkFlags VkFenceCreateFlags;
   2643 typedef VkFlags VkSemaphoreCreateFlags;
   2644 typedef VkFlags VkFormatFeatureFlags;
   2645 typedef VkFlags VkQueryControlFlags;
   2646 typedef VkFlags VkQueryResultFlags;
   2647 typedef VkFlags VkShaderModuleCreateFlags;
   2648 typedef VkFlags VkEventCreateFlags;
   2649 typedef VkFlags VkCommandPoolCreateFlags;
   2650 typedef VkFlags VkCommandPoolResetFlags;
   2651 typedef VkFlags VkCommandBufferResetFlags;
   2652 typedef VkFlags VkCommandBufferUsageFlags;
   2653 typedef VkFlags VkQueryPipelineStatisticFlags;
   2654 typedef VkFlags VkMemoryMapFlags;
   2655 typedef VkFlags VkImageAspectFlags;
   2656 typedef VkFlags VkSparseMemoryBindFlags;
   2657 typedef VkFlags VkSparseImageFormatFlags;
   2658 typedef VkFlags VkSubpassDescriptionFlags;
   2659 typedef VkFlags VkPipelineStageFlags;
   2660 typedef VkFlags VkSampleCountFlags;
   2661 typedef VkFlags VkAttachmentDescriptionFlags;
   2662 typedef VkFlags VkStencilFaceFlags;
   2663 typedef VkFlags VkCullModeFlags;
   2664 typedef VkFlags VkDescriptorPoolCreateFlags;
   2665 typedef VkFlags VkDescriptorPoolResetFlags;
   2666 typedef VkFlags VkDependencyFlags;
   2667 typedef VkFlags VkSubgroupFeatureFlags;
   2668 typedef VkFlags VkPrivateDataSlotCreateFlags;
   2669 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
   2670 typedef VkFlags VkPipelineCreationFeedbackFlags;
   2671 typedef VkFlags VkSemaphoreWaitFlags;
   2672 typedef VkFlags64 VkAccessFlags2;
   2673 typedef VkFlags64 VkPipelineStageFlags2;
   2674 typedef VkFlags64 VkFormatFeatureFlags2;
   2675 typedef VkFlags VkRenderingFlags;
   2676 typedef VkFlags VkCompositeAlphaFlagsKHR;
   2677 typedef VkFlags VkSurfaceTransformFlagsKHR;
   2678 typedef VkFlags VkSwapchainCreateFlagsKHR;
   2679 typedef VkFlags VkPeerMemoryFeatureFlags;
   2680 typedef VkFlags VkMemoryAllocateFlags;
   2681 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
   2682 typedef VkFlags VkDebugReportFlagsEXT;
   2683 typedef VkFlags VkCommandPoolTrimFlags;
   2684 typedef VkFlags VkExternalMemoryHandleTypeFlags;
   2685 typedef VkFlags VkExternalMemoryFeatureFlags;
   2686 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
   2687 typedef VkFlags VkExternalSemaphoreFeatureFlags;
   2688 typedef VkFlags VkSemaphoreImportFlags;
   2689 typedef VkFlags VkExternalFenceHandleTypeFlags;
   2690 typedef VkFlags VkExternalFenceFeatureFlags;
   2691 typedef VkFlags VkFenceImportFlags;
   2692 typedef VkFlags VkDescriptorBindingFlags;
   2693 typedef VkFlags VkResolveModeFlags;
   2694 typedef VkFlags VkToolPurposeFlags;
   2695 typedef VkFlags VkSubmitFlags;
   2696 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
   2697     VkDebugReportFlagsEXT                       flags,
   2698     VkDebugReportObjectTypeEXT                  objectType,
   2699     uint64_t                                    object,
   2700     size_t                                      location,
   2701     int32_t                                     messageCode,
   2702     const char*                                 pLayerPrefix,
   2703     const char*                                 pMessage,
   2704     void*                                       pUserData);
   2705 typedef struct VkDeviceQueueCreateInfo {
   2706     VkStructureType   sType;
   2707     const  void *      pNext;
   2708     VkDeviceQueueCreateFlags      flags;
   2709     uint32_t          queueFamilyIndex;
   2710     uint32_t          queueCount;
   2711     const  float *     pQueuePriorities;
   2712 } VkDeviceQueueCreateInfo;
   2713 
   2714 typedef struct VkInstanceCreateInfo {
   2715     VkStructureType   sType;
   2716     const  void *      pNext;
   2717     VkInstanceCreateFlags    flags;
   2718     const  VkApplicationInfo *  pApplicationInfo;
   2719     uint32_t                 enabledLayerCount;
   2720     const  char * const*       ppEnabledLayerNames;
   2721     uint32_t                 enabledExtensionCount;
   2722     const  char * const*       ppEnabledExtensionNames;
   2723 } VkInstanceCreateInfo;
   2724 
   2725 typedef struct VkQueueFamilyProperties {
   2726     VkQueueFlags             queueFlags;
   2727     uint32_t                 queueCount;
   2728     uint32_t                 timestampValidBits;
   2729     VkExtent3D               minImageTransferGranularity;
   2730 } VkQueueFamilyProperties;
   2731 
   2732 typedef struct VkMemoryAllocateInfo {
   2733     VkStructureType   sType;
   2734     const  void *             pNext;
   2735     VkDeviceSize             allocationSize;
   2736     uint32_t                 memoryTypeIndex;
   2737 } VkMemoryAllocateInfo;
   2738 
   2739 typedef struct VkMemoryRequirements {
   2740     VkDeviceSize             size;
   2741     VkDeviceSize             alignment;
   2742     uint32_t                 memoryTypeBits;
   2743 } VkMemoryRequirements;
   2744 
   2745 typedef struct VkSparseImageFormatProperties {
   2746     VkImageAspectFlags         aspectMask;
   2747     VkExtent3D                                  imageGranularity;
   2748     VkSparseImageFormatFlags   flags;
   2749 } VkSparseImageFormatProperties;
   2750 
   2751 typedef struct VkSparseImageMemoryRequirements {
   2752     VkSparseImageFormatProperties   formatProperties;
   2753     uint32_t                 imageMipTailFirstLod;
   2754     VkDeviceSize             imageMipTailSize;
   2755     VkDeviceSize             imageMipTailOffset;
   2756     VkDeviceSize             imageMipTailStride;
   2757 } VkSparseImageMemoryRequirements;
   2758 
   2759 typedef struct VkMemoryType {
   2760     VkMemoryPropertyFlags    propertyFlags;
   2761     uint32_t                 heapIndex;
   2762 } VkMemoryType;
   2763 
   2764 typedef struct VkMemoryHeap {
   2765     VkDeviceSize             size;
   2766     VkMemoryHeapFlags        flags;
   2767 } VkMemoryHeap;
   2768 
   2769 typedef struct VkMappedMemoryRange {
   2770     VkStructureType   sType;
   2771     const  void *             pNext;
   2772     VkDeviceMemory           memory;
   2773     VkDeviceSize             offset;
   2774     VkDeviceSize             size;
   2775 } VkMappedMemoryRange;
   2776 
   2777 typedef struct VkFormatProperties {
   2778     VkFormatFeatureFlags     linearTilingFeatures;
   2779     VkFormatFeatureFlags     optimalTilingFeatures;
   2780     VkFormatFeatureFlags     bufferFeatures;
   2781 } VkFormatProperties;
   2782 
   2783 typedef struct VkImageFormatProperties {
   2784     VkExtent3D               maxExtent;
   2785     uint32_t                 maxMipLevels;
   2786     uint32_t                 maxArrayLayers;
   2787     VkSampleCountFlags       sampleCounts;
   2788     VkDeviceSize             maxResourceSize;
   2789 } VkImageFormatProperties;
   2790 
   2791 typedef struct VkDescriptorBufferInfo {
   2792     VkBuffer                 buffer;
   2793     VkDeviceSize             offset;
   2794     VkDeviceSize             range;
   2795 } VkDescriptorBufferInfo;
   2796 
   2797 typedef struct VkWriteDescriptorSet {
   2798     VkStructureType   sType;
   2799     const  void *             pNext;
   2800     VkDescriptorSet          dstSet;
   2801     uint32_t                 dstBinding;
   2802     uint32_t                 dstArrayElement;
   2803     uint32_t                 descriptorCount;
   2804     VkDescriptorType         descriptorType;
   2805     const  VkDescriptorImageInfo *  pImageInfo;
   2806     const  VkDescriptorBufferInfo *  pBufferInfo;
   2807     const  VkBufferView *     pTexelBufferView;
   2808 } VkWriteDescriptorSet;
   2809 
   2810 typedef struct VkBufferCreateInfo {
   2811     VkStructureType   sType;
   2812     const  void *             pNext;
   2813     VkBufferCreateFlags      flags;
   2814     VkDeviceSize             size;
   2815     VkBufferUsageFlags       usage;
   2816     VkSharingMode            sharingMode;
   2817     uint32_t                 queueFamilyIndexCount;
   2818     const  uint32_t *         pQueueFamilyIndices;
   2819 } VkBufferCreateInfo;
   2820 
   2821 typedef struct VkBufferViewCreateInfo {
   2822     VkStructureType   sType;
   2823     const  void *             pNext;
   2824     VkBufferViewCreateFlags flags;
   2825     VkBuffer                 buffer;
   2826     VkFormat                 format;
   2827     VkDeviceSize             offset;
   2828     VkDeviceSize             range;
   2829 } VkBufferViewCreateInfo;
   2830 
   2831 typedef struct VkImageSubresource {
   2832     VkImageAspectFlags       aspectMask;
   2833     uint32_t                 mipLevel;
   2834     uint32_t                 arrayLayer;
   2835 } VkImageSubresource;
   2836 
   2837 typedef struct VkImageSubresourceLayers {
   2838     VkImageAspectFlags       aspectMask;
   2839     uint32_t                 mipLevel;
   2840     uint32_t                 baseArrayLayer;
   2841     uint32_t                 layerCount;
   2842 } VkImageSubresourceLayers;
   2843 
   2844 typedef struct VkImageSubresourceRange {
   2845     VkImageAspectFlags       aspectMask;
   2846     uint32_t                 baseMipLevel;
   2847     uint32_t                 levelCount;
   2848     uint32_t                 baseArrayLayer;
   2849     uint32_t                 layerCount;
   2850 } VkImageSubresourceRange;
   2851 
   2852 typedef struct VkMemoryBarrier {
   2853     VkStructureType   sType;
   2854     const  void *             pNext;
   2855     VkAccessFlags            srcAccessMask;
   2856     VkAccessFlags            dstAccessMask;
   2857 } VkMemoryBarrier;
   2858 
   2859 typedef struct VkBufferMemoryBarrier {
   2860     VkStructureType   sType;
   2861     const  void *             pNext;
   2862     VkAccessFlags            srcAccessMask;
   2863     VkAccessFlags            dstAccessMask;
   2864     uint32_t                 srcQueueFamilyIndex;
   2865     uint32_t                 dstQueueFamilyIndex;
   2866     VkBuffer                 buffer;
   2867     VkDeviceSize             offset;
   2868     VkDeviceSize             size;
   2869 } VkBufferMemoryBarrier;
   2870 
   2871 typedef struct VkImageMemoryBarrier {
   2872     VkStructureType   sType;
   2873     const  void *             pNext;
   2874     VkAccessFlags            srcAccessMask;
   2875     VkAccessFlags            dstAccessMask;
   2876     VkImageLayout            oldLayout;
   2877     VkImageLayout            newLayout;
   2878     uint32_t                 srcQueueFamilyIndex;
   2879     uint32_t                 dstQueueFamilyIndex;
   2880     VkImage                  image;
   2881     VkImageSubresourceRange   subresourceRange;
   2882 } VkImageMemoryBarrier;
   2883 
   2884 typedef struct VkImageCreateInfo {
   2885     VkStructureType   sType;
   2886     const  void *             pNext;
   2887     VkImageCreateFlags       flags;
   2888     VkImageType              imageType;
   2889     VkFormat                 format;
   2890     VkExtent3D               extent;
   2891     uint32_t                 mipLevels;
   2892     uint32_t                 arrayLayers;
   2893     VkSampleCountFlagBits    samples;
   2894     VkImageTiling            tiling;
   2895     VkImageUsageFlags        usage;
   2896     VkSharingMode            sharingMode;
   2897     uint32_t                 queueFamilyIndexCount;
   2898     const  uint32_t *         pQueueFamilyIndices;
   2899     VkImageLayout            initialLayout;
   2900 } VkImageCreateInfo;
   2901 
   2902 typedef struct VkSubresourceLayout {
   2903     VkDeviceSize             offset;
   2904     VkDeviceSize             size;
   2905     VkDeviceSize             rowPitch;
   2906     VkDeviceSize             arrayPitch;
   2907     VkDeviceSize             depthPitch;
   2908 } VkSubresourceLayout;
   2909 
   2910 typedef struct VkImageViewCreateInfo {
   2911     VkStructureType   sType;
   2912     const  void *             pNext;
   2913     VkImageViewCreateFlags   flags;
   2914     VkImage                  image;
   2915     VkImageViewType          viewType;
   2916     VkFormat                 format;
   2917     VkComponentMapping       components;
   2918     VkImageSubresourceRange   subresourceRange;
   2919 } VkImageViewCreateInfo;
   2920 
   2921 typedef struct VkBufferCopy {
   2922     VkDeviceSize                         srcOffset;
   2923     VkDeviceSize                         dstOffset;
   2924     VkDeviceSize   size;
   2925 } VkBufferCopy;
   2926 
   2927 typedef struct VkSparseMemoryBind {
   2928     VkDeviceSize             resourceOffset;
   2929     VkDeviceSize             size;
   2930     VkDeviceMemory           memory;
   2931     VkDeviceSize             memoryOffset;
   2932     VkSparseMemoryBindFlags flags;
   2933 } VkSparseMemoryBind;
   2934 
   2935 typedef struct VkSparseImageMemoryBind {
   2936     VkImageSubresource       subresource;
   2937     VkOffset3D               offset;
   2938     VkExtent3D               extent;
   2939     VkDeviceMemory           memory;
   2940     VkDeviceSize             memoryOffset;
   2941     VkSparseMemoryBindFlags flags;
   2942 } VkSparseImageMemoryBind;
   2943 
   2944 typedef struct VkSparseBufferMemoryBindInfo {
   2945     VkBuffer   buffer;
   2946     uint32_t                 bindCount;
   2947     const  VkSparseMemoryBind *  pBinds;
   2948 } VkSparseBufferMemoryBindInfo;
   2949 
   2950 typedef struct VkSparseImageOpaqueMemoryBindInfo {
   2951     VkImage   image;
   2952     uint32_t                 bindCount;
   2953     const  VkSparseMemoryBind *  pBinds;
   2954 } VkSparseImageOpaqueMemoryBindInfo;
   2955 
   2956 typedef struct VkSparseImageMemoryBindInfo {
   2957     VkImage   image;
   2958     uint32_t                 bindCount;
   2959     const  VkSparseImageMemoryBind *  pBinds;
   2960 } VkSparseImageMemoryBindInfo;
   2961 
   2962 typedef struct VkBindSparseInfo {
   2963     VkStructureType   sType;
   2964     const  void *             pNext;
   2965     uint32_t                 waitSemaphoreCount;
   2966     const  VkSemaphore *      pWaitSemaphores;
   2967     uint32_t                 bufferBindCount;
   2968     const  VkSparseBufferMemoryBindInfo *  pBufferBinds;
   2969     uint32_t                 imageOpaqueBindCount;
   2970     const  VkSparseImageOpaqueMemoryBindInfo *  pImageOpaqueBinds;
   2971     uint32_t                 imageBindCount;
   2972     const  VkSparseImageMemoryBindInfo *  pImageBinds;
   2973     uint32_t                 signalSemaphoreCount;
   2974     const  VkSemaphore *      pSignalSemaphores;
   2975 } VkBindSparseInfo;
   2976 
   2977 typedef struct VkImageCopy {
   2978     VkImageSubresourceLayers   srcSubresource;
   2979     VkOffset3D               srcOffset;
   2980     VkImageSubresourceLayers   dstSubresource;
   2981     VkOffset3D               dstOffset;
   2982     VkExtent3D               extent;
   2983 } VkImageCopy;
   2984 
   2985 typedef struct VkImageBlit {
   2986     VkImageSubresourceLayers   srcSubresource;
   2987     VkOffset3D               srcOffsets [2];
   2988     VkImageSubresourceLayers   dstSubresource;
   2989     VkOffset3D               dstOffsets [2];
   2990 } VkImageBlit;
   2991 
   2992 typedef struct VkBufferImageCopy {
   2993     VkDeviceSize             bufferOffset;
   2994     uint32_t                 bufferRowLength;
   2995     uint32_t                 bufferImageHeight;
   2996     VkImageSubresourceLayers   imageSubresource;
   2997     VkOffset3D               imageOffset;
   2998     VkExtent3D               imageExtent;
   2999 } VkBufferImageCopy;
   3000 
   3001 typedef struct VkImageResolve {
   3002     VkImageSubresourceLayers   srcSubresource;
   3003     VkOffset3D               srcOffset;
   3004     VkImageSubresourceLayers   dstSubresource;
   3005     VkOffset3D               dstOffset;
   3006     VkExtent3D               extent;
   3007 } VkImageResolve;
   3008 
   3009 typedef struct VkShaderModuleCreateInfo {
   3010     VkStructureType   sType;
   3011     const  void *             pNext;
   3012     VkShaderModuleCreateFlags   flags;
   3013     size_t                   codeSize;
   3014     const  uint32_t *             pCode;
   3015 } VkShaderModuleCreateInfo;
   3016 
   3017 typedef struct VkDescriptorSetLayoutBinding {
   3018     uint32_t                 binding;
   3019     VkDescriptorType         descriptorType;
   3020     uint32_t   descriptorCount;
   3021     VkShaderStageFlags       stageFlags;
   3022     const  VkSampler *        pImmutableSamplers;
   3023 } VkDescriptorSetLayoutBinding;
   3024 
   3025 typedef struct VkDescriptorSetLayoutCreateInfo {
   3026     VkStructureType   sType;
   3027     const  void *             pNext;
   3028     VkDescriptorSetLayoutCreateFlags      flags;
   3029     uint32_t                 bindingCount;
   3030     const  VkDescriptorSetLayoutBinding *  pBindings;
   3031 } VkDescriptorSetLayoutCreateInfo;
   3032 
   3033 typedef struct VkDescriptorPoolCreateInfo {
   3034     VkStructureType   sType;
   3035     const  void *             pNext;
   3036     VkDescriptorPoolCreateFlags    flags;
   3037     uint32_t                 maxSets;
   3038     uint32_t                 poolSizeCount;
   3039     const  VkDescriptorPoolSize *  pPoolSizes;
   3040 } VkDescriptorPoolCreateInfo;
   3041 
   3042 typedef struct VkPipelineShaderStageCreateInfo {
   3043     VkStructureType   sType;
   3044     const  void *             pNext;
   3045     VkPipelineShaderStageCreateFlags      flags;
   3046     VkShaderStageFlagBits    stage;
   3047     VkShaderModule           module;
   3048     const  char *             pName;
   3049     const  VkSpecializationInfo *  pSpecializationInfo;
   3050 } VkPipelineShaderStageCreateInfo;
   3051 
   3052 typedef struct VkComputePipelineCreateInfo {
   3053     VkStructureType   sType;
   3054     const  void *             pNext;
   3055     VkPipelineCreateFlags    flags;
   3056     VkPipelineShaderStageCreateInfo   stage;
   3057     VkPipelineLayout         layout;
   3058     VkPipeline        basePipelineHandle;
   3059     int32_t                  basePipelineIndex;
   3060 } VkComputePipelineCreateInfo;
   3061 
   3062 typedef struct VkPipelineVertexInputStateCreateInfo {
   3063     VkStructureType   sType;
   3064     const  void *             pNext;
   3065     VkPipelineVertexInputStateCreateFlags      flags;
   3066     uint32_t                 vertexBindingDescriptionCount;
   3067     const  VkVertexInputBindingDescription *  pVertexBindingDescriptions;
   3068     uint32_t                 vertexAttributeDescriptionCount;
   3069     const  VkVertexInputAttributeDescription *  pVertexAttributeDescriptions;
   3070 } VkPipelineVertexInputStateCreateInfo;
   3071 
   3072 typedef struct VkPipelineInputAssemblyStateCreateInfo {
   3073     VkStructureType   sType;
   3074     const  void *             pNext;
   3075     VkPipelineInputAssemblyStateCreateFlags      flags;
   3076     VkPrimitiveTopology      topology;
   3077     VkBool32                 primitiveRestartEnable;
   3078 } VkPipelineInputAssemblyStateCreateInfo;
   3079 
   3080 typedef struct VkPipelineTessellationStateCreateInfo {
   3081     VkStructureType   sType;
   3082     const  void *             pNext;
   3083     VkPipelineTessellationStateCreateFlags      flags;
   3084     uint32_t                 patchControlPoints;
   3085 } VkPipelineTessellationStateCreateInfo;
   3086 
   3087 typedef struct VkPipelineViewportStateCreateInfo {
   3088     VkStructureType   sType;
   3089     const  void *             pNext;
   3090     VkPipelineViewportStateCreateFlags      flags;
   3091     uint32_t                 viewportCount;
   3092     const  VkViewport *       pViewports;
   3093     uint32_t                 scissorCount;
   3094     const  VkRect2D *         pScissors;
   3095 } VkPipelineViewportStateCreateInfo;
   3096 
   3097 typedef struct VkPipelineRasterizationStateCreateInfo {
   3098     VkStructureType   sType;
   3099     const  void *  pNext;
   3100     VkPipelineRasterizationStateCreateFlags      flags;
   3101     VkBool32                 depthClampEnable;
   3102     VkBool32                 rasterizerDiscardEnable;
   3103     VkPolygonMode            polygonMode;
   3104     VkCullModeFlags          cullMode;
   3105     VkFrontFace              frontFace;
   3106     VkBool32                 depthBiasEnable;
   3107     float                    depthBiasConstantFactor;
   3108     float                    depthBiasClamp;
   3109     float                    depthBiasSlopeFactor;
   3110     float                    lineWidth;
   3111 } VkPipelineRasterizationStateCreateInfo;
   3112 
   3113 typedef struct VkPipelineMultisampleStateCreateInfo {
   3114     VkStructureType   sType;
   3115     const  void *             pNext;
   3116     VkPipelineMultisampleStateCreateFlags      flags;
   3117     VkSampleCountFlagBits    rasterizationSamples;
   3118     VkBool32                 sampleShadingEnable;
   3119     float                    minSampleShading;
   3120     const  VkSampleMask *     pSampleMask;
   3121     VkBool32                 alphaToCoverageEnable;
   3122     VkBool32                 alphaToOneEnable;
   3123 } VkPipelineMultisampleStateCreateInfo;
   3124 
   3125 typedef struct VkPipelineColorBlendAttachmentState {
   3126     VkBool32                 blendEnable;
   3127     VkBlendFactor            srcColorBlendFactor;
   3128     VkBlendFactor            dstColorBlendFactor;
   3129     VkBlendOp                colorBlendOp;
   3130     VkBlendFactor            srcAlphaBlendFactor;
   3131     VkBlendFactor            dstAlphaBlendFactor;
   3132     VkBlendOp                alphaBlendOp;
   3133     VkColorComponentFlags    colorWriteMask;
   3134 } VkPipelineColorBlendAttachmentState;
   3135 
   3136 typedef struct VkPipelineColorBlendStateCreateInfo {
   3137     VkStructureType   sType;
   3138     const  void *             pNext;
   3139     VkPipelineColorBlendStateCreateFlags      flags;
   3140     VkBool32                 logicOpEnable;
   3141     VkLogicOp                logicOp;
   3142     uint32_t                 attachmentCount;
   3143     const  VkPipelineColorBlendAttachmentState *  pAttachments;
   3144     float                    blendConstants [4];
   3145 } VkPipelineColorBlendStateCreateInfo;
   3146 
   3147 typedef struct VkPipelineDynamicStateCreateInfo {
   3148     VkStructureType   sType;
   3149     const  void *             pNext;
   3150     VkPipelineDynamicStateCreateFlags      flags;
   3151     uint32_t                 dynamicStateCount;
   3152     const  VkDynamicState *   pDynamicStates;
   3153 } VkPipelineDynamicStateCreateInfo;
   3154 
   3155 typedef struct VkPipelineDepthStencilStateCreateInfo {
   3156     VkStructureType   sType;
   3157     const  void *             pNext;
   3158     VkPipelineDepthStencilStateCreateFlags      flags;
   3159     VkBool32                 depthTestEnable;
   3160     VkBool32                 depthWriteEnable;
   3161     VkCompareOp              depthCompareOp;
   3162     VkBool32                 depthBoundsTestEnable;
   3163     VkBool32                 stencilTestEnable;
   3164     VkStencilOpState         front;
   3165     VkStencilOpState         back;
   3166     float                    minDepthBounds;
   3167     float                    maxDepthBounds;
   3168 } VkPipelineDepthStencilStateCreateInfo;
   3169 
   3170 typedef struct VkGraphicsPipelineCreateInfo {
   3171     VkStructureType   sType;
   3172     const  void *             pNext;
   3173     VkPipelineCreateFlags    flags;
   3174     uint32_t                 stageCount;
   3175     const  VkPipelineShaderStageCreateInfo *  pStages;
   3176     const  VkPipelineVertexInputStateCreateInfo *  pVertexInputState;
   3177     const  VkPipelineInputAssemblyStateCreateInfo *  pInputAssemblyState;
   3178     const  VkPipelineTessellationStateCreateInfo *  pTessellationState;
   3179     const  VkPipelineViewportStateCreateInfo *  pViewportState;
   3180     const  VkPipelineRasterizationStateCreateInfo *  pRasterizationState;
   3181     const  VkPipelineMultisampleStateCreateInfo *  pMultisampleState;
   3182     const  VkPipelineDepthStencilStateCreateInfo *  pDepthStencilState;
   3183     const  VkPipelineColorBlendStateCreateInfo *  pColorBlendState;
   3184     const  VkPipelineDynamicStateCreateInfo *  pDynamicState;
   3185     VkPipelineLayout         layout;
   3186     VkRenderPass             renderPass;
   3187     uint32_t                 subpass;
   3188     VkPipeline        basePipelineHandle;
   3189     int32_t                  basePipelineIndex;
   3190 } VkGraphicsPipelineCreateInfo;
   3191 
   3192 typedef struct VkPipelineCacheCreateInfo {
   3193     VkStructureType   sType;
   3194     const  void *             pNext;
   3195     VkPipelineCacheCreateFlags      flags;
   3196     size_t                   initialDataSize;
   3197     const  void *             pInitialData;
   3198 } VkPipelineCacheCreateInfo;
   3199 
   3200 typedef struct VkPushConstantRange {
   3201     VkShaderStageFlags       stageFlags;
   3202     uint32_t                 offset;
   3203     uint32_t                 size;
   3204 } VkPushConstantRange;
   3205 
   3206 typedef struct VkPipelineLayoutCreateInfo {
   3207     VkStructureType   sType;
   3208     const  void *             pNext;
   3209     VkPipelineLayoutCreateFlags      flags;
   3210     uint32_t                 setLayoutCount;
   3211     const  VkDescriptorSetLayout *  pSetLayouts;
   3212     uint32_t                 pushConstantRangeCount;
   3213     const  VkPushConstantRange *  pPushConstantRanges;
   3214 } VkPipelineLayoutCreateInfo;
   3215 
   3216 typedef struct VkSamplerCreateInfo {
   3217     VkStructureType   sType;
   3218     const  void *             pNext;
   3219     VkSamplerCreateFlags     flags;
   3220     VkFilter                 magFilter;
   3221     VkFilter                 minFilter;
   3222     VkSamplerMipmapMode      mipmapMode;
   3223     VkSamplerAddressMode     addressModeU;
   3224     VkSamplerAddressMode     addressModeV;
   3225     VkSamplerAddressMode     addressModeW;
   3226     float                    mipLodBias;
   3227     VkBool32                 anisotropyEnable;
   3228     float                    maxAnisotropy;
   3229     VkBool32                 compareEnable;
   3230     VkCompareOp              compareOp;
   3231     float                    minLod;
   3232     float                    maxLod;
   3233     VkBorderColor            borderColor;
   3234     VkBool32                 unnormalizedCoordinates;
   3235 } VkSamplerCreateInfo;
   3236 
   3237 typedef struct VkCommandPoolCreateInfo {
   3238     VkStructureType   sType;
   3239     const  void *             pNext;
   3240     VkCommandPoolCreateFlags     flags;
   3241     uint32_t                 queueFamilyIndex;
   3242 } VkCommandPoolCreateInfo;
   3243 
   3244 typedef struct VkCommandBufferInheritanceInfo {
   3245     VkStructureType   sType;
   3246     const  void *             pNext;
   3247     VkRenderPass      renderPass;
   3248     uint32_t                 subpass;
   3249     VkFramebuffer     framebuffer;
   3250     VkBool32                 occlusionQueryEnable;
   3251     VkQueryControlFlags      queryFlags;
   3252     VkQueryPipelineStatisticFlags   pipelineStatistics;
   3253 } VkCommandBufferInheritanceInfo;
   3254 
   3255 typedef struct VkCommandBufferBeginInfo {
   3256     VkStructureType   sType;
   3257     const  void *             pNext;
   3258     VkCommandBufferUsageFlags    flags;
   3259     const  VkCommandBufferInheritanceInfo *        pInheritanceInfo;
   3260 } VkCommandBufferBeginInfo;
   3261 
   3262 typedef struct VkRenderPassBeginInfo {
   3263     VkStructureType   sType;
   3264     const  void *             pNext;
   3265     VkRenderPass             renderPass;
   3266     VkFramebuffer            framebuffer;
   3267     VkRect2D                 renderArea;
   3268     uint32_t                 clearValueCount;
   3269     const  VkClearValue *     pClearValues;
   3270 } VkRenderPassBeginInfo;
   3271 
   3272 typedef struct VkClearAttachment {
   3273     VkImageAspectFlags       aspectMask;
   3274     uint32_t                 colorAttachment;
   3275     VkClearValue             clearValue;
   3276 } VkClearAttachment;
   3277 
   3278 typedef struct VkAttachmentDescription {
   3279     VkAttachmentDescriptionFlags   flags;
   3280     VkFormat                 format;
   3281     VkSampleCountFlagBits    samples;
   3282     VkAttachmentLoadOp       loadOp;
   3283     VkAttachmentStoreOp      storeOp;
   3284     VkAttachmentLoadOp       stencilLoadOp;
   3285     VkAttachmentStoreOp      stencilStoreOp;
   3286     VkImageLayout            initialLayout;
   3287     VkImageLayout            finalLayout;
   3288 } VkAttachmentDescription;
   3289 
   3290 typedef struct VkSubpassDescription {
   3291     VkSubpassDescriptionFlags   flags;
   3292     VkPipelineBindPoint      pipelineBindPoint;
   3293     uint32_t                 inputAttachmentCount;
   3294     const  VkAttachmentReference *  pInputAttachments;
   3295     uint32_t                 colorAttachmentCount;
   3296     const  VkAttachmentReference *  pColorAttachments;
   3297     const  VkAttachmentReference *  pResolveAttachments;
   3298     const  VkAttachmentReference *  pDepthStencilAttachment;
   3299     uint32_t                 preserveAttachmentCount;
   3300     const  uint32_t *  pPreserveAttachments;
   3301 } VkSubpassDescription;
   3302 
   3303 typedef struct VkSubpassDependency {
   3304     uint32_t                 srcSubpass;
   3305     uint32_t                 dstSubpass;
   3306     VkPipelineStageFlags     srcStageMask;
   3307     VkPipelineStageFlags     dstStageMask;
   3308     VkAccessFlags            srcAccessMask;
   3309     VkAccessFlags            dstAccessMask;
   3310     VkDependencyFlags        dependencyFlags;
   3311 } VkSubpassDependency;
   3312 
   3313 typedef struct VkRenderPassCreateInfo {
   3314     VkStructureType   sType;
   3315     const  void *             pNext;
   3316     VkRenderPassCreateFlags   flags;
   3317     uint32_t     attachmentCount;
   3318     const  VkAttachmentDescription *  pAttachments;
   3319     uint32_t                 subpassCount;
   3320     const  VkSubpassDescription *  pSubpasses;
   3321     uint32_t         dependencyCount;
   3322     const  VkSubpassDependency *  pDependencies;
   3323 } VkRenderPassCreateInfo;
   3324 
   3325 typedef struct VkEventCreateInfo {
   3326     VkStructureType   sType;
   3327     const  void *             pNext;
   3328     VkEventCreateFlags       flags;
   3329 } VkEventCreateInfo;
   3330 
   3331 typedef struct VkFenceCreateInfo {
   3332     VkStructureType   sType;
   3333     const  void *             pNext;
   3334     VkFenceCreateFlags       flags;
   3335 } VkFenceCreateInfo;
   3336 
   3337 typedef struct VkPhysicalDeviceFeatures {
   3338     VkBool32                 robustBufferAccess;
   3339     VkBool32                 fullDrawIndexUint32;
   3340     VkBool32                 imageCubeArray;
   3341     VkBool32                 independentBlend;
   3342     VkBool32                 geometryShader;
   3343     VkBool32                 tessellationShader;
   3344     VkBool32                 sampleRateShading;
   3345     VkBool32                 dualSrcBlend;
   3346     VkBool32                 logicOp;
   3347     VkBool32                 multiDrawIndirect;
   3348     VkBool32                 drawIndirectFirstInstance;
   3349     VkBool32                 depthClamp;
   3350     VkBool32                 depthBiasClamp;
   3351     VkBool32                 fillModeNonSolid;
   3352     VkBool32                 depthBounds;
   3353     VkBool32                 wideLines;
   3354     VkBool32                 largePoints;
   3355     VkBool32                 alphaToOne;
   3356     VkBool32                 multiViewport;
   3357     VkBool32                 samplerAnisotropy;
   3358     VkBool32                 textureCompressionETC2;
   3359     VkBool32                 textureCompressionASTC_LDR;
   3360     VkBool32                 textureCompressionBC;
   3361     VkBool32                 occlusionQueryPrecise;
   3362     VkBool32                 pipelineStatisticsQuery;
   3363     VkBool32                 vertexPipelineStoresAndAtomics;
   3364     VkBool32                 fragmentStoresAndAtomics;
   3365     VkBool32                 shaderTessellationAndGeometryPointSize;
   3366     VkBool32                 shaderImageGatherExtended;
   3367     VkBool32                 shaderStorageImageExtendedFormats;
   3368     VkBool32                 shaderStorageImageMultisample;
   3369     VkBool32                 shaderStorageImageReadWithoutFormat;
   3370     VkBool32                 shaderStorageImageWriteWithoutFormat;
   3371     VkBool32                 shaderUniformBufferArrayDynamicIndexing;
   3372     VkBool32                 shaderSampledImageArrayDynamicIndexing;
   3373     VkBool32                 shaderStorageBufferArrayDynamicIndexing;
   3374     VkBool32                 shaderStorageImageArrayDynamicIndexing;
   3375     VkBool32                 shaderClipDistance;
   3376     VkBool32                 shaderCullDistance;
   3377     VkBool32                 shaderFloat64;
   3378     VkBool32                 shaderInt64;
   3379     VkBool32                 shaderInt16;
   3380     VkBool32                 shaderResourceResidency;
   3381     VkBool32                 shaderResourceMinLod;
   3382     VkBool32                 sparseBinding;
   3383     VkBool32                 sparseResidencyBuffer;
   3384     VkBool32                 sparseResidencyImage2D;
   3385     VkBool32                 sparseResidencyImage3D;
   3386     VkBool32                 sparseResidency2Samples;
   3387     VkBool32                 sparseResidency4Samples;
   3388     VkBool32                 sparseResidency8Samples;
   3389     VkBool32                 sparseResidency16Samples;
   3390     VkBool32                 sparseResidencyAliased;
   3391     VkBool32                 variableMultisampleRate;
   3392     VkBool32                 inheritedQueries;
   3393 } VkPhysicalDeviceFeatures;
   3394 
   3395 typedef struct VkPhysicalDeviceSparseProperties {
   3396     VkBool32             residencyStandard2DBlockShape;
   3397     VkBool32             residencyStandard2DMultisampleBlockShape;
   3398     VkBool32             residencyStandard3DBlockShape;
   3399     VkBool32             residencyAlignedMipSize;
   3400     VkBool32             residencyNonResidentStrict;
   3401 } VkPhysicalDeviceSparseProperties;
   3402 
   3403 typedef struct VkPhysicalDeviceLimits {
   3404     uint32_t                 maxImageDimension1D;
   3405     uint32_t                 maxImageDimension2D;
   3406     uint32_t                 maxImageDimension3D;
   3407     uint32_t                 maxImageDimensionCube;
   3408     uint32_t                 maxImageArrayLayers;
   3409     uint32_t                 maxTexelBufferElements;
   3410     uint32_t                 maxUniformBufferRange;
   3411     uint32_t                 maxStorageBufferRange;
   3412     uint32_t                 maxPushConstantsSize;
   3413     uint32_t                 maxMemoryAllocationCount;
   3414     uint32_t                 maxSamplerAllocationCount;
   3415     VkDeviceSize             bufferImageGranularity;
   3416     VkDeviceSize             sparseAddressSpaceSize;
   3417     uint32_t                 maxBoundDescriptorSets;
   3418     uint32_t                 maxPerStageDescriptorSamplers;
   3419     uint32_t                 maxPerStageDescriptorUniformBuffers;
   3420     uint32_t                 maxPerStageDescriptorStorageBuffers;
   3421     uint32_t                 maxPerStageDescriptorSampledImages;
   3422     uint32_t                 maxPerStageDescriptorStorageImages;
   3423     uint32_t                 maxPerStageDescriptorInputAttachments;
   3424     uint32_t                 maxPerStageResources;
   3425     uint32_t                 maxDescriptorSetSamplers;
   3426     uint32_t                 maxDescriptorSetUniformBuffers;
   3427     uint32_t                 maxDescriptorSetUniformBuffersDynamic;
   3428     uint32_t                 maxDescriptorSetStorageBuffers;
   3429     uint32_t                 maxDescriptorSetStorageBuffersDynamic;
   3430     uint32_t                 maxDescriptorSetSampledImages;
   3431     uint32_t                 maxDescriptorSetStorageImages;
   3432     uint32_t                 maxDescriptorSetInputAttachments;
   3433     uint32_t                 maxVertexInputAttributes;
   3434     uint32_t                 maxVertexInputBindings;
   3435     uint32_t                 maxVertexInputAttributeOffset;
   3436     uint32_t                 maxVertexInputBindingStride;
   3437     uint32_t                 maxVertexOutputComponents;
   3438     uint32_t                 maxTessellationGenerationLevel;
   3439     uint32_t                 maxTessellationPatchSize;
   3440     uint32_t                 maxTessellationControlPerVertexInputComponents;
   3441     uint32_t                 maxTessellationControlPerVertexOutputComponents;
   3442     uint32_t                 maxTessellationControlPerPatchOutputComponents;
   3443     uint32_t                 maxTessellationControlTotalOutputComponents;
   3444     uint32_t                 maxTessellationEvaluationInputComponents;
   3445     uint32_t                 maxTessellationEvaluationOutputComponents;
   3446     uint32_t                 maxGeometryShaderInvocations;
   3447     uint32_t                 maxGeometryInputComponents;
   3448     uint32_t                 maxGeometryOutputComponents;
   3449     uint32_t                 maxGeometryOutputVertices;
   3450     uint32_t                 maxGeometryTotalOutputComponents;
   3451     uint32_t                 maxFragmentInputComponents;
   3452     uint32_t                 maxFragmentOutputAttachments;
   3453     uint32_t                 maxFragmentDualSrcAttachments;
   3454     uint32_t                 maxFragmentCombinedOutputResources;
   3455     uint32_t                 maxComputeSharedMemorySize;
   3456     uint32_t                 maxComputeWorkGroupCount [3];
   3457     uint32_t                 maxComputeWorkGroupInvocations;
   3458     uint32_t                 maxComputeWorkGroupSize [3];
   3459     uint32_t                subPixelPrecisionBits;
   3460     uint32_t                subTexelPrecisionBits;
   3461     uint32_t                mipmapPrecisionBits;
   3462     uint32_t                 maxDrawIndexedIndexValue;
   3463     uint32_t                 maxDrawIndirectCount;
   3464     float                    maxSamplerLodBias;
   3465     float                    maxSamplerAnisotropy;
   3466     uint32_t                 maxViewports;
   3467     uint32_t                 maxViewportDimensions [2];
   3468     float                  viewportBoundsRange [2];
   3469     uint32_t                viewportSubPixelBits;
   3470     size_t               minMemoryMapAlignment;
   3471     VkDeviceSize         minTexelBufferOffsetAlignment;
   3472     VkDeviceSize         minUniformBufferOffsetAlignment;
   3473     VkDeviceSize         minStorageBufferOffsetAlignment;
   3474     int32_t                  minTexelOffset;
   3475     uint32_t                 maxTexelOffset;
   3476     int32_t                  minTexelGatherOffset;
   3477     uint32_t                 maxTexelGatherOffset;
   3478     float                    minInterpolationOffset;
   3479     float                    maxInterpolationOffset;
   3480     uint32_t                subPixelInterpolationOffsetBits;
   3481     uint32_t                 maxFramebufferWidth;
   3482     uint32_t                 maxFramebufferHeight;
   3483     uint32_t                 maxFramebufferLayers;
   3484     VkSampleCountFlags       framebufferColorSampleCounts;
   3485     VkSampleCountFlags       framebufferDepthSampleCounts;
   3486     VkSampleCountFlags       framebufferStencilSampleCounts;
   3487     VkSampleCountFlags       framebufferNoAttachmentsSampleCounts;
   3488     uint32_t                 maxColorAttachments;
   3489     VkSampleCountFlags       sampledImageColorSampleCounts;
   3490     VkSampleCountFlags       sampledImageIntegerSampleCounts;
   3491     VkSampleCountFlags       sampledImageDepthSampleCounts;
   3492     VkSampleCountFlags       sampledImageStencilSampleCounts;
   3493     VkSampleCountFlags       storageImageSampleCounts;
   3494     uint32_t                 maxSampleMaskWords;
   3495     VkBool32             timestampComputeAndGraphics;
   3496     float                timestampPeriod;
   3497     uint32_t                 maxClipDistances;
   3498     uint32_t                 maxCullDistances;
   3499     uint32_t                 maxCombinedClipAndCullDistances;
   3500     uint32_t                 discreteQueuePriorities;
   3501     float                  pointSizeRange [2];
   3502     float                  lineWidthRange [2];
   3503     float                pointSizeGranularity;
   3504     float                lineWidthGranularity;
   3505     VkBool32             strictLines;
   3506     VkBool32             standardSampleLocations;
   3507     VkDeviceSize         optimalBufferCopyOffsetAlignment;
   3508     VkDeviceSize         optimalBufferCopyRowPitchAlignment;
   3509     VkDeviceSize         nonCoherentAtomSize;
   3510 } VkPhysicalDeviceLimits;
   3511 
   3512 typedef struct VkSemaphoreCreateInfo {
   3513     VkStructureType   sType;
   3514     const  void *             pNext;
   3515     VkSemaphoreCreateFlags   flags;
   3516 } VkSemaphoreCreateInfo;
   3517 
   3518 typedef struct VkQueryPoolCreateInfo {
   3519     VkStructureType   sType;
   3520     const  void *             pNext;
   3521     VkQueryPoolCreateFlags   flags;
   3522     VkQueryType              queryType;
   3523     uint32_t                 queryCount;
   3524     VkQueryPipelineStatisticFlags   pipelineStatistics;
   3525 } VkQueryPoolCreateInfo;
   3526 
   3527 typedef struct VkFramebufferCreateInfo {
   3528     VkStructureType   sType;
   3529     const  void *             pNext;
   3530     VkFramebufferCreateFlags      flags;
   3531     VkRenderPass                             renderPass;
   3532     uint32_t                 attachmentCount;
   3533     const  VkImageView *      pAttachments;
   3534     uint32_t                 width;
   3535     uint32_t                 height;
   3536     uint32_t                 layers;
   3537 } VkFramebufferCreateInfo;
   3538 
   3539 typedef struct VkSubmitInfo {
   3540     VkStructureType   sType;
   3541     const  void *  pNext;
   3542     uint32_t         waitSemaphoreCount;
   3543     const  VkSemaphore *      pWaitSemaphores;
   3544     const  VkPipelineStageFlags *            pWaitDstStageMask;
   3545     uint32_t         commandBufferCount;
   3546     const  VkCommandBuffer *      pCommandBuffers;
   3547     uint32_t         signalSemaphoreCount;
   3548     const  VkSemaphore *      pSignalSemaphores;
   3549 } VkSubmitInfo;
   3550 
   3551 typedef struct VkSurfaceCapabilitiesKHR {
   3552     uint32_t                           minImageCount;
   3553     uint32_t                           maxImageCount;
   3554     VkExtent2D                         currentExtent;
   3555     VkExtent2D                         minImageExtent;
   3556     VkExtent2D                         maxImageExtent;
   3557     uint32_t                           maxImageArrayLayers;
   3558     VkSurfaceTransformFlagsKHR         supportedTransforms;
   3559     VkSurfaceTransformFlagBitsKHR      currentTransform;
   3560     VkCompositeAlphaFlagsKHR           supportedCompositeAlpha;
   3561     VkImageUsageFlags                  supportedUsageFlags;
   3562 } VkSurfaceCapabilitiesKHR;
   3563 
   3564 typedef struct VkSwapchainCreateInfoKHR {
   3565     VkStructureType   sType;
   3566     const  void *                       pNext;
   3567     VkSwapchainCreateFlagsKHR          flags;
   3568     VkSurfaceKHR                       surface;
   3569     uint32_t                           minImageCount;
   3570     VkFormat                           imageFormat;
   3571     VkColorSpaceKHR                    imageColorSpace;
   3572     VkExtent2D                         imageExtent;
   3573     uint32_t                           imageArrayLayers;
   3574     VkImageUsageFlags                  imageUsage;
   3575     VkSharingMode                      imageSharingMode;
   3576     uint32_t           queueFamilyIndexCount;
   3577     const  uint32_t *                   pQueueFamilyIndices;
   3578     VkSurfaceTransformFlagBitsKHR      preTransform;
   3579     VkCompositeAlphaFlagBitsKHR        compositeAlpha;
   3580     VkPresentModeKHR                   presentMode;
   3581     VkBool32                           clipped;
   3582     VkSwapchainKHR     oldSwapchain;
   3583 } VkSwapchainCreateInfoKHR;
   3584 
   3585 typedef struct VkDebugReportCallbackCreateInfoEXT {
   3586     VkStructureType   sType;
   3587     const  void *                       pNext;
   3588     VkDebugReportFlagsEXT              flags;
   3589     PFN_vkDebugReportCallbackEXT       pfnCallback;
   3590     void *             pUserData;
   3591 } VkDebugReportCallbackCreateInfoEXT;
   3592 
   3593 typedef struct VkPrivateDataSlotCreateInfo {
   3594     VkStructureType   sType;
   3595     const  void *                             pNext;
   3596     VkPrivateDataSlotCreateFlags          flags;
   3597 } VkPrivateDataSlotCreateInfo;
   3598 
   3599 typedef struct VkPhysicalDevicePrivateDataFeatures {
   3600     VkStructureType   sType;
   3601     void *                                   pNext;
   3602     VkBool32                                 privateData;
   3603 } VkPhysicalDevicePrivateDataFeatures;
   3604 
   3605 typedef struct VkPhysicalDeviceFeatures2 {
   3606     VkStructureType   sType;
   3607     void *                             pNext;
   3608     VkPhysicalDeviceFeatures           features;
   3609 } VkPhysicalDeviceFeatures2;
   3610 
   3611 typedef struct VkFormatProperties2 {
   3612     VkStructureType   sType;
   3613     void *                             pNext;
   3614     VkFormatProperties                 formatProperties;
   3615 } VkFormatProperties2;
   3616 
   3617 typedef struct VkImageFormatProperties2 {
   3618     VkStructureType   sType;
   3619     void *  pNext;
   3620     VkImageFormatProperties            imageFormatProperties;
   3621 } VkImageFormatProperties2;
   3622 
   3623 typedef struct VkPhysicalDeviceImageFormatInfo2 {
   3624     VkStructureType   sType;
   3625     const  void *  pNext;
   3626     VkFormat                           format;
   3627     VkImageType                        type;
   3628     VkImageTiling                      tiling;
   3629     VkImageUsageFlags                  usage;
   3630     VkImageCreateFlags   flags;
   3631 } VkPhysicalDeviceImageFormatInfo2;
   3632 
   3633 typedef struct VkQueueFamilyProperties2 {
   3634     VkStructureType   sType;
   3635     void *                             pNext;
   3636     VkQueueFamilyProperties         queueFamilyProperties;
   3637 } VkQueueFamilyProperties2;
   3638 
   3639 typedef struct VkSparseImageFormatProperties2 {
   3640     VkStructureType   sType;
   3641     void *                             pNext;
   3642     VkSparseImageFormatProperties   properties;
   3643 } VkSparseImageFormatProperties2;
   3644 
   3645 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
   3646     VkStructureType   sType;
   3647     const  void *                       pNext;
   3648     VkFormat                           format;
   3649     VkImageType                        type;
   3650     VkSampleCountFlagBits              samples;
   3651     VkImageUsageFlags                  usage;
   3652     VkImageTiling                      tiling;
   3653 } VkPhysicalDeviceSparseImageFormatInfo2;
   3654 
   3655 typedef struct VkPhysicalDeviceVariablePointersFeatures {
   3656     VkStructureType   sType;
   3657     void *                             pNext;
   3658     VkBool32                           variablePointersStorageBuffer;
   3659     VkBool32                           variablePointers;
   3660 } VkPhysicalDeviceVariablePointersFeatures;
   3661 
   3662 typedef struct VkPhysicalDeviceVariablePointersFeatures  VkPhysicalDeviceVariablePointerFeatures;
   3663 
   3664 typedef struct VkExternalMemoryProperties {
   3665     VkExternalMemoryFeatureFlags    externalMemoryFeatures;
   3666     VkExternalMemoryHandleTypeFlags   exportFromImportedHandleTypes;
   3667     VkExternalMemoryHandleTypeFlags   compatibleHandleTypes;
   3668 } VkExternalMemoryProperties;
   3669 
   3670 typedef struct VkExternalImageFormatProperties {
   3671     VkStructureType   sType;
   3672     void *                             pNext;
   3673     VkExternalMemoryProperties   externalMemoryProperties;
   3674 } VkExternalImageFormatProperties;
   3675 
   3676 typedef struct VkPhysicalDeviceExternalBufferInfo {
   3677     VkStructureType   sType;
   3678     const  void *                       pNext;
   3679     VkBufferCreateFlags   flags;
   3680     VkBufferUsageFlags                 usage;
   3681     VkExternalMemoryHandleTypeFlagBits   handleType;
   3682 } VkPhysicalDeviceExternalBufferInfo;
   3683 
   3684 typedef struct VkExternalBufferProperties {
   3685     VkStructureType   sType;
   3686     void *                             pNext;
   3687     VkExternalMemoryProperties      externalMemoryProperties;
   3688 } VkExternalBufferProperties;
   3689 
   3690 typedef struct VkPhysicalDeviceIDProperties {
   3691     VkStructureType   sType;
   3692     void *                             pNext;
   3693     uint8_t                       deviceUUID [ VK_UUID_SIZE ];
   3694     uint8_t                       driverUUID [ VK_UUID_SIZE ];
   3695     uint8_t                       deviceLUID [ VK_LUID_SIZE ];
   3696     uint32_t                      deviceNodeMask;
   3697     VkBool32                      deviceLUIDValid;
   3698 } VkPhysicalDeviceIDProperties;
   3699 
   3700 typedef struct VkExternalMemoryImageCreateInfo {
   3701     VkStructureType   sType;
   3702     const  void *                       pNext;
   3703     VkExternalMemoryHandleTypeFlags   handleTypes;
   3704 } VkExternalMemoryImageCreateInfo;
   3705 
   3706 typedef struct VkExternalMemoryBufferCreateInfo {
   3707     VkStructureType   sType;
   3708     const  void *                       pNext;
   3709     VkExternalMemoryHandleTypeFlags   handleTypes;
   3710 } VkExternalMemoryBufferCreateInfo;
   3711 
   3712 typedef struct VkExportMemoryAllocateInfo {
   3713     VkStructureType   sType;
   3714     const  void *                       pNext;
   3715     VkExternalMemoryHandleTypeFlags   handleTypes;
   3716 } VkExportMemoryAllocateInfo;
   3717 
   3718 typedef struct VkExternalSemaphoreProperties {
   3719     VkStructureType   sType;
   3720     void *                             pNext;
   3721     VkExternalSemaphoreHandleTypeFlags   exportFromImportedHandleTypes;
   3722     VkExternalSemaphoreHandleTypeFlags   compatibleHandleTypes;
   3723     VkExternalSemaphoreFeatureFlags   externalSemaphoreFeatures;
   3724 } VkExternalSemaphoreProperties;
   3725 
   3726 typedef struct VkExportSemaphoreCreateInfo {
   3727     VkStructureType   sType;
   3728     const  void *                       pNext;
   3729     VkExternalSemaphoreHandleTypeFlags   handleTypes;
   3730 } VkExportSemaphoreCreateInfo;
   3731 
   3732 typedef struct VkExternalFenceProperties {
   3733     VkStructureType   sType;
   3734     void *                             pNext;
   3735     VkExternalFenceHandleTypeFlags   exportFromImportedHandleTypes;
   3736     VkExternalFenceHandleTypeFlags   compatibleHandleTypes;
   3737     VkExternalFenceFeatureFlags   externalFenceFeatures;
   3738 } VkExternalFenceProperties;
   3739 
   3740 typedef struct VkExportFenceCreateInfo {
   3741     VkStructureType   sType;
   3742     const  void *                       pNext;
   3743     VkExternalFenceHandleTypeFlags   handleTypes;
   3744 } VkExportFenceCreateInfo;
   3745 
   3746 typedef struct VkPhysicalDeviceMultiviewFeatures {
   3747     VkStructureType   sType;
   3748     void *                             pNext;
   3749     VkBool32                           multiview;
   3750     VkBool32                           multiviewGeometryShader;
   3751     VkBool32                           multiviewTessellationShader;
   3752 } VkPhysicalDeviceMultiviewFeatures;
   3753 
   3754 typedef struct VkPhysicalDeviceGroupProperties {
   3755     VkStructureType   sType;
   3756     void *                             pNext;
   3757     uint32_t                           physicalDeviceCount;
   3758     VkPhysicalDevice                   physicalDevices [ VK_MAX_DEVICE_GROUP_SIZE ];
   3759     VkBool32                           subsetAllocation;
   3760 } VkPhysicalDeviceGroupProperties;
   3761 
   3762 typedef struct VkMemoryAllocateFlagsInfo {
   3763     VkStructureType   sType;
   3764     const  void *                       pNext;
   3765     VkMemoryAllocateFlags   flags;
   3766     uint32_t                           deviceMask;
   3767 } VkMemoryAllocateFlagsInfo;
   3768 
   3769 typedef struct VkBindBufferMemoryInfo {
   3770     VkStructureType   sType;
   3771     const  void *                       pNext;
   3772     VkBuffer                           buffer;
   3773     VkDeviceMemory                     memory;
   3774     VkDeviceSize                       memoryOffset;
   3775 } VkBindBufferMemoryInfo;
   3776 
   3777 typedef struct VkBindImageMemoryInfo {
   3778     VkStructureType   sType;
   3779     const  void *                       pNext;
   3780     VkImage                            image;
   3781     VkDeviceMemory                     memory;
   3782     VkDeviceSize                       memoryOffset;
   3783 } VkBindImageMemoryInfo;
   3784 
   3785 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
   3786     VkStructureType   sType;
   3787     void *             pNext;
   3788     uint32_t                           presentMask [ VK_MAX_DEVICE_GROUP_SIZE ];
   3789     VkDeviceGroupPresentModeFlagsKHR   modes;
   3790 } VkDeviceGroupPresentCapabilitiesKHR;
   3791 
   3792 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
   3793     VkStructureType   sType;
   3794     const  void *                       pNext;
   3795     VkDeviceGroupPresentModeFlagsKHR                           modes;
   3796 } VkDeviceGroupSwapchainCreateInfoKHR;
   3797 
   3798 typedef struct VkDescriptorUpdateTemplateCreateInfo {
   3799     VkStructureType   sType;
   3800     const  void *                                pNext;
   3801     VkDescriptorUpdateTemplateCreateFlags      flags;
   3802     uint32_t                   descriptorUpdateEntryCount;
   3803     const  VkDescriptorUpdateTemplateEntry *  pDescriptorUpdateEntries;
   3804     VkDescriptorUpdateTemplateType   templateType;
   3805     VkDescriptorSetLayout   descriptorSetLayout;
   3806     VkPipelineBindPoint   pipelineBindPoint;
   3807     VkPipelineLayout pipelineLayout;
   3808     uint32_t   set;
   3809 } VkDescriptorUpdateTemplateCreateInfo;
   3810 
   3811 typedef struct VkInputAttachmentAspectReference {
   3812     uint32_t                          subpass;
   3813     uint32_t                          inputAttachmentIndex;
   3814     VkImageAspectFlags                aspectMask;
   3815 } VkInputAttachmentAspectReference;
   3816 
   3817 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
   3818     VkStructureType   sType;
   3819     const  void *                      pNext;
   3820     uint32_t                          aspectReferenceCount;
   3821     const  VkInputAttachmentAspectReference *  pAspectReferences;
   3822 } VkRenderPassInputAttachmentAspectCreateInfo;
   3823 
   3824 typedef struct VkPhysicalDevice16BitStorageFeatures {
   3825     VkStructureType   sType;
   3826     void *       pNext;
   3827     VkBool32                           storageBuffer16BitAccess;
   3828     VkBool32                           uniformAndStorageBuffer16BitAccess;
   3829     VkBool32                           storagePushConstant16;
   3830     VkBool32                           storageInputOutput16;
   3831 } VkPhysicalDevice16BitStorageFeatures;
   3832 
   3833 typedef struct VkPhysicalDeviceSubgroupProperties {
   3834     VkStructureType   sType;
   3835     void *                    pNext;
   3836     uint32_t                       subgroupSize;
   3837     VkShaderStageFlags              supportedStages;
   3838     VkSubgroupFeatureFlags          supportedOperations;
   3839     VkBool32   quadOperationsInAllStages;
   3840 } VkPhysicalDeviceSubgroupProperties;
   3841 
   3842 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
   3843     VkStructureType   sType;
   3844     void *                           pNext;
   3845     VkBool32   shaderSubgroupExtendedTypes;
   3846 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
   3847 
   3848 typedef struct VkDeviceBufferMemoryRequirements {
   3849     VkStructureType   sType;
   3850     const  void *                                                            pNext;
   3851     const  VkBufferCreateInfo *                                                              pCreateInfo;
   3852 } VkDeviceBufferMemoryRequirements;
   3853 
   3854 typedef struct VkDeviceImageMemoryRequirements {
   3855     VkStructureType   sType;
   3856     const  void *                                                           pNext;
   3857     const  VkImageCreateInfo *                                                              pCreateInfo;
   3858     VkImageAspectFlagBits                                                  planeAspect;
   3859 } VkDeviceImageMemoryRequirements;
   3860 
   3861 typedef struct VkMemoryRequirements2 {
   3862     VkStructureType   sType;
   3863     void *  pNext;
   3864     VkMemoryRequirements                                                   memoryRequirements;
   3865 } VkMemoryRequirements2;
   3866 
   3867 typedef struct VkSparseImageMemoryRequirements2 {
   3868     VkStructureType   sType;
   3869     void *                                        pNext;
   3870     VkSparseImageMemoryRequirements                                        memoryRequirements;
   3871 } VkSparseImageMemoryRequirements2;
   3872 
   3873 typedef struct VkMemoryDedicatedRequirements {
   3874     VkStructureType   sType;
   3875     void *                             pNext;
   3876     VkBool32                           prefersDedicatedAllocation;
   3877     VkBool32                           requiresDedicatedAllocation;
   3878 } VkMemoryDedicatedRequirements;
   3879 
   3880 typedef struct VkImageViewUsageCreateInfo {
   3881     VkStructureType   sType;
   3882     const  void *  pNext;
   3883     VkImageUsageFlags   usage;
   3884 } VkImageViewUsageCreateInfo;
   3885 
   3886 typedef struct VkSamplerYcbcrConversionCreateInfo {
   3887     VkStructureType   sType;
   3888     const  void *                       pNext;
   3889     VkFormat                           format;
   3890     VkSamplerYcbcrModelConversion   ycbcrModel;
   3891     VkSamplerYcbcrRange             ycbcrRange;
   3892     VkComponentMapping                 components;
   3893     VkChromaLocation                xChromaOffset;
   3894     VkChromaLocation                yChromaOffset;
   3895     VkFilter                           chromaFilter;
   3896     VkBool32                           forceExplicitReconstruction;
   3897 } VkSamplerYcbcrConversionCreateInfo;
   3898 
   3899 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
   3900     VkStructureType   sType;
   3901     void *       pNext;
   3902     VkBool32                           samplerYcbcrConversion;
   3903 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
   3904 
   3905 typedef struct VkProtectedSubmitInfo {
   3906     VkStructureType   sType;
   3907     const  void *                      pNext;
   3908     VkBool32                          protectedSubmit;
   3909 } VkProtectedSubmitInfo;
   3910 
   3911 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
   3912     VkStructureType   sType;
   3913     void *                                pNext;
   3914     VkBool32                              protectedMemory;
   3915 } VkPhysicalDeviceProtectedMemoryFeatures;
   3916 
   3917 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
   3918     VkStructureType   sType;
   3919     void *                                pNext;
   3920     VkBool32                              protectedNoFault;
   3921 } VkPhysicalDeviceProtectedMemoryProperties;
   3922 
   3923 typedef struct VkDeviceQueueInfo2 {
   3924     VkStructureType   sType;
   3925     const  void *                          pNext;
   3926     VkDeviceQueueCreateFlags              flags;
   3927     uint32_t                              queueFamilyIndex;
   3928     uint32_t                              queueIndex;
   3929 } VkDeviceQueueInfo2;
   3930 
   3931 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
   3932     VkStructureType   sType;
   3933     void *                   pNext;
   3934     VkBool32                 filterMinmaxSingleComponentFormats;
   3935     VkBool32                 filterMinmaxImageComponentMapping;
   3936 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
   3937 
   3938 typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
   3939     VkStructureType   sType;
   3940     void *   pNext;
   3941     VkBool32                 inlineUniformBlock;
   3942     VkBool32                 descriptorBindingInlineUniformBlockUpdateAfterBind;
   3943 } VkPhysicalDeviceInlineUniformBlockFeatures;
   3944 
   3945 typedef struct VkPhysicalDeviceMaintenance3Properties {
   3946     VkStructureType   sType;
   3947     void *                             pNext;
   3948     uint32_t                           maxPerSetDescriptors;
   3949     VkDeviceSize                       maxMemoryAllocationSize;
   3950 } VkPhysicalDeviceMaintenance3Properties;
   3951 
   3952 typedef struct VkPhysicalDeviceMaintenance4Features {
   3953     VkStructureType   sType;
   3954     void *                             pNext;
   3955     VkBool32                                           maintenance4;
   3956 } VkPhysicalDeviceMaintenance4Features;
   3957 
   3958 typedef struct VkPhysicalDeviceMaintenance4Properties {
   3959     VkStructureType   sType;
   3960     void *                             pNext;
   3961     VkDeviceSize                       maxBufferSize;
   3962 } VkPhysicalDeviceMaintenance4Properties;
   3963 
   3964 typedef struct VkDescriptorSetLayoutSupport {
   3965     VkStructureType   sType;
   3966     void *             pNext;
   3967     VkBool32           supported;
   3968 } VkDescriptorSetLayoutSupport;
   3969 
   3970 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
   3971     VkStructureType   sType;
   3972     void *                             pNext;
   3973     VkBool32                           shaderDrawParameters;
   3974 } VkPhysicalDeviceShaderDrawParametersFeatures;
   3975 
   3976 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures  VkPhysicalDeviceShaderDrawParameterFeatures;
   3977 
   3978 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
   3979     VkStructureType   sType;
   3980     void *       pNext;
   3981     VkBool32                           shaderFloat16;
   3982     VkBool32                           shaderInt8;
   3983 } VkPhysicalDeviceShaderFloat16Int8Features;
   3984 
   3985 typedef struct VkPhysicalDeviceFloatControlsProperties {
   3986     VkStructureType   sType;
   3987     void *                             pNext;
   3988     VkShaderFloatControlsIndependence   denormBehaviorIndependence;
   3989     VkShaderFloatControlsIndependence   roundingModeIndependence;
   3990     VkBool32                           shaderSignedZeroInfNanPreserveFloat16;
   3991     VkBool32                           shaderSignedZeroInfNanPreserveFloat32;
   3992     VkBool32                           shaderSignedZeroInfNanPreserveFloat64;
   3993     VkBool32                           shaderDenormPreserveFloat16;
   3994     VkBool32                           shaderDenormPreserveFloat32;
   3995     VkBool32                           shaderDenormPreserveFloat64;
   3996     VkBool32                           shaderDenormFlushToZeroFloat16;
   3997     VkBool32                           shaderDenormFlushToZeroFloat32;
   3998     VkBool32                           shaderDenormFlushToZeroFloat64;
   3999     VkBool32                           shaderRoundingModeRTEFloat16;
   4000     VkBool32                           shaderRoundingModeRTEFloat32;
   4001     VkBool32                           shaderRoundingModeRTEFloat64;
   4002     VkBool32                           shaderRoundingModeRTZFloat16;
   4003     VkBool32                           shaderRoundingModeRTZFloat32;
   4004     VkBool32                           shaderRoundingModeRTZFloat64;
   4005 } VkPhysicalDeviceFloatControlsProperties;
   4006 
   4007 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
   4008     VkStructureType   sType;
   4009     void *         pNext;
   4010     VkBool32                             hostQueryReset;
   4011 } VkPhysicalDeviceHostQueryResetFeatures;
   4012 
   4013 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
   4014     VkStructureType   sType;
   4015     void *                             pNext;
   4016     VkBool32                 shaderInputAttachmentArrayDynamicIndexing;
   4017     VkBool32                 shaderUniformTexelBufferArrayDynamicIndexing;
   4018     VkBool32                 shaderStorageTexelBufferArrayDynamicIndexing;
   4019     VkBool32                 shaderUniformBufferArrayNonUniformIndexing;
   4020     VkBool32                 shaderSampledImageArrayNonUniformIndexing;
   4021     VkBool32                 shaderStorageBufferArrayNonUniformIndexing;
   4022     VkBool32                 shaderStorageImageArrayNonUniformIndexing;
   4023     VkBool32                 shaderInputAttachmentArrayNonUniformIndexing;
   4024     VkBool32                 shaderUniformTexelBufferArrayNonUniformIndexing;
   4025     VkBool32                 shaderStorageTexelBufferArrayNonUniformIndexing;
   4026     VkBool32                 descriptorBindingUniformBufferUpdateAfterBind;
   4027     VkBool32                 descriptorBindingSampledImageUpdateAfterBind;
   4028     VkBool32                 descriptorBindingStorageImageUpdateAfterBind;
   4029     VkBool32                 descriptorBindingStorageBufferUpdateAfterBind;
   4030     VkBool32                 descriptorBindingUniformTexelBufferUpdateAfterBind;
   4031     VkBool32                 descriptorBindingStorageTexelBufferUpdateAfterBind;
   4032     VkBool32                 descriptorBindingUpdateUnusedWhilePending;
   4033     VkBool32                 descriptorBindingPartiallyBound;
   4034     VkBool32                 descriptorBindingVariableDescriptorCount;
   4035     VkBool32                 runtimeDescriptorArray;
   4036 } VkPhysicalDeviceDescriptorIndexingFeatures;
   4037 
   4038 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
   4039     VkStructureType   sType;
   4040     void *                             pNext;
   4041     uint32_t                 maxUpdateAfterBindDescriptorsInAllPools;
   4042     VkBool32                 shaderUniformBufferArrayNonUniformIndexingNative;
   4043     VkBool32                 shaderSampledImageArrayNonUniformIndexingNative;
   4044     VkBool32                 shaderStorageBufferArrayNonUniformIndexingNative;
   4045     VkBool32                 shaderStorageImageArrayNonUniformIndexingNative;
   4046     VkBool32                 shaderInputAttachmentArrayNonUniformIndexingNative;
   4047     VkBool32                 robustBufferAccessUpdateAfterBind;
   4048     VkBool32                 quadDivergentImplicitLod;
   4049     uint32_t                 maxPerStageDescriptorUpdateAfterBindSamplers;
   4050     uint32_t                 maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   4051     uint32_t                 maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   4052     uint32_t                 maxPerStageDescriptorUpdateAfterBindSampledImages;
   4053     uint32_t                 maxPerStageDescriptorUpdateAfterBindStorageImages;
   4054     uint32_t                 maxPerStageDescriptorUpdateAfterBindInputAttachments;
   4055     uint32_t                 maxPerStageUpdateAfterBindResources;
   4056     uint32_t                 maxDescriptorSetUpdateAfterBindSamplers;
   4057     uint32_t                 maxDescriptorSetUpdateAfterBindUniformBuffers;
   4058     uint32_t                 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   4059     uint32_t                 maxDescriptorSetUpdateAfterBindStorageBuffers;
   4060     uint32_t                 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   4061     uint32_t                 maxDescriptorSetUpdateAfterBindSampledImages;
   4062     uint32_t                 maxDescriptorSetUpdateAfterBindStorageImages;
   4063     uint32_t                 maxDescriptorSetUpdateAfterBindInputAttachments;
   4064 } VkPhysicalDeviceDescriptorIndexingProperties;
   4065 
   4066 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
   4067     VkStructureType   sType;
   4068     const  void *                                                         pNext;
   4069     uint32_t                                             bindingCount;
   4070     const  VkDescriptorBindingFlags *  pBindingFlags;
   4071 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
   4072 
   4073 typedef struct VkAttachmentDescription2 {
   4074     VkStructureType   sType;
   4075     const  void *             pNext;
   4076     VkAttachmentDescriptionFlags   flags;
   4077     VkFormat                                       format;
   4078     VkSampleCountFlagBits                          samples;
   4079     VkAttachmentLoadOp                             loadOp;
   4080     VkAttachmentStoreOp                            storeOp;
   4081     VkAttachmentLoadOp                             stencilLoadOp;
   4082     VkAttachmentStoreOp                            stencilStoreOp;
   4083     VkImageLayout                                  initialLayout;
   4084     VkImageLayout                                  finalLayout;
   4085 } VkAttachmentDescription2;
   4086 
   4087 typedef struct VkAttachmentReference2 {
   4088     VkStructureType   sType;
   4089     const  void *  pNext;
   4090     uint32_t                            attachment;
   4091     VkImageLayout                       layout;
   4092     VkImageAspectFlags   aspectMask;
   4093 } VkAttachmentReference2;
   4094 
   4095 typedef struct VkSubpassDescription2 {
   4096     VkStructureType   sType;
   4097     const  void *                            pNext;
   4098     VkSubpassDescriptionFlags                     flags;
   4099     VkPipelineBindPoint                                           pipelineBindPoint;
   4100     uint32_t                                                      viewMask;
   4101     uint32_t                                      inputAttachmentCount;
   4102     const  VkAttachmentReference2 *     pInputAttachments;
   4103     uint32_t                                      colorAttachmentCount;
   4104     const  VkAttachmentReference2 *     pColorAttachments;
   4105     const  VkAttachmentReference2 *  pResolveAttachments;
   4106     const  VkAttachmentReference2 *                pDepthStencilAttachment;
   4107     uint32_t                                      preserveAttachmentCount;
   4108     const  uint32_t *                pPreserveAttachments;
   4109 } VkSubpassDescription2;
   4110 
   4111 typedef struct VkSubpassDependency2 {
   4112     VkStructureType   sType;
   4113     const  void *  pNext;
   4114     uint32_t                            srcSubpass;
   4115     uint32_t                            dstSubpass;
   4116     VkPipelineStageFlags   srcStageMask;
   4117     VkPipelineStageFlags   dstStageMask;
   4118     VkAccessFlags       srcAccessMask;
   4119     VkAccessFlags       dstAccessMask;
   4120     VkDependencyFlags   dependencyFlags;
   4121     int32_t                             viewOffset;
   4122 } VkSubpassDependency2;
   4123 
   4124 typedef struct VkRenderPassCreateInfo2 {
   4125     VkStructureType   sType;
   4126     const  void *                                               pNext;
   4127     VkRenderPassCreateFlags                    flags;
   4128     uint32_t                                   attachmentCount;
   4129     const  VkAttachmentDescription2 *     pAttachments;
   4130     uint32_t                                                   subpassCount;
   4131     const  VkSubpassDescription2 *           pSubpasses;
   4132     uint32_t                                   dependencyCount;
   4133     const  VkSubpassDependency2 *         pDependencies;
   4134     uint32_t                                   correlatedViewMaskCount;
   4135     const  uint32_t *             pCorrelatedViewMasks;
   4136 } VkRenderPassCreateInfo2;
   4137 
   4138 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
   4139     VkStructureType   sType;
   4140     void *                   pNext;
   4141     VkBool32                 timelineSemaphore;
   4142 } VkPhysicalDeviceTimelineSemaphoreFeatures;
   4143 
   4144 typedef struct VkSemaphoreWaitInfo {
   4145     VkStructureType   sType;
   4146     const  void *             pNext;
   4147     VkSemaphoreWaitFlags   flags;
   4148     uint32_t                 semaphoreCount;
   4149     const  VkSemaphore *  pSemaphores;
   4150     const  uint64_t *     pValues;
   4151 } VkSemaphoreWaitInfo;
   4152 
   4153 typedef struct VkPhysicalDevice8BitStorageFeatures {
   4154     VkStructureType   sType;
   4155     void *       pNext;
   4156     VkBool32                           storageBuffer8BitAccess;
   4157     VkBool32                           uniformAndStorageBuffer8BitAccess;
   4158     VkBool32                           storagePushConstant8;
   4159 } VkPhysicalDevice8BitStorageFeatures;
   4160 
   4161 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
   4162     VkStructureType   sType;
   4163     void *       pNext;
   4164     VkBool32                           vulkanMemoryModel;
   4165     VkBool32                           vulkanMemoryModelDeviceScope;
   4166     VkBool32                           vulkanMemoryModelAvailabilityVisibilityChains;
   4167 } VkPhysicalDeviceVulkanMemoryModelFeatures;
   4168 
   4169 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
   4170     VkStructureType   sType;
   4171     void *                                pNext;
   4172     VkBool32                              shaderBufferInt64Atomics;
   4173     VkBool32                              shaderSharedInt64Atomics;
   4174 } VkPhysicalDeviceShaderAtomicInt64Features;
   4175 
   4176 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
   4177     VkStructureType   sType;
   4178     void *                                 pNext;
   4179     VkResolveModeFlags                     supportedDepthResolveModes;
   4180     VkResolveModeFlags                     supportedStencilResolveModes;
   4181     VkBool32                               independentResolveNone;
   4182     VkBool32                               independentResolve;
   4183 } VkPhysicalDeviceDepthStencilResolveProperties;
   4184 
   4185 typedef struct VkSubpassDescriptionDepthStencilResolve {
   4186     VkStructureType   sType;
   4187     const  void *                               pNext;
   4188     VkResolveModeFlagBits                depthResolveMode;
   4189     VkResolveModeFlagBits                stencilResolveMode;
   4190     const  VkAttachmentReference2 *             pDepthStencilResolveAttachment;
   4191 } VkSubpassDescriptionDepthStencilResolve;
   4192 
   4193 typedef struct VkImageStencilUsageCreateInfo {
   4194     VkStructureType   sType;
   4195     const  void *  pNext;
   4196     VkImageUsageFlags   stencilUsage;
   4197 } VkImageStencilUsageCreateInfo;
   4198 
   4199 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
   4200     VkStructureType   sType;
   4201     void *                                pNext;
   4202     VkBool32                              scalarBlockLayout;
   4203 } VkPhysicalDeviceScalarBlockLayoutFeatures;
   4204 
   4205 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
   4206     VkStructureType   sType;
   4207     void *                                pNext;
   4208     VkBool32                              uniformBufferStandardLayout;
   4209 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
   4210 
   4211 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
   4212     VkStructureType   sType;
   4213     void *         pNext;
   4214     VkBool32                             bufferDeviceAddress;
   4215     VkBool32                             bufferDeviceAddressCaptureReplay;
   4216     VkBool32                             bufferDeviceAddressMultiDevice;
   4217 } VkPhysicalDeviceBufferDeviceAddressFeatures;
   4218 
   4219 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
   4220     VkStructureType   sType;
   4221     void *                                     pNext;
   4222     VkBool32                                   imagelessFramebuffer;
   4223 } VkPhysicalDeviceImagelessFramebufferFeatures;
   4224 
   4225 typedef struct VkFramebufferAttachmentImageInfo {
   4226     VkStructureType   sType;
   4227     const  void *                               pNext;
   4228     VkImageCreateFlags         flags;
   4229     VkImageUsageFlags                          usage;
   4230     uint32_t                                   width;
   4231     uint32_t                                   height;
   4232     uint32_t                                   layerCount;
   4233     uint32_t                   viewFormatCount;
   4234     const  VkFormat *     pViewFormats;
   4235 } VkFramebufferAttachmentImageInfo;
   4236 
   4237 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
   4238     VkStructureType   sType;
   4239     void *   pNext;
   4240     VkBool32                 textureCompressionASTC_HDR;
   4241 } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
   4242 
   4243 typedef struct VkPipelineCreationFeedback {
   4244     VkPipelineCreationFeedbackFlags       flags;
   4245     uint64_t                              duration;
   4246 } VkPipelineCreationFeedback;
   4247 
   4248 typedef struct VkPipelineCreationFeedbackCreateInfo {
   4249     VkStructureType   sType;
   4250     const  void *          pNext;
   4251     VkPipelineCreationFeedback *          pPipelineCreationFeedback;
   4252     uint32_t              pipelineStageCreationFeedbackCount;
   4253     VkPipelineCreationFeedback *  pPipelineStageCreationFeedbacks;
   4254 } VkPipelineCreationFeedbackCreateInfo;
   4255 
   4256 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
   4257     VkStructureType sType;
   4258     void *     pNext;
   4259     VkBool32                         separateDepthStencilLayouts;
   4260 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
   4261 
   4262 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
   4263     VkStructureType   sType;
   4264     void *       pNext;
   4265     VkBool32                     shaderDemoteToHelperInvocation;
   4266 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
   4267 
   4268 typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
   4269     VkStructureType   sType;
   4270     void *               pNext;
   4271     VkDeviceSize                         storageTexelBufferOffsetAlignmentBytes;
   4272     VkBool32                           storageTexelBufferOffsetSingleTexelAlignment;
   4273     VkDeviceSize                         uniformTexelBufferOffsetAlignmentBytes;
   4274     VkBool32                           uniformTexelBufferOffsetSingleTexelAlignment;
   4275 } VkPhysicalDeviceTexelBufferAlignmentProperties;
   4276 
   4277 typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
   4278     VkStructureType   sType;
   4279     void *   pNext;
   4280     VkBool32                 subgroupSizeControl;
   4281     VkBool32                 computeFullSubgroups;
   4282 } VkPhysicalDeviceSubgroupSizeControlFeatures;
   4283 
   4284 typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
   4285     VkStructureType   sType;
   4286     void *                           pNext;
   4287     uint32_t   minSubgroupSize;
   4288     uint32_t   maxSubgroupSize;
   4289     uint32_t   maxComputeWorkgroupSubgroups;
   4290     VkShaderStageFlags           requiredSubgroupSizeStages;
   4291 } VkPhysicalDeviceSubgroupSizeControlProperties;
   4292 
   4293 typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
   4294     VkStructureType   sType;
   4295     void *  pNext;
   4296     VkBool32                pipelineCreationCacheControl;
   4297 } VkPhysicalDevicePipelineCreationCacheControlFeatures;
   4298 
   4299 typedef struct VkPhysicalDeviceVulkan11Features {
   4300     VkStructureType sType;
   4301     void *     pNext;
   4302     VkBool32                           storageBuffer16BitAccess;
   4303     VkBool32                           uniformAndStorageBuffer16BitAccess;
   4304     VkBool32                           storagePushConstant16;
   4305     VkBool32                           storageInputOutput16;
   4306     VkBool32                           multiview;
   4307     VkBool32                           multiviewGeometryShader;
   4308     VkBool32                           multiviewTessellationShader;
   4309     VkBool32                           variablePointersStorageBuffer;
   4310     VkBool32                           variablePointers;
   4311     VkBool32                           protectedMemory;
   4312     VkBool32                           samplerYcbcrConversion;
   4313     VkBool32                           shaderDrawParameters;
   4314 } VkPhysicalDeviceVulkan11Features;
   4315 
   4316 typedef struct VkPhysicalDeviceVulkan11Properties {
   4317     VkStructureType sType;
   4318     void *       pNext;
   4319     uint8_t                            deviceUUID [ VK_UUID_SIZE ];
   4320     uint8_t                            driverUUID [ VK_UUID_SIZE ];
   4321     uint8_t                            deviceLUID [ VK_LUID_SIZE ];
   4322     uint32_t                           deviceNodeMask;
   4323     VkBool32                           deviceLUIDValid;
   4324     uint32_t                        subgroupSize;
   4325     VkShaderStageFlags              subgroupSupportedStages;
   4326     VkSubgroupFeatureFlags          subgroupSupportedOperations;
   4327     VkBool32                        subgroupQuadOperationsInAllStages;
   4328     VkPointClippingBehavior       pointClippingBehavior;
   4329     uint32_t                           maxMultiviewViewCount;
   4330     uint32_t                           maxMultiviewInstanceIndex;
   4331     VkBool32                      protectedNoFault;
   4332     uint32_t                           maxPerSetDescriptors;
   4333     VkDeviceSize                       maxMemoryAllocationSize;
   4334 } VkPhysicalDeviceVulkan11Properties;
   4335 
   4336 typedef struct VkPhysicalDeviceVulkan12Features {
   4337     VkStructureType sType;
   4338     void *     pNext;
   4339     VkBool32                           samplerMirrorClampToEdge;
   4340     VkBool32                           drawIndirectCount;
   4341     VkBool32                           storageBuffer8BitAccess;
   4342     VkBool32                           uniformAndStorageBuffer8BitAccess;
   4343     VkBool32                           storagePushConstant8;
   4344     VkBool32                           shaderBufferInt64Atomics;
   4345     VkBool32                           shaderSharedInt64Atomics;
   4346     VkBool32                           shaderFloat16;
   4347     VkBool32                           shaderInt8;
   4348     VkBool32                           descriptorIndexing;
   4349     VkBool32                           shaderInputAttachmentArrayDynamicIndexing;
   4350     VkBool32                           shaderUniformTexelBufferArrayDynamicIndexing;
   4351     VkBool32                           shaderStorageTexelBufferArrayDynamicIndexing;
   4352     VkBool32                           shaderUniformBufferArrayNonUniformIndexing;
   4353     VkBool32                           shaderSampledImageArrayNonUniformIndexing;
   4354     VkBool32                           shaderStorageBufferArrayNonUniformIndexing;
   4355     VkBool32                           shaderStorageImageArrayNonUniformIndexing;
   4356     VkBool32                           shaderInputAttachmentArrayNonUniformIndexing;
   4357     VkBool32                           shaderUniformTexelBufferArrayNonUniformIndexing;
   4358     VkBool32                           shaderStorageTexelBufferArrayNonUniformIndexing;
   4359     VkBool32                           descriptorBindingUniformBufferUpdateAfterBind;
   4360     VkBool32                           descriptorBindingSampledImageUpdateAfterBind;
   4361     VkBool32                           descriptorBindingStorageImageUpdateAfterBind;
   4362     VkBool32                           descriptorBindingStorageBufferUpdateAfterBind;
   4363     VkBool32                           descriptorBindingUniformTexelBufferUpdateAfterBind;
   4364     VkBool32                           descriptorBindingStorageTexelBufferUpdateAfterBind;
   4365     VkBool32                           descriptorBindingUpdateUnusedWhilePending;
   4366     VkBool32                           descriptorBindingPartiallyBound;
   4367     VkBool32                           descriptorBindingVariableDescriptorCount;
   4368     VkBool32                           runtimeDescriptorArray;
   4369     VkBool32                           samplerFilterMinmax;
   4370     VkBool32                           scalarBlockLayout;
   4371     VkBool32                           imagelessFramebuffer;
   4372     VkBool32                           uniformBufferStandardLayout;
   4373     VkBool32                           shaderSubgroupExtendedTypes;
   4374     VkBool32                           separateDepthStencilLayouts;
   4375     VkBool32                           hostQueryReset;
   4376     VkBool32                           timelineSemaphore;
   4377     VkBool32                           bufferDeviceAddress;
   4378     VkBool32                           bufferDeviceAddressCaptureReplay;
   4379     VkBool32                           bufferDeviceAddressMultiDevice;
   4380     VkBool32                           vulkanMemoryModel;
   4381     VkBool32                           vulkanMemoryModelDeviceScope;
   4382     VkBool32                           vulkanMemoryModelAvailabilityVisibilityChains;
   4383     VkBool32                           shaderOutputViewportIndex;
   4384     VkBool32                           shaderOutputLayer;
   4385     VkBool32                           subgroupBroadcastDynamicId;
   4386 } VkPhysicalDeviceVulkan12Features;
   4387 
   4388 typedef struct VkPhysicalDeviceVulkan12Properties {
   4389     VkStructureType sType;
   4390     void *     pNext;
   4391     VkDriverId                         driverID;
   4392     char                               driverName [ VK_MAX_DRIVER_NAME_SIZE ];
   4393     char                               driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
   4394     VkConformanceVersion               conformanceVersion;
   4395     VkShaderFloatControlsIndependence denormBehaviorIndependence;
   4396     VkShaderFloatControlsIndependence roundingModeIndependence;
   4397     VkBool32                           shaderSignedZeroInfNanPreserveFloat16;
   4398     VkBool32                           shaderSignedZeroInfNanPreserveFloat32;
   4399     VkBool32                           shaderSignedZeroInfNanPreserveFloat64;
   4400     VkBool32                           shaderDenormPreserveFloat16;
   4401     VkBool32                           shaderDenormPreserveFloat32;
   4402     VkBool32                           shaderDenormPreserveFloat64;
   4403     VkBool32                           shaderDenormFlushToZeroFloat16;
   4404     VkBool32                           shaderDenormFlushToZeroFloat32;
   4405     VkBool32                           shaderDenormFlushToZeroFloat64;
   4406     VkBool32                           shaderRoundingModeRTEFloat16;
   4407     VkBool32                           shaderRoundingModeRTEFloat32;
   4408     VkBool32                           shaderRoundingModeRTEFloat64;
   4409     VkBool32                           shaderRoundingModeRTZFloat16;
   4410     VkBool32                           shaderRoundingModeRTZFloat32;
   4411     VkBool32                           shaderRoundingModeRTZFloat64;
   4412     uint32_t                           maxUpdateAfterBindDescriptorsInAllPools;
   4413     VkBool32                           shaderUniformBufferArrayNonUniformIndexingNative;
   4414     VkBool32                           shaderSampledImageArrayNonUniformIndexingNative;
   4415     VkBool32                           shaderStorageBufferArrayNonUniformIndexingNative;
   4416     VkBool32                           shaderStorageImageArrayNonUniformIndexingNative;
   4417     VkBool32                           shaderInputAttachmentArrayNonUniformIndexingNative;
   4418     VkBool32                           robustBufferAccessUpdateAfterBind;
   4419     VkBool32                           quadDivergentImplicitLod;
   4420     uint32_t                           maxPerStageDescriptorUpdateAfterBindSamplers;
   4421     uint32_t                           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
   4422     uint32_t                           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
   4423     uint32_t                           maxPerStageDescriptorUpdateAfterBindSampledImages;
   4424     uint32_t                           maxPerStageDescriptorUpdateAfterBindStorageImages;
   4425     uint32_t                           maxPerStageDescriptorUpdateAfterBindInputAttachments;
   4426     uint32_t                           maxPerStageUpdateAfterBindResources;
   4427     uint32_t                           maxDescriptorSetUpdateAfterBindSamplers;
   4428     uint32_t                           maxDescriptorSetUpdateAfterBindUniformBuffers;
   4429     uint32_t                           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
   4430     uint32_t                           maxDescriptorSetUpdateAfterBindStorageBuffers;
   4431     uint32_t                           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
   4432     uint32_t                           maxDescriptorSetUpdateAfterBindSampledImages;
   4433     uint32_t                           maxDescriptorSetUpdateAfterBindStorageImages;
   4434     uint32_t                           maxDescriptorSetUpdateAfterBindInputAttachments;
   4435     VkResolveModeFlags                 supportedDepthResolveModes;
   4436     VkResolveModeFlags                 supportedStencilResolveModes;
   4437     VkBool32                           independentResolveNone;
   4438     VkBool32                           independentResolve;
   4439     VkBool32                           filterMinmaxSingleComponentFormats;
   4440     VkBool32                           filterMinmaxImageComponentMapping;
   4441     uint64_t                           maxTimelineSemaphoreValueDifference;
   4442     VkSampleCountFlags   framebufferIntegerColorSampleCounts;
   4443 } VkPhysicalDeviceVulkan12Properties;
   4444 
   4445 typedef struct VkPhysicalDeviceVulkan13Features {
   4446     VkStructureType sType;
   4447     void *             pNext;
   4448     VkBool32                           robustImageAccess;
   4449     VkBool32                           inlineUniformBlock;
   4450     VkBool32                           descriptorBindingInlineUniformBlockUpdateAfterBind;
   4451     VkBool32                           pipelineCreationCacheControl;
   4452     VkBool32                           privateData;
   4453     VkBool32                           shaderDemoteToHelperInvocation;
   4454     VkBool32                           shaderTerminateInvocation;
   4455     VkBool32                           subgroupSizeControl;
   4456     VkBool32                           computeFullSubgroups;
   4457     VkBool32                           synchronization2;
   4458     VkBool32                           textureCompressionASTC_HDR;
   4459     VkBool32                           shaderZeroInitializeWorkgroupMemory;
   4460     VkBool32                           dynamicRendering;
   4461     VkBool32                           shaderIntegerDotProduct;
   4462     VkBool32                           maintenance4;
   4463 } VkPhysicalDeviceVulkan13Features;
   4464 
   4465 typedef struct VkPhysicalDeviceVulkan13Properties {
   4466     VkStructureType sType;
   4467     void *                           pNext;
   4468     uint32_t   minSubgroupSize;
   4469     uint32_t   maxSubgroupSize;
   4470     uint32_t   maxComputeWorkgroupSubgroups;
   4471     VkShaderStageFlags           requiredSubgroupSizeStages;
   4472     uint32_t                         maxInlineUniformBlockSize;
   4473     uint32_t                         maxPerStageDescriptorInlineUniformBlocks;
   4474     uint32_t                         maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
   4475     uint32_t                         maxDescriptorSetInlineUniformBlocks;
   4476     uint32_t                         maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
   4477     uint32_t                         maxInlineUniformTotalSize;
   4478     VkBool32                     integerDotProduct8BitUnsignedAccelerated;
   4479     VkBool32                     integerDotProduct8BitSignedAccelerated;
   4480     VkBool32                     integerDotProduct8BitMixedSignednessAccelerated;
   4481     VkBool32                     integerDotProduct4x8BitPackedUnsignedAccelerated;
   4482     VkBool32                     integerDotProduct4x8BitPackedSignedAccelerated;
   4483     VkBool32                     integerDotProduct4x8BitPackedMixedSignednessAccelerated;
   4484     VkBool32                     integerDotProduct16BitUnsignedAccelerated;
   4485     VkBool32                     integerDotProduct16BitSignedAccelerated;
   4486     VkBool32                     integerDotProduct16BitMixedSignednessAccelerated;
   4487     VkBool32                     integerDotProduct32BitUnsignedAccelerated;
   4488     VkBool32                     integerDotProduct32BitSignedAccelerated;
   4489     VkBool32                     integerDotProduct32BitMixedSignednessAccelerated;
   4490     VkBool32                     integerDotProduct64BitUnsignedAccelerated;
   4491     VkBool32                     integerDotProduct64BitSignedAccelerated;
   4492     VkBool32                     integerDotProduct64BitMixedSignednessAccelerated;
   4493     VkBool32                     integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
   4494     VkBool32                     integerDotProductAccumulatingSaturating8BitSignedAccelerated;
   4495     VkBool32                     integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
   4496     VkBool32                     integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
   4497     VkBool32                     integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
   4498     VkBool32                     integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
   4499     VkBool32                     integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
   4500     VkBool32                     integerDotProductAccumulatingSaturating16BitSignedAccelerated;
   4501     VkBool32                     integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
   4502     VkBool32                     integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
   4503     VkBool32                     integerDotProductAccumulatingSaturating32BitSignedAccelerated;
   4504     VkBool32                     integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
   4505     VkBool32                     integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
   4506     VkBool32                     integerDotProductAccumulatingSaturating64BitSignedAccelerated;
   4507     VkBool32                     integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
   4508     VkDeviceSize                  storageTexelBufferOffsetAlignmentBytes;
   4509     VkBool32                    storageTexelBufferOffsetSingleTexelAlignment;
   4510     VkDeviceSize                  uniformTexelBufferOffsetAlignmentBytes;
   4511     VkBool32                    uniformTexelBufferOffsetSingleTexelAlignment;
   4512     VkDeviceSize                     maxBufferSize;
   4513 } VkPhysicalDeviceVulkan13Properties;
   4514 
   4515 typedef struct VkPhysicalDeviceToolProperties {
   4516     VkStructureType   sType;
   4517     void *  pNext;
   4518     char                    name [ VK_MAX_EXTENSION_NAME_SIZE ];
   4519     char                    version [ VK_MAX_EXTENSION_NAME_SIZE ];
   4520     VkToolPurposeFlags      purposes;
   4521     char                    description [ VK_MAX_DESCRIPTION_SIZE ];
   4522     char                    layer [ VK_MAX_EXTENSION_NAME_SIZE ];
   4523 } VkPhysicalDeviceToolProperties;
   4524 
   4525 typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
   4526     VkStructureType   sType;
   4527     void *           pNext;
   4528     VkBool32         shaderZeroInitializeWorkgroupMemory;
   4529 } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
   4530 
   4531 typedef struct VkPhysicalDeviceImageRobustnessFeatures {
   4532     VkStructureType   sType;
   4533     void *               pNext;
   4534     VkBool32                             robustImageAccess;
   4535 } VkPhysicalDeviceImageRobustnessFeatures;
   4536 
   4537 typedef struct VkBufferCopy2 {
   4538     VkStructureType   sType;
   4539     const  void *         pNext;
   4540     VkDeviceSize                         srcOffset;
   4541     VkDeviceSize                         dstOffset;
   4542     VkDeviceSize   size;
   4543 } VkBufferCopy2;
   4544 
   4545 typedef struct VkImageCopy2 {
   4546     VkStructureType   sType;
   4547     const  void *         pNext;
   4548     VkImageSubresourceLayers             srcSubresource;
   4549     VkOffset3D                           srcOffset;
   4550     VkImageSubresourceLayers             dstSubresource;
   4551     VkOffset3D                           dstOffset;
   4552     VkExtent3D                           extent;
   4553 } VkImageCopy2;
   4554 
   4555 typedef struct VkImageBlit2 {
   4556     VkStructureType   sType;
   4557     const  void *         pNext;
   4558     VkImageSubresourceLayers             srcSubresource;
   4559     VkOffset3D                           srcOffsets [2];
   4560     VkImageSubresourceLayers             dstSubresource;
   4561     VkOffset3D                           dstOffsets [2];
   4562 } VkImageBlit2;
   4563 
   4564 typedef struct VkBufferImageCopy2 {
   4565     VkStructureType   sType;
   4566     const  void *         pNext;
   4567     VkDeviceSize                         bufferOffset;
   4568     uint32_t                             bufferRowLength;
   4569     uint32_t                             bufferImageHeight;
   4570     VkImageSubresourceLayers             imageSubresource;
   4571     VkOffset3D                           imageOffset;
   4572     VkExtent3D                           imageExtent;
   4573 } VkBufferImageCopy2;
   4574 
   4575 typedef struct VkImageResolve2 {
   4576     VkStructureType   sType;
   4577     const  void *         pNext;
   4578     VkImageSubresourceLayers             srcSubresource;
   4579     VkOffset3D                           srcOffset;
   4580     VkImageSubresourceLayers             dstSubresource;
   4581     VkOffset3D                           dstOffset;
   4582     VkExtent3D                           extent;
   4583 } VkImageResolve2;
   4584 
   4585 typedef struct VkCopyBufferInfo2 {
   4586     VkStructureType   sType;
   4587     const  void *         pNext;
   4588     VkBuffer                             srcBuffer;
   4589     VkBuffer                             dstBuffer;
   4590     uint32_t                             regionCount;
   4591     const  VkBufferCopy2 *  pRegions;
   4592 } VkCopyBufferInfo2;
   4593 
   4594 typedef struct VkCopyImageInfo2 {
   4595     VkStructureType   sType;
   4596     const  void *         pNext;
   4597     VkImage                              srcImage;
   4598     VkImageLayout                        srcImageLayout;
   4599     VkImage                              dstImage;
   4600     VkImageLayout                        dstImageLayout;
   4601     uint32_t                             regionCount;
   4602     const  VkImageCopy2 *  pRegions;
   4603 } VkCopyImageInfo2;
   4604 
   4605 typedef struct VkBlitImageInfo2 {
   4606     VkStructureType   sType;
   4607     const  void *             pNext;
   4608     VkImage                                  srcImage;
   4609     VkImageLayout                            srcImageLayout;
   4610     VkImage                                  dstImage;
   4611     VkImageLayout                            dstImageLayout;
   4612     uint32_t                                 regionCount;
   4613     const  VkImageBlit2 *   pRegions;
   4614     VkFilter                                 filter;
   4615 } VkBlitImageInfo2;
   4616 
   4617 typedef struct VkCopyBufferToImageInfo2 {
   4618     VkStructureType   sType;
   4619     const  void *                  pNext;
   4620     VkBuffer                                      srcBuffer;
   4621     VkImage                                       dstImage;
   4622     VkImageLayout                                 dstImageLayout;
   4623     uint32_t                                      regionCount;
   4624     const  VkBufferImageCopy2 *  pRegions;
   4625 } VkCopyBufferToImageInfo2;
   4626 
   4627 typedef struct VkCopyImageToBufferInfo2 {
   4628     VkStructureType   sType;
   4629     const  void *                    pNext;
   4630     VkImage                                         srcImage;
   4631     VkImageLayout                                   srcImageLayout;
   4632     VkBuffer                                        dstBuffer;
   4633     uint32_t                                        regionCount;
   4634     const  VkBufferImageCopy2 *    pRegions;
   4635 } VkCopyImageToBufferInfo2;
   4636 
   4637 typedef struct VkResolveImageInfo2 {
   4638     VkStructureType   sType;
   4639     const  void *                 pNext;
   4640     VkImage                                      srcImage;
   4641     VkImageLayout                                srcImageLayout;
   4642     VkImage                                      dstImage;
   4643     VkImageLayout                                dstImageLayout;
   4644     uint32_t                                     regionCount;
   4645     const  VkImageResolve2 *    pRegions;
   4646 } VkResolveImageInfo2;
   4647 
   4648 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
   4649     VkStructureType sType;
   4650     void *     pNext;
   4651     VkBool32                                         shaderTerminateInvocation;
   4652 } VkPhysicalDeviceShaderTerminateInvocationFeatures;
   4653 
   4654 typedef struct VkMemoryBarrier2 {
   4655     VkStructureType   sType;
   4656     const  void *                             pNext;
   4657     VkPipelineStageFlags2    srcStageMask;
   4658     VkAccessFlags2           srcAccessMask;
   4659     VkPipelineStageFlags2    dstStageMask;
   4660     VkAccessFlags2           dstAccessMask;
   4661 } VkMemoryBarrier2;
   4662 
   4663 typedef struct VkImageMemoryBarrier2 {
   4664     VkStructureType   sType;
   4665     const  void *                             pNext;
   4666     VkPipelineStageFlags2    srcStageMask;
   4667     VkAccessFlags2           srcAccessMask;
   4668     VkPipelineStageFlags2    dstStageMask;
   4669     VkAccessFlags2           dstAccessMask;
   4670     VkImageLayout                            oldLayout;
   4671     VkImageLayout                            newLayout;
   4672     uint32_t                                 srcQueueFamilyIndex;
   4673     uint32_t                                 dstQueueFamilyIndex;
   4674     VkImage                                  image;
   4675     VkImageSubresourceRange                  subresourceRange;
   4676 } VkImageMemoryBarrier2;
   4677 
   4678 typedef struct VkBufferMemoryBarrier2 {
   4679     VkStructureType   sType;
   4680     const  void *                             pNext;
   4681     VkPipelineStageFlags2    srcStageMask;
   4682     VkAccessFlags2           srcAccessMask;
   4683     VkPipelineStageFlags2    dstStageMask;
   4684     VkAccessFlags2           dstAccessMask;
   4685     uint32_t                                 srcQueueFamilyIndex;
   4686     uint32_t                                 dstQueueFamilyIndex;
   4687     VkBuffer                                 buffer;
   4688     VkDeviceSize                             offset;
   4689     VkDeviceSize                             size;
   4690 } VkBufferMemoryBarrier2;
   4691 
   4692 typedef struct VkDependencyInfo {
   4693     VkStructureType   sType;
   4694     const  void *                                                   pNext;
   4695     VkDependencyFlags                              dependencyFlags;
   4696     uint32_t                                       memoryBarrierCount;
   4697     const  VkMemoryBarrier2 *              pMemoryBarriers;
   4698     uint32_t                                       bufferMemoryBarrierCount;
   4699     const  VkBufferMemoryBarrier2 *  pBufferMemoryBarriers;
   4700     uint32_t                                       imageMemoryBarrierCount;
   4701     const  VkImageMemoryBarrier2 *    pImageMemoryBarriers;
   4702 } VkDependencyInfo;
   4703 
   4704 typedef struct VkSemaphoreSubmitInfo {
   4705     VkStructureType             sType;
   4706     const  void *                                                                 pNext;
   4707     VkSemaphore                                                                  semaphore;
   4708     uint64_t                                                                     value;
   4709     VkPipelineStageFlags2                                        stageMask;
   4710     uint32_t                                                                     deviceIndex;
   4711 } VkSemaphoreSubmitInfo;
   4712 
   4713 typedef struct VkSubmitInfo2 {
   4714     VkStructureType                     sType;
   4715     const  void *                                                                 pNext;
   4716     VkSubmitFlags                                                flags;
   4717     uint32_t                                                     waitSemaphoreInfoCount;
   4718     const  VkSemaphoreSubmitInfo *                   pWaitSemaphoreInfos;
   4719     uint32_t                                                     commandBufferInfoCount;
   4720     const  VkCommandBufferSubmitInfo *               pCommandBufferInfos;
   4721     uint32_t                                                     signalSemaphoreInfoCount;
   4722     const  VkSemaphoreSubmitInfo *                 pSignalSemaphoreInfos;
   4723 } VkSubmitInfo2;
   4724 
   4725 typedef struct VkPhysicalDeviceSynchronization2Features {
   4726     VkStructureType   sType;
   4727     void *         pNext;
   4728     VkBool32                             synchronization2;
   4729 } VkPhysicalDeviceSynchronization2Features;
   4730 
   4731 typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
   4732     VkStructureType   sType;
   4733     void *                pNext;
   4734     VkBool32                              shaderIntegerDotProduct;
   4735 } VkPhysicalDeviceShaderIntegerDotProductFeatures;
   4736 
   4737 typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
   4738     VkStructureType   sType;
   4739     void *                pNext;
   4740     VkBool32          integerDotProduct8BitUnsignedAccelerated;
   4741     VkBool32          integerDotProduct8BitSignedAccelerated;
   4742     VkBool32          integerDotProduct8BitMixedSignednessAccelerated;
   4743     VkBool32          integerDotProduct4x8BitPackedUnsignedAccelerated;
   4744     VkBool32          integerDotProduct4x8BitPackedSignedAccelerated;
   4745     VkBool32          integerDotProduct4x8BitPackedMixedSignednessAccelerated;
   4746     VkBool32          integerDotProduct16BitUnsignedAccelerated;
   4747     VkBool32          integerDotProduct16BitSignedAccelerated;
   4748     VkBool32          integerDotProduct16BitMixedSignednessAccelerated;
   4749     VkBool32          integerDotProduct32BitUnsignedAccelerated;
   4750     VkBool32          integerDotProduct32BitSignedAccelerated;
   4751     VkBool32          integerDotProduct32BitMixedSignednessAccelerated;
   4752     VkBool32          integerDotProduct64BitUnsignedAccelerated;
   4753     VkBool32          integerDotProduct64BitSignedAccelerated;
   4754     VkBool32          integerDotProduct64BitMixedSignednessAccelerated;
   4755     VkBool32          integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
   4756     VkBool32          integerDotProductAccumulatingSaturating8BitSignedAccelerated;
   4757     VkBool32          integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
   4758     VkBool32          integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
   4759     VkBool32          integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
   4760     VkBool32          integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
   4761     VkBool32          integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
   4762     VkBool32          integerDotProductAccumulatingSaturating16BitSignedAccelerated;
   4763     VkBool32          integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
   4764     VkBool32          integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
   4765     VkBool32          integerDotProductAccumulatingSaturating32BitSignedAccelerated;
   4766     VkBool32          integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
   4767     VkBool32          integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
   4768     VkBool32          integerDotProductAccumulatingSaturating64BitSignedAccelerated;
   4769     VkBool32          integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
   4770 } VkPhysicalDeviceShaderIntegerDotProductProperties;
   4771 
   4772 typedef struct VkFormatProperties3 {
   4773     VkStructureType   sType;
   4774     void *                             pNext;
   4775     VkFormatFeatureFlags2              linearTilingFeatures;
   4776     VkFormatFeatureFlags2              optimalTilingFeatures;
   4777     VkFormatFeatureFlags2              bufferFeatures;
   4778 } VkFormatProperties3;
   4779 
   4780 typedef struct VkRenderingInfo {
   4781     VkStructureType                    sType;
   4782     const  void *                                                 pNext;
   4783     VkRenderingFlags                                             flags;
   4784     VkRect2D                                                                     renderArea;
   4785     uint32_t                                                                     layerCount;
   4786     uint32_t                                                                     viewMask;
   4787     uint32_t                                                     colorAttachmentCount;
   4788     const  VkRenderingAttachmentInfo *                 pColorAttachments;
   4789     const  VkRenderingAttachmentInfo *                            pDepthAttachment;
   4790     const  VkRenderingAttachmentInfo *                            pStencilAttachment;
   4791 } VkRenderingInfo;
   4792 
   4793 typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
   4794     VkStructureType   sType;
   4795     void *                                 pNext;
   4796     VkBool32                                                                     dynamicRendering;
   4797 } VkPhysicalDeviceDynamicRenderingFeatures;
   4798 
   4799 typedef struct VkCommandBufferInheritanceRenderingInfo {
   4800     VkStructureType   sType;
   4801     const  void *                                                 pNext;
   4802     VkRenderingFlags                                             flags;
   4803     uint32_t                                                                     viewMask;
   4804     uint32_t                                                     colorAttachmentCount;
   4805     const  VkFormat *                                  pColorAttachmentFormats;
   4806     VkFormat                                                                     depthAttachmentFormat;
   4807     VkFormat                                                                     stencilAttachmentFormat;
   4808     VkSampleCountFlagBits                                        rasterizationSamples;
   4809 } VkCommandBufferInheritanceRenderingInfo;
   4810 
   4811 typedef struct VkPhysicalDeviceProperties {
   4812     uint32_t         apiVersion;
   4813     uint32_t         driverVersion;
   4814     uint32_t         vendorID;
   4815     uint32_t         deviceID;
   4816     VkPhysicalDeviceType   deviceType;
   4817     char             deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ];
   4818     uint8_t          pipelineCacheUUID [ VK_UUID_SIZE ];
   4819     VkPhysicalDeviceLimits   limits;
   4820     VkPhysicalDeviceSparseProperties   sparseProperties;
   4821 } VkPhysicalDeviceProperties;
   4822 
   4823 typedef struct VkDeviceCreateInfo {
   4824     VkStructureType   sType;
   4825     const  void *      pNext;
   4826     VkDeviceCreateFlags      flags;
   4827     uint32_t          queueCreateInfoCount;
   4828     const  VkDeviceQueueCreateInfo *  pQueueCreateInfos;
   4829     uint32_t                 enabledLayerCount;
   4830     const  char * const*       ppEnabledLayerNames;
   4831     uint32_t                 enabledExtensionCount;
   4832     const  char * const*       ppEnabledExtensionNames;
   4833     const  VkPhysicalDeviceFeatures *  pEnabledFeatures;
   4834 } VkDeviceCreateInfo;
   4835 
   4836 typedef struct VkPhysicalDeviceMemoryProperties {
   4837     uint32_t                 memoryTypeCount;
   4838     VkMemoryType             memoryTypes [ VK_MAX_MEMORY_TYPES ];
   4839     uint32_t                 memoryHeapCount;
   4840     VkMemoryHeap             memoryHeaps [ VK_MAX_MEMORY_HEAPS ];
   4841 } VkPhysicalDeviceMemoryProperties;
   4842 
   4843 typedef struct VkPhysicalDeviceProperties2 {
   4844     VkStructureType   sType;
   4845     void *                             pNext;
   4846     VkPhysicalDeviceProperties         properties;
   4847 } VkPhysicalDeviceProperties2;
   4848 
   4849 typedef struct VkPhysicalDeviceMemoryProperties2 {
   4850     VkStructureType   sType;
   4851     void *                             pNext;
   4852     VkPhysicalDeviceMemoryProperties   memoryProperties;
   4853 } VkPhysicalDeviceMemoryProperties2;
   4854 
   4855 typedef struct VkFramebufferAttachmentsCreateInfo {
   4856     VkStructureType   sType;
   4857     const  void *                               pNext;
   4858     uint32_t                   attachmentImageInfoCount;
   4859     const  VkFramebufferAttachmentImageInfo *  pAttachmentImageInfos;
   4860 } VkFramebufferAttachmentsCreateInfo;
   4861 
   4862 
   4863 
   4864 #define VK_VERSION_1_0 1
   4865 GLAD_API_CALL int GLAD_VK_VERSION_1_0;
   4866 #define VK_VERSION_1_1 1
   4867 GLAD_API_CALL int GLAD_VK_VERSION_1_1;
   4868 #define VK_VERSION_1_2 1
   4869 GLAD_API_CALL int GLAD_VK_VERSION_1_2;
   4870 #define VK_VERSION_1_3 1
   4871 GLAD_API_CALL int GLAD_VK_VERSION_1_3;
   4872 #define VK_EXT_debug_report 1
   4873 GLAD_API_CALL int GLAD_VK_EXT_debug_report;
   4874 #define VK_KHR_portability_enumeration 1
   4875 GLAD_API_CALL int GLAD_VK_KHR_portability_enumeration;
   4876 #define VK_KHR_surface 1
   4877 GLAD_API_CALL int GLAD_VK_KHR_surface;
   4878 #define VK_KHR_swapchain 1
   4879 GLAD_API_CALL int GLAD_VK_KHR_swapchain;
   4880 
   4881 
   4882 typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex);
   4883 typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex);
   4884 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo * pAllocateInfo, VkCommandBuffer * pCommandBuffers);
   4885 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo * pAllocateInfo, VkDescriptorSet * pDescriptorSets);
   4886 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo * pAllocateInfo, const VkAllocationCallbacks * pAllocator, VkDeviceMemory * pMemory);
   4887 typedef VkResult (GLAD_API_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo);
   4888 typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   4889 typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos);
   4890 typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
   4891 typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos);
   4892 typedef void (GLAD_API_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
   4893 typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, VkSubpassContents contents);
   4894 typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, const VkSubpassBeginInfo * pSubpassBeginInfo);
   4895 typedef void (GLAD_API_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo);
   4896 typedef void (GLAD_API_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);
   4897 typedef void (GLAD_API_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
   4898 typedef void (GLAD_API_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
   4899 typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets);
   4900 typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets, const VkDeviceSize * pSizes, const VkDeviceSize * pStrides);
   4901 typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit * pRegions, VkFilter filter);
   4902 typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo);
   4903 typedef void (GLAD_API_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment * pAttachments, uint32_t rectCount, const VkClearRect * pRects);
   4904 typedef void (GLAD_API_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue * pColor, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
   4905 typedef void (GLAD_API_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue * pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
   4906 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions);
   4907 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo);
   4908 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy * pRegions);
   4909 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo);
   4910 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy * pRegions);
   4911 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo);
   4912 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy * pRegions);
   4913 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo);
   4914 typedef void (GLAD_API_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
   4915 typedef void (GLAD_API_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   4916 typedef void (GLAD_API_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
   4917 typedef void (GLAD_API_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
   4918 typedef void (GLAD_API_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
   4919 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
   4920 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   4921 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   4922 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
   4923 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
   4924 typedef void (GLAD_API_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
   4925 typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
   4926 typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo);
   4927 typedef void (GLAD_API_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
   4928 typedef void (GLAD_API_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
   4929 typedef void (GLAD_API_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
   4930 typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
   4931 typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo * pSubpassBeginInfo, const VkSubpassEndInfo * pSubpassEndInfo);
   4932 typedef void (GLAD_API_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);
   4933 typedef void (GLAD_API_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo);
   4934 typedef void (GLAD_API_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void * pValues);
   4935 typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   4936 typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
   4937 typedef void (GLAD_API_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   4938 typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve * pRegions);
   4939 typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo);
   4940 typedef void (GLAD_API_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants [4]);
   4941 typedef void (GLAD_API_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
   4942 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
   4943 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
   4944 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
   4945 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
   4946 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
   4947 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
   4948 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
   4949 typedef void (GLAD_API_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
   4950 typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
   4951 typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo);
   4952 typedef void (GLAD_API_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
   4953 typedef void (GLAD_API_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
   4954 typedef void (GLAD_API_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
   4955 typedef void (GLAD_API_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
   4956 typedef void (GLAD_API_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
   4957 typedef void (GLAD_API_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors);
   4958 typedef void (GLAD_API_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors);
   4959 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
   4960 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
   4961 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
   4962 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
   4963 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
   4964 typedef void (GLAD_API_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports);
   4965 typedef void (GLAD_API_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports);
   4966 typedef void (GLAD_API_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData);
   4967 typedef void (GLAD_API_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);
   4968 typedef void (GLAD_API_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent * pEvents, const VkDependencyInfo * pDependencyInfos);
   4969 typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
   4970 typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
   4971 typedef VkResult (GLAD_API_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBuffer * pBuffer);
   4972 typedef VkResult (GLAD_API_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBufferView * pView);
   4973 typedef VkResult (GLAD_API_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkCommandPool * pCommandPool);
   4974 typedef VkResult (GLAD_API_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
   4975 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugReportCallbackEXT * pCallback);
   4976 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorPool * pDescriptorPool);
   4977 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorSetLayout * pSetLayout);
   4978 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate);
   4979 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDevice * pDevice);
   4980 typedef VkResult (GLAD_API_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkEvent * pEvent);
   4981 typedef VkResult (GLAD_API_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
   4982 typedef VkResult (GLAD_API_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFramebuffer * pFramebuffer);
   4983 typedef VkResult (GLAD_API_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
   4984 typedef VkResult (GLAD_API_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImage * pImage);
   4985 typedef VkResult (GLAD_API_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImageView * pView);
   4986 typedef VkResult (GLAD_API_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance);
   4987 typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineCache * pPipelineCache);
   4988 typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineLayout * pPipelineLayout);
   4989 typedef VkResult (GLAD_API_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPrivateDataSlot * pPrivateDataSlot);
   4990 typedef VkResult (GLAD_API_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkQueryPool * pQueryPool);
   4991 typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
   4992 typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2 * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
   4993 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSampler * pSampler);
   4994 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSamplerYcbcrConversion * pYcbcrConversion);
   4995 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSemaphore * pSemaphore);
   4996 typedef VkResult (GLAD_API_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkShaderModule * pShaderModule);
   4997 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSwapchainKHR * pSwapchain);
   4998 typedef void (GLAD_API_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char * pLayerPrefix, const char * pMessage);
   4999 typedef void (GLAD_API_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator);
   5000 typedef void (GLAD_API_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator);
   5001 typedef void (GLAD_API_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator);
   5002 typedef void (GLAD_API_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks * pAllocator);
   5003 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator);
   5004 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks * pAllocator);
   5005 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks * pAllocator);
   5006 typedef void (GLAD_API_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks * pAllocator);
   5007 typedef void (GLAD_API_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator);
   5008 typedef void (GLAD_API_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator);
   5009 typedef void (GLAD_API_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator);
   5010 typedef void (GLAD_API_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator);
   5011 typedef void (GLAD_API_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator);
   5012 typedef void (GLAD_API_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks * pAllocator);
   5013 typedef void (GLAD_API_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator);
   5014 typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator);
   5015 typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator);
   5016 typedef void (GLAD_API_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator);
   5017 typedef void (GLAD_API_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator);
   5018 typedef void (GLAD_API_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator);
   5019 typedef void (GLAD_API_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator);
   5020 typedef void (GLAD_API_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks * pAllocator);
   5021 typedef void (GLAD_API_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator);
   5022 typedef void (GLAD_API_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator);
   5023 typedef void (GLAD_API_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator);
   5024 typedef void (GLAD_API_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator);
   5025 typedef VkResult (GLAD_API_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
   5026 typedef VkResult (GLAD_API_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
   5027 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
   5028 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties);
   5029 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
   5030 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t * pPropertyCount, VkLayerProperties * pProperties);
   5031 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t * pApiVersion);
   5032 typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t * pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties);
   5033 typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices);
   5034 typedef VkResult (GLAD_API_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
   5035 typedef void (GLAD_API_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
   5036 typedef VkResult (GLAD_API_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets);
   5037 typedef void (GLAD_API_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator);
   5038 typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
   5039 typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements);
   5040 typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
   5041 typedef uint64_t (GLAD_API_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
   5042 typedef void (GLAD_API_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, VkDescriptorSetLayoutSupport * pSupport);
   5043 typedef void (GLAD_API_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
   5044 typedef void (GLAD_API_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags * pPeerMemoryFeatures);
   5045 typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities);
   5046 typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes);
   5047 typedef void (GLAD_API_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
   5048 typedef void (GLAD_API_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
   5049 typedef void (GLAD_API_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes);
   5050 typedef uint64_t (GLAD_API_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo);
   5051 typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char * pName);
   5052 typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue);
   5053 typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue);
   5054 typedef VkResult (GLAD_API_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
   5055 typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
   5056 typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements);
   5057 typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
   5058 typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements * pSparseMemoryRequirements);
   5059 typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
   5060 typedef void (GLAD_API_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource * pSubresource, VkSubresourceLayout * pLayout);
   5061 typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char * pName);
   5062 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, VkExternalBufferProperties * pExternalBufferProperties);
   5063 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, VkExternalFenceProperties * pExternalFenceProperties);
   5064 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, VkExternalSemaphoreProperties * pExternalSemaphoreProperties);
   5065 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures);
   5066 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures);
   5067 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties);
   5068 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 * pFormatProperties);
   5069 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties * pImageFormatProperties);
   5070 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, VkImageFormatProperties2 * pImageFormatProperties);
   5071 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties);
   5072 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties);
   5073 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pRectCount, VkRect2D * pRects);
   5074 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties);
   5075 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties);
   5076 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties * pQueueFamilyProperties);
   5077 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties2 * pQueueFamilyProperties);
   5078 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t * pPropertyCount, VkSparseImageFormatProperties * pProperties);
   5079 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, uint32_t * pPropertyCount, VkSparseImageFormatProperties2 * pProperties);
   5080 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR * pSurfaceCapabilities);
   5081 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pSurfaceFormatCount, VkSurfaceFormatKHR * pSurfaceFormats);
   5082 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pPresentModeCount, VkPresentModeKHR * pPresentModes);
   5083 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32 * pSupported);
   5084 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t * pToolCount, VkPhysicalDeviceToolProperties * pToolProperties);
   5085 typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData);
   5086 typedef void (GLAD_API_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData);
   5087 typedef VkResult (GLAD_API_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void * pData, VkDeviceSize stride, VkQueryResultFlags flags);
   5088 typedef void (GLAD_API_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity);
   5089 typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t * pValue);
   5090 typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t * pSwapchainImageCount, VkImage * pSwapchainImages);
   5091 typedef VkResult (GLAD_API_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
   5092 typedef VkResult (GLAD_API_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData);
   5093 typedef VkResult (GLAD_API_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches);
   5094 typedef VkResult (GLAD_API_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence);
   5095 typedef VkResult (GLAD_API_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR * pPresentInfo);
   5096 typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence);
   5097 typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence);
   5098 typedef VkResult (GLAD_API_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
   5099 typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
   5100 typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
   5101 typedef VkResult (GLAD_API_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
   5102 typedef VkResult (GLAD_API_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
   5103 typedef VkResult (GLAD_API_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences);
   5104 typedef void (GLAD_API_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
   5105 typedef VkResult (GLAD_API_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
   5106 typedef VkResult (GLAD_API_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
   5107 typedef VkResult (GLAD_API_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo);
   5108 typedef void (GLAD_API_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
   5109 typedef void (GLAD_API_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
   5110 typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData);
   5111 typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet * pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet * pDescriptorCopies);
   5112 typedef VkResult (GLAD_API_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout);
   5113 typedef VkResult (GLAD_API_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout);
   5114 
   5115 GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
   5116 #define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
   5117 GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
   5118 #define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
   5119 GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
   5120 #define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
   5121 GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
   5122 #define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
   5123 GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
   5124 #define vkAllocateMemory glad_vkAllocateMemory
   5125 GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
   5126 #define vkBeginCommandBuffer glad_vkBeginCommandBuffer
   5127 GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
   5128 #define vkBindBufferMemory glad_vkBindBufferMemory
   5129 GLAD_API_CALL PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2;
   5130 #define vkBindBufferMemory2 glad_vkBindBufferMemory2
   5131 GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
   5132 #define vkBindImageMemory glad_vkBindImageMemory
   5133 GLAD_API_CALL PFN_vkBindImageMemory2 glad_vkBindImageMemory2;
   5134 #define vkBindImageMemory2 glad_vkBindImageMemory2
   5135 GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
   5136 #define vkCmdBeginQuery glad_vkCmdBeginQuery
   5137 GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
   5138 #define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
   5139 GLAD_API_CALL PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2;
   5140 #define vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2
   5141 GLAD_API_CALL PFN_vkCmdBeginRendering glad_vkCmdBeginRendering;
   5142 #define vkCmdBeginRendering glad_vkCmdBeginRendering
   5143 GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
   5144 #define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
   5145 GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
   5146 #define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
   5147 GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
   5148 #define vkCmdBindPipeline glad_vkCmdBindPipeline
   5149 GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
   5150 #define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
   5151 GLAD_API_CALL PFN_vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2;
   5152 #define vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2
   5153 GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
   5154 #define vkCmdBlitImage glad_vkCmdBlitImage
   5155 GLAD_API_CALL PFN_vkCmdBlitImage2 glad_vkCmdBlitImage2;
   5156 #define vkCmdBlitImage2 glad_vkCmdBlitImage2
   5157 GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
   5158 #define vkCmdClearAttachments glad_vkCmdClearAttachments
   5159 GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
   5160 #define vkCmdClearColorImage glad_vkCmdClearColorImage
   5161 GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
   5162 #define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
   5163 GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
   5164 #define vkCmdCopyBuffer glad_vkCmdCopyBuffer
   5165 GLAD_API_CALL PFN_vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2;
   5166 #define vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2
   5167 GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
   5168 #define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
   5169 GLAD_API_CALL PFN_vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2;
   5170 #define vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2
   5171 GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
   5172 #define vkCmdCopyImage glad_vkCmdCopyImage
   5173 GLAD_API_CALL PFN_vkCmdCopyImage2 glad_vkCmdCopyImage2;
   5174 #define vkCmdCopyImage2 glad_vkCmdCopyImage2
   5175 GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
   5176 #define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
   5177 GLAD_API_CALL PFN_vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2;
   5178 #define vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2
   5179 GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
   5180 #define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
   5181 GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
   5182 #define vkCmdDispatch glad_vkCmdDispatch
   5183 GLAD_API_CALL PFN_vkCmdDispatchBase glad_vkCmdDispatchBase;
   5184 #define vkCmdDispatchBase glad_vkCmdDispatchBase
   5185 GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
   5186 #define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
   5187 GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
   5188 #define vkCmdDraw glad_vkCmdDraw
   5189 GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
   5190 #define vkCmdDrawIndexed glad_vkCmdDrawIndexed
   5191 GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
   5192 #define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
   5193 GLAD_API_CALL PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount;
   5194 #define vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount
   5195 GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
   5196 #define vkCmdDrawIndirect glad_vkCmdDrawIndirect
   5197 GLAD_API_CALL PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount;
   5198 #define vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount
   5199 GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
   5200 #define vkCmdEndQuery glad_vkCmdEndQuery
   5201 GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
   5202 #define vkCmdEndRenderPass glad_vkCmdEndRenderPass
   5203 GLAD_API_CALL PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2;
   5204 #define vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2
   5205 GLAD_API_CALL PFN_vkCmdEndRendering glad_vkCmdEndRendering;
   5206 #define vkCmdEndRendering glad_vkCmdEndRendering
   5207 GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
   5208 #define vkCmdExecuteCommands glad_vkCmdExecuteCommands
   5209 GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
   5210 #define vkCmdFillBuffer glad_vkCmdFillBuffer
   5211 GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
   5212 #define vkCmdNextSubpass glad_vkCmdNextSubpass
   5213 GLAD_API_CALL PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2;
   5214 #define vkCmdNextSubpass2 glad_vkCmdNextSubpass2
   5215 GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
   5216 #define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
   5217 GLAD_API_CALL PFN_vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2;
   5218 #define vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2
   5219 GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
   5220 #define vkCmdPushConstants glad_vkCmdPushConstants
   5221 GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
   5222 #define vkCmdResetEvent glad_vkCmdResetEvent
   5223 GLAD_API_CALL PFN_vkCmdResetEvent2 glad_vkCmdResetEvent2;
   5224 #define vkCmdResetEvent2 glad_vkCmdResetEvent2
   5225 GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
   5226 #define vkCmdResetQueryPool glad_vkCmdResetQueryPool
   5227 GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
   5228 #define vkCmdResolveImage glad_vkCmdResolveImage
   5229 GLAD_API_CALL PFN_vkCmdResolveImage2 glad_vkCmdResolveImage2;
   5230 #define vkCmdResolveImage2 glad_vkCmdResolveImage2
   5231 GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
   5232 #define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
   5233 GLAD_API_CALL PFN_vkCmdSetCullMode glad_vkCmdSetCullMode;
   5234 #define vkCmdSetCullMode glad_vkCmdSetCullMode
   5235 GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
   5236 #define vkCmdSetDepthBias glad_vkCmdSetDepthBias
   5237 GLAD_API_CALL PFN_vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable;
   5238 #define vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable
   5239 GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
   5240 #define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
   5241 GLAD_API_CALL PFN_vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable;
   5242 #define vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable
   5243 GLAD_API_CALL PFN_vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp;
   5244 #define vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp
   5245 GLAD_API_CALL PFN_vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable;
   5246 #define vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable
   5247 GLAD_API_CALL PFN_vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable;
   5248 #define vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable
   5249 GLAD_API_CALL PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask;
   5250 #define vkCmdSetDeviceMask glad_vkCmdSetDeviceMask
   5251 GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
   5252 #define vkCmdSetEvent glad_vkCmdSetEvent
   5253 GLAD_API_CALL PFN_vkCmdSetEvent2 glad_vkCmdSetEvent2;
   5254 #define vkCmdSetEvent2 glad_vkCmdSetEvent2
   5255 GLAD_API_CALL PFN_vkCmdSetFrontFace glad_vkCmdSetFrontFace;
   5256 #define vkCmdSetFrontFace glad_vkCmdSetFrontFace
   5257 GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
   5258 #define vkCmdSetLineWidth glad_vkCmdSetLineWidth
   5259 GLAD_API_CALL PFN_vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable;
   5260 #define vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable
   5261 GLAD_API_CALL PFN_vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology;
   5262 #define vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology
   5263 GLAD_API_CALL PFN_vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable;
   5264 #define vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable
   5265 GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
   5266 #define vkCmdSetScissor glad_vkCmdSetScissor
   5267 GLAD_API_CALL PFN_vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount;
   5268 #define vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount
   5269 GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
   5270 #define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
   5271 GLAD_API_CALL PFN_vkCmdSetStencilOp glad_vkCmdSetStencilOp;
   5272 #define vkCmdSetStencilOp glad_vkCmdSetStencilOp
   5273 GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
   5274 #define vkCmdSetStencilReference glad_vkCmdSetStencilReference
   5275 GLAD_API_CALL PFN_vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable;
   5276 #define vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable
   5277 GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
   5278 #define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
   5279 GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
   5280 #define vkCmdSetViewport glad_vkCmdSetViewport
   5281 GLAD_API_CALL PFN_vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount;
   5282 #define vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount
   5283 GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
   5284 #define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
   5285 GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
   5286 #define vkCmdWaitEvents glad_vkCmdWaitEvents
   5287 GLAD_API_CALL PFN_vkCmdWaitEvents2 glad_vkCmdWaitEvents2;
   5288 #define vkCmdWaitEvents2 glad_vkCmdWaitEvents2
   5289 GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
   5290 #define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
   5291 GLAD_API_CALL PFN_vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2;
   5292 #define vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2
   5293 GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
   5294 #define vkCreateBuffer glad_vkCreateBuffer
   5295 GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
   5296 #define vkCreateBufferView glad_vkCreateBufferView
   5297 GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
   5298 #define vkCreateCommandPool glad_vkCreateCommandPool
   5299 GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
   5300 #define vkCreateComputePipelines glad_vkCreateComputePipelines
   5301 GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
   5302 #define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
   5303 GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
   5304 #define vkCreateDescriptorPool glad_vkCreateDescriptorPool
   5305 GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
   5306 #define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
   5307 GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate;
   5308 #define vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate
   5309 GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
   5310 #define vkCreateDevice glad_vkCreateDevice
   5311 GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
   5312 #define vkCreateEvent glad_vkCreateEvent
   5313 GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
   5314 #define vkCreateFence glad_vkCreateFence
   5315 GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
   5316 #define vkCreateFramebuffer glad_vkCreateFramebuffer
   5317 GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
   5318 #define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
   5319 GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
   5320 #define vkCreateImage glad_vkCreateImage
   5321 GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
   5322 #define vkCreateImageView glad_vkCreateImageView
   5323 GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
   5324 #define vkCreateInstance glad_vkCreateInstance
   5325 GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
   5326 #define vkCreatePipelineCache glad_vkCreatePipelineCache
   5327 GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
   5328 #define vkCreatePipelineLayout glad_vkCreatePipelineLayout
   5329 GLAD_API_CALL PFN_vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot;
   5330 #define vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot
   5331 GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
   5332 #define vkCreateQueryPool glad_vkCreateQueryPool
   5333 GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
   5334 #define vkCreateRenderPass glad_vkCreateRenderPass
   5335 GLAD_API_CALL PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2;
   5336 #define vkCreateRenderPass2 glad_vkCreateRenderPass2
   5337 GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
   5338 #define vkCreateSampler glad_vkCreateSampler
   5339 GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion;
   5340 #define vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion
   5341 GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
   5342 #define vkCreateSemaphore glad_vkCreateSemaphore
   5343 GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
   5344 #define vkCreateShaderModule glad_vkCreateShaderModule
   5345 GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
   5346 #define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
   5347 GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
   5348 #define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
   5349 GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
   5350 #define vkDestroyBuffer glad_vkDestroyBuffer
   5351 GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
   5352 #define vkDestroyBufferView glad_vkDestroyBufferView
   5353 GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
   5354 #define vkDestroyCommandPool glad_vkDestroyCommandPool
   5355 GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
   5356 #define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
   5357 GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
   5358 #define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
   5359 GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
   5360 #define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
   5361 GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate;
   5362 #define vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate
   5363 GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
   5364 #define vkDestroyDevice glad_vkDestroyDevice
   5365 GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
   5366 #define vkDestroyEvent glad_vkDestroyEvent
   5367 GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
   5368 #define vkDestroyFence glad_vkDestroyFence
   5369 GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
   5370 #define vkDestroyFramebuffer glad_vkDestroyFramebuffer
   5371 GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
   5372 #define vkDestroyImage glad_vkDestroyImage
   5373 GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
   5374 #define vkDestroyImageView glad_vkDestroyImageView
   5375 GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
   5376 #define vkDestroyInstance glad_vkDestroyInstance
   5377 GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
   5378 #define vkDestroyPipeline glad_vkDestroyPipeline
   5379 GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
   5380 #define vkDestroyPipelineCache glad_vkDestroyPipelineCache
   5381 GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
   5382 #define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
   5383 GLAD_API_CALL PFN_vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot;
   5384 #define vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot
   5385 GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
   5386 #define vkDestroyQueryPool glad_vkDestroyQueryPool
   5387 GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
   5388 #define vkDestroyRenderPass glad_vkDestroyRenderPass
   5389 GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
   5390 #define vkDestroySampler glad_vkDestroySampler
   5391 GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion;
   5392 #define vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion
   5393 GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
   5394 #define vkDestroySemaphore glad_vkDestroySemaphore
   5395 GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
   5396 #define vkDestroyShaderModule glad_vkDestroyShaderModule
   5397 GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
   5398 #define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
   5399 GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
   5400 #define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
   5401 GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
   5402 #define vkDeviceWaitIdle glad_vkDeviceWaitIdle
   5403 GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
   5404 #define vkEndCommandBuffer glad_vkEndCommandBuffer
   5405 GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
   5406 #define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
   5407 GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
   5408 #define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
   5409 GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
   5410 #define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
   5411 GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
   5412 #define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
   5413 GLAD_API_CALL PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion;
   5414 #define vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion
   5415 GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups;
   5416 #define vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups
   5417 GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
   5418 #define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
   5419 GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
   5420 #define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
   5421 GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
   5422 #define vkFreeCommandBuffers glad_vkFreeCommandBuffers
   5423 GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
   5424 #define vkFreeDescriptorSets glad_vkFreeDescriptorSets
   5425 GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
   5426 #define vkFreeMemory glad_vkFreeMemory
   5427 GLAD_API_CALL PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress;
   5428 #define vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress
   5429 GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
   5430 #define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
   5431 GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2;
   5432 #define vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2
   5433 GLAD_API_CALL PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress;
   5434 #define vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress
   5435 GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport;
   5436 #define vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport
   5437 GLAD_API_CALL PFN_vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements;
   5438 #define vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements
   5439 GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures;
   5440 #define vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures
   5441 GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
   5442 #define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
   5443 GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
   5444 #define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
   5445 GLAD_API_CALL PFN_vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements;
   5446 #define vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements
   5447 GLAD_API_CALL PFN_vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements;
   5448 #define vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements
   5449 GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
   5450 #define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
   5451 GLAD_API_CALL PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress;
   5452 #define vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress
   5453 GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
   5454 #define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
   5455 GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
   5456 #define vkGetDeviceQueue glad_vkGetDeviceQueue
   5457 GLAD_API_CALL PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2;
   5458 #define vkGetDeviceQueue2 glad_vkGetDeviceQueue2
   5459 GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
   5460 #define vkGetEventStatus glad_vkGetEventStatus
   5461 GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
   5462 #define vkGetFenceStatus glad_vkGetFenceStatus
   5463 GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
   5464 #define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
   5465 GLAD_API_CALL PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2;
   5466 #define vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2
   5467 GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
   5468 #define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
   5469 GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2;
   5470 #define vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2
   5471 GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
   5472 #define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
   5473 GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
   5474 #define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
   5475 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties;
   5476 #define vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties
   5477 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties;
   5478 #define vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties
   5479 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties;
   5480 #define vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties
   5481 GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
   5482 #define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
   5483 GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2;
   5484 #define vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2
   5485 GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
   5486 #define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
   5487 GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2;
   5488 #define vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2
   5489 GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
   5490 #define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
   5491 GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2;
   5492 #define vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2
   5493 GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
   5494 #define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
   5495 GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2;
   5496 #define vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2
   5497 GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
   5498 #define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
   5499 GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
   5500 #define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
   5501 GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2;
   5502 #define vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2
   5503 GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
   5504 #define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
   5505 GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2;
   5506 #define vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2
   5507 GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
   5508 #define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
   5509 GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2;
   5510 #define vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2
   5511 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
   5512 #define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
   5513 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
   5514 #define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
   5515 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
   5516 #define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
   5517 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
   5518 #define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
   5519 GLAD_API_CALL PFN_vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties;
   5520 #define vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties
   5521 GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
   5522 #define vkGetPipelineCacheData glad_vkGetPipelineCacheData
   5523 GLAD_API_CALL PFN_vkGetPrivateData glad_vkGetPrivateData;
   5524 #define vkGetPrivateData glad_vkGetPrivateData
   5525 GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
   5526 #define vkGetQueryPoolResults glad_vkGetQueryPoolResults
   5527 GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
   5528 #define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
   5529 GLAD_API_CALL PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue;
   5530 #define vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue
   5531 GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
   5532 #define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
   5533 GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
   5534 #define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
   5535 GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
   5536 #define vkMapMemory glad_vkMapMemory
   5537 GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
   5538 #define vkMergePipelineCaches glad_vkMergePipelineCaches
   5539 GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
   5540 #define vkQueueBindSparse glad_vkQueueBindSparse
   5541 GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
   5542 #define vkQueuePresentKHR glad_vkQueuePresentKHR
   5543 GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
   5544 #define vkQueueSubmit glad_vkQueueSubmit
   5545 GLAD_API_CALL PFN_vkQueueSubmit2 glad_vkQueueSubmit2;
   5546 #define vkQueueSubmit2 glad_vkQueueSubmit2
   5547 GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
   5548 #define vkQueueWaitIdle glad_vkQueueWaitIdle
   5549 GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
   5550 #define vkResetCommandBuffer glad_vkResetCommandBuffer
   5551 GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
   5552 #define vkResetCommandPool glad_vkResetCommandPool
   5553 GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
   5554 #define vkResetDescriptorPool glad_vkResetDescriptorPool
   5555 GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
   5556 #define vkResetEvent glad_vkResetEvent
   5557 GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
   5558 #define vkResetFences glad_vkResetFences
   5559 GLAD_API_CALL PFN_vkResetQueryPool glad_vkResetQueryPool;
   5560 #define vkResetQueryPool glad_vkResetQueryPool
   5561 GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
   5562 #define vkSetEvent glad_vkSetEvent
   5563 GLAD_API_CALL PFN_vkSetPrivateData glad_vkSetPrivateData;
   5564 #define vkSetPrivateData glad_vkSetPrivateData
   5565 GLAD_API_CALL PFN_vkSignalSemaphore glad_vkSignalSemaphore;
   5566 #define vkSignalSemaphore glad_vkSignalSemaphore
   5567 GLAD_API_CALL PFN_vkTrimCommandPool glad_vkTrimCommandPool;
   5568 #define vkTrimCommandPool glad_vkTrimCommandPool
   5569 GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
   5570 #define vkUnmapMemory glad_vkUnmapMemory
   5571 GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate;
   5572 #define vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate
   5573 GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
   5574 #define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
   5575 GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
   5576 #define vkWaitForFences glad_vkWaitForFences
   5577 GLAD_API_CALL PFN_vkWaitSemaphores glad_vkWaitSemaphores;
   5578 #define vkWaitSemaphores glad_vkWaitSemaphores
   5579 
   5580 
   5581 
   5582 
   5583 
   5584 GLAD_API_CALL int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr);
   5585 GLAD_API_CALL int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load);
   5586 
   5587 
   5588 
   5589 #ifdef __cplusplus
   5590 }
   5591 #endif
   5592 #endif
   5593 
   5594 /* Source */
   5595 #ifdef GLAD_VULKAN_IMPLEMENTATION
   5596 #include <stdio.h>
   5597 #include <stdlib.h>
   5598 #include <string.h>
   5599 
   5600 #ifndef GLAD_IMPL_UTIL_C_
   5601 #define GLAD_IMPL_UTIL_C_
   5602 
   5603 #ifdef _MSC_VER
   5604 #define GLAD_IMPL_UTIL_SSCANF sscanf_s
   5605 #else
   5606 #define GLAD_IMPL_UTIL_SSCANF sscanf
   5607 #endif
   5608 
   5609 #endif /* GLAD_IMPL_UTIL_C_ */
   5610 
   5611 #ifdef __cplusplus
   5612 extern "C" {
   5613 #endif
   5614 
   5615 
   5616 
   5617 int GLAD_VK_VERSION_1_0 = 0;
   5618 int GLAD_VK_VERSION_1_1 = 0;
   5619 int GLAD_VK_VERSION_1_2 = 0;
   5620 int GLAD_VK_VERSION_1_3 = 0;
   5621 int GLAD_VK_EXT_debug_report = 0;
   5622 int GLAD_VK_KHR_portability_enumeration = 0;
   5623 int GLAD_VK_KHR_surface = 0;
   5624 int GLAD_VK_KHR_swapchain = 0;
   5625 
   5626 
   5627 
   5628 PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR = NULL;
   5629 PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR = NULL;
   5630 PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers = NULL;
   5631 PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets = NULL;
   5632 PFN_vkAllocateMemory glad_vkAllocateMemory = NULL;
   5633 PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer = NULL;
   5634 PFN_vkBindBufferMemory glad_vkBindBufferMemory = NULL;
   5635 PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2 = NULL;
   5636 PFN_vkBindImageMemory glad_vkBindImageMemory = NULL;
   5637 PFN_vkBindImageMemory2 glad_vkBindImageMemory2 = NULL;
   5638 PFN_vkCmdBeginQuery glad_vkCmdBeginQuery = NULL;
   5639 PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass = NULL;
   5640 PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2 = NULL;
   5641 PFN_vkCmdBeginRendering glad_vkCmdBeginRendering = NULL;
   5642 PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets = NULL;
   5643 PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer = NULL;
   5644 PFN_vkCmdBindPipeline glad_vkCmdBindPipeline = NULL;
   5645 PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers = NULL;
   5646 PFN_vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2 = NULL;
   5647 PFN_vkCmdBlitImage glad_vkCmdBlitImage = NULL;
   5648 PFN_vkCmdBlitImage2 glad_vkCmdBlitImage2 = NULL;
   5649 PFN_vkCmdClearAttachments glad_vkCmdClearAttachments = NULL;
   5650 PFN_vkCmdClearColorImage glad_vkCmdClearColorImage = NULL;
   5651 PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage = NULL;
   5652 PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer = NULL;
   5653 PFN_vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2 = NULL;
   5654 PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage = NULL;
   5655 PFN_vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2 = NULL;
   5656 PFN_vkCmdCopyImage glad_vkCmdCopyImage = NULL;
   5657 PFN_vkCmdCopyImage2 glad_vkCmdCopyImage2 = NULL;
   5658 PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer = NULL;
   5659 PFN_vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2 = NULL;
   5660 PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults = NULL;
   5661 PFN_vkCmdDispatch glad_vkCmdDispatch = NULL;
   5662 PFN_vkCmdDispatchBase glad_vkCmdDispatchBase = NULL;
   5663 PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect = NULL;
   5664 PFN_vkCmdDraw glad_vkCmdDraw = NULL;
   5665 PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed = NULL;
   5666 PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect = NULL;
   5667 PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount = NULL;
   5668 PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect = NULL;
   5669 PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount = NULL;
   5670 PFN_vkCmdEndQuery glad_vkCmdEndQuery = NULL;
   5671 PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass = NULL;
   5672 PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2 = NULL;
   5673 PFN_vkCmdEndRendering glad_vkCmdEndRendering = NULL;
   5674 PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands = NULL;
   5675 PFN_vkCmdFillBuffer glad_vkCmdFillBuffer = NULL;
   5676 PFN_vkCmdNextSubpass glad_vkCmdNextSubpass = NULL;
   5677 PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2 = NULL;
   5678 PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier = NULL;
   5679 PFN_vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2 = NULL;
   5680 PFN_vkCmdPushConstants glad_vkCmdPushConstants = NULL;
   5681 PFN_vkCmdResetEvent glad_vkCmdResetEvent = NULL;
   5682 PFN_vkCmdResetEvent2 glad_vkCmdResetEvent2 = NULL;
   5683 PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool = NULL;
   5684 PFN_vkCmdResolveImage glad_vkCmdResolveImage = NULL;
   5685 PFN_vkCmdResolveImage2 glad_vkCmdResolveImage2 = NULL;
   5686 PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants = NULL;
   5687 PFN_vkCmdSetCullMode glad_vkCmdSetCullMode = NULL;
   5688 PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias = NULL;
   5689 PFN_vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable = NULL;
   5690 PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds = NULL;
   5691 PFN_vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable = NULL;
   5692 PFN_vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp = NULL;
   5693 PFN_vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable = NULL;
   5694 PFN_vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable = NULL;
   5695 PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask = NULL;
   5696 PFN_vkCmdSetEvent glad_vkCmdSetEvent = NULL;
   5697 PFN_vkCmdSetEvent2 glad_vkCmdSetEvent2 = NULL;
   5698 PFN_vkCmdSetFrontFace glad_vkCmdSetFrontFace = NULL;
   5699 PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth = NULL;
   5700 PFN_vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable = NULL;
   5701 PFN_vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology = NULL;
   5702 PFN_vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable = NULL;
   5703 PFN_vkCmdSetScissor glad_vkCmdSetScissor = NULL;
   5704 PFN_vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount = NULL;
   5705 PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask = NULL;
   5706 PFN_vkCmdSetStencilOp glad_vkCmdSetStencilOp = NULL;
   5707 PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference = NULL;
   5708 PFN_vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable = NULL;
   5709 PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask = NULL;
   5710 PFN_vkCmdSetViewport glad_vkCmdSetViewport = NULL;
   5711 PFN_vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount = NULL;
   5712 PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer = NULL;
   5713 PFN_vkCmdWaitEvents glad_vkCmdWaitEvents = NULL;
   5714 PFN_vkCmdWaitEvents2 glad_vkCmdWaitEvents2 = NULL;
   5715 PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp = NULL;
   5716 PFN_vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2 = NULL;
   5717 PFN_vkCreateBuffer glad_vkCreateBuffer = NULL;
   5718 PFN_vkCreateBufferView glad_vkCreateBufferView = NULL;
   5719 PFN_vkCreateCommandPool glad_vkCreateCommandPool = NULL;
   5720 PFN_vkCreateComputePipelines glad_vkCreateComputePipelines = NULL;
   5721 PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT = NULL;
   5722 PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool = NULL;
   5723 PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout = NULL;
   5724 PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate = NULL;
   5725 PFN_vkCreateDevice glad_vkCreateDevice = NULL;
   5726 PFN_vkCreateEvent glad_vkCreateEvent = NULL;
   5727 PFN_vkCreateFence glad_vkCreateFence = NULL;
   5728 PFN_vkCreateFramebuffer glad_vkCreateFramebuffer = NULL;
   5729 PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines = NULL;
   5730 PFN_vkCreateImage glad_vkCreateImage = NULL;
   5731 PFN_vkCreateImageView glad_vkCreateImageView = NULL;
   5732 PFN_vkCreateInstance glad_vkCreateInstance = NULL;
   5733 PFN_vkCreatePipelineCache glad_vkCreatePipelineCache = NULL;
   5734 PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout = NULL;
   5735 PFN_vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot = NULL;
   5736 PFN_vkCreateQueryPool glad_vkCreateQueryPool = NULL;
   5737 PFN_vkCreateRenderPass glad_vkCreateRenderPass = NULL;
   5738 PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2 = NULL;
   5739 PFN_vkCreateSampler glad_vkCreateSampler = NULL;
   5740 PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion = NULL;
   5741 PFN_vkCreateSemaphore glad_vkCreateSemaphore = NULL;
   5742 PFN_vkCreateShaderModule glad_vkCreateShaderModule = NULL;
   5743 PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR = NULL;
   5744 PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT = NULL;
   5745 PFN_vkDestroyBuffer glad_vkDestroyBuffer = NULL;
   5746 PFN_vkDestroyBufferView glad_vkDestroyBufferView = NULL;
   5747 PFN_vkDestroyCommandPool glad_vkDestroyCommandPool = NULL;
   5748 PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT = NULL;
   5749 PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool = NULL;
   5750 PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout = NULL;
   5751 PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate = NULL;
   5752 PFN_vkDestroyDevice glad_vkDestroyDevice = NULL;
   5753 PFN_vkDestroyEvent glad_vkDestroyEvent = NULL;
   5754 PFN_vkDestroyFence glad_vkDestroyFence = NULL;
   5755 PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer = NULL;
   5756 PFN_vkDestroyImage glad_vkDestroyImage = NULL;
   5757 PFN_vkDestroyImageView glad_vkDestroyImageView = NULL;
   5758 PFN_vkDestroyInstance glad_vkDestroyInstance = NULL;
   5759 PFN_vkDestroyPipeline glad_vkDestroyPipeline = NULL;
   5760 PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache = NULL;
   5761 PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout = NULL;
   5762 PFN_vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot = NULL;
   5763 PFN_vkDestroyQueryPool glad_vkDestroyQueryPool = NULL;
   5764 PFN_vkDestroyRenderPass glad_vkDestroyRenderPass = NULL;
   5765 PFN_vkDestroySampler glad_vkDestroySampler = NULL;
   5766 PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion = NULL;
   5767 PFN_vkDestroySemaphore glad_vkDestroySemaphore = NULL;
   5768 PFN_vkDestroyShaderModule glad_vkDestroyShaderModule = NULL;
   5769 PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR = NULL;
   5770 PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR = NULL;
   5771 PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle = NULL;
   5772 PFN_vkEndCommandBuffer glad_vkEndCommandBuffer = NULL;
   5773 PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties = NULL;
   5774 PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties = NULL;
   5775 PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties = NULL;
   5776 PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties = NULL;
   5777 PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion = NULL;
   5778 PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups = NULL;
   5779 PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices = NULL;
   5780 PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges = NULL;
   5781 PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers = NULL;
   5782 PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets = NULL;
   5783 PFN_vkFreeMemory glad_vkFreeMemory = NULL;
   5784 PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress = NULL;
   5785 PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements = NULL;
   5786 PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2 = NULL;
   5787 PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress = NULL;
   5788 PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport = NULL;
   5789 PFN_vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements = NULL;
   5790 PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures = NULL;
   5791 PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR = NULL;
   5792 PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR = NULL;
   5793 PFN_vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements = NULL;
   5794 PFN_vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements = NULL;
   5795 PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment = NULL;
   5796 PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress = NULL;
   5797 PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr = NULL;
   5798 PFN_vkGetDeviceQueue glad_vkGetDeviceQueue = NULL;
   5799 PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2 = NULL;
   5800 PFN_vkGetEventStatus glad_vkGetEventStatus = NULL;
   5801 PFN_vkGetFenceStatus glad_vkGetFenceStatus = NULL;
   5802 PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements = NULL;
   5803 PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2 = NULL;
   5804 PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements = NULL;
   5805 PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2 = NULL;
   5806 PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout = NULL;
   5807 PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr = NULL;
   5808 PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties = NULL;
   5809 PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties = NULL;
   5810 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties = NULL;
   5811 PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures = NULL;
   5812 PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2 = NULL;
   5813 PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties = NULL;
   5814 PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2 = NULL;
   5815 PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties = NULL;
   5816 PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2 = NULL;
   5817 PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties = NULL;
   5818 PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2 = NULL;
   5819 PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR = NULL;
   5820 PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties = NULL;
   5821 PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2 = NULL;
   5822 PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties = NULL;
   5823 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2 = NULL;
   5824 PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties = NULL;
   5825 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = NULL;
   5826 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = NULL;
   5827 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR = NULL;
   5828 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR = NULL;
   5829 PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR = NULL;
   5830 PFN_vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties = NULL;
   5831 PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData = NULL;
   5832 PFN_vkGetPrivateData glad_vkGetPrivateData = NULL;
   5833 PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults = NULL;
   5834 PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity = NULL;
   5835 PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue = NULL;
   5836 PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR = NULL;
   5837 PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges = NULL;
   5838 PFN_vkMapMemory glad_vkMapMemory = NULL;
   5839 PFN_vkMergePipelineCaches glad_vkMergePipelineCaches = NULL;
   5840 PFN_vkQueueBindSparse glad_vkQueueBindSparse = NULL;
   5841 PFN_vkQueuePresentKHR glad_vkQueuePresentKHR = NULL;
   5842 PFN_vkQueueSubmit glad_vkQueueSubmit = NULL;
   5843 PFN_vkQueueSubmit2 glad_vkQueueSubmit2 = NULL;
   5844 PFN_vkQueueWaitIdle glad_vkQueueWaitIdle = NULL;
   5845 PFN_vkResetCommandBuffer glad_vkResetCommandBuffer = NULL;
   5846 PFN_vkResetCommandPool glad_vkResetCommandPool = NULL;
   5847 PFN_vkResetDescriptorPool glad_vkResetDescriptorPool = NULL;
   5848 PFN_vkResetEvent glad_vkResetEvent = NULL;
   5849 PFN_vkResetFences glad_vkResetFences = NULL;
   5850 PFN_vkResetQueryPool glad_vkResetQueryPool = NULL;
   5851 PFN_vkSetEvent glad_vkSetEvent = NULL;
   5852 PFN_vkSetPrivateData glad_vkSetPrivateData = NULL;
   5853 PFN_vkSignalSemaphore glad_vkSignalSemaphore = NULL;
   5854 PFN_vkTrimCommandPool glad_vkTrimCommandPool = NULL;
   5855 PFN_vkUnmapMemory glad_vkUnmapMemory = NULL;
   5856 PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate = NULL;
   5857 PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets = NULL;
   5858 PFN_vkWaitForFences glad_vkWaitForFences = NULL;
   5859 PFN_vkWaitSemaphores glad_vkWaitSemaphores = NULL;
   5860 
   5861 
   5862 static void glad_vk_load_VK_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
   5863     if(!GLAD_VK_VERSION_1_0) return;
   5864     glad_vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers) load(userptr, "vkAllocateCommandBuffers");
   5865     glad_vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets) load(userptr, "vkAllocateDescriptorSets");
   5866     glad_vkAllocateMemory = (PFN_vkAllocateMemory) load(userptr, "vkAllocateMemory");
   5867     glad_vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer) load(userptr, "vkBeginCommandBuffer");
   5868     glad_vkBindBufferMemory = (PFN_vkBindBufferMemory) load(userptr, "vkBindBufferMemory");
   5869     glad_vkBindImageMemory = (PFN_vkBindImageMemory) load(userptr, "vkBindImageMemory");
   5870     glad_vkCmdBeginQuery = (PFN_vkCmdBeginQuery) load(userptr, "vkCmdBeginQuery");
   5871     glad_vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass) load(userptr, "vkCmdBeginRenderPass");
   5872     glad_vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) load(userptr, "vkCmdBindDescriptorSets");
   5873     glad_vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) load(userptr, "vkCmdBindIndexBuffer");
   5874     glad_vkCmdBindPipeline = (PFN_vkCmdBindPipeline) load(userptr, "vkCmdBindPipeline");
   5875     glad_vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) load(userptr, "vkCmdBindVertexBuffers");
   5876     glad_vkCmdBlitImage = (PFN_vkCmdBlitImage) load(userptr, "vkCmdBlitImage");
   5877     glad_vkCmdClearAttachments = (PFN_vkCmdClearAttachments) load(userptr, "vkCmdClearAttachments");
   5878     glad_vkCmdClearColorImage = (PFN_vkCmdClearColorImage) load(userptr, "vkCmdClearColorImage");
   5879     glad_vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage) load(userptr, "vkCmdClearDepthStencilImage");
   5880     glad_vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer) load(userptr, "vkCmdCopyBuffer");
   5881     glad_vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage) load(userptr, "vkCmdCopyBufferToImage");
   5882     glad_vkCmdCopyImage = (PFN_vkCmdCopyImage) load(userptr, "vkCmdCopyImage");
   5883     glad_vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer) load(userptr, "vkCmdCopyImageToBuffer");
   5884     glad_vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults) load(userptr, "vkCmdCopyQueryPoolResults");
   5885     glad_vkCmdDispatch = (PFN_vkCmdDispatch) load(userptr, "vkCmdDispatch");
   5886     glad_vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect) load(userptr, "vkCmdDispatchIndirect");
   5887     glad_vkCmdDraw = (PFN_vkCmdDraw) load(userptr, "vkCmdDraw");
   5888     glad_vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed) load(userptr, "vkCmdDrawIndexed");
   5889     glad_vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect) load(userptr, "vkCmdDrawIndexedIndirect");
   5890     glad_vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect) load(userptr, "vkCmdDrawIndirect");
   5891     glad_vkCmdEndQuery = (PFN_vkCmdEndQuery) load(userptr, "vkCmdEndQuery");
   5892     glad_vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass) load(userptr, "vkCmdEndRenderPass");
   5893     glad_vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands) load(userptr, "vkCmdExecuteCommands");
   5894     glad_vkCmdFillBuffer = (PFN_vkCmdFillBuffer) load(userptr, "vkCmdFillBuffer");
   5895     glad_vkCmdNextSubpass = (PFN_vkCmdNextSubpass) load(userptr, "vkCmdNextSubpass");
   5896     glad_vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier) load(userptr, "vkCmdPipelineBarrier");
   5897     glad_vkCmdPushConstants = (PFN_vkCmdPushConstants) load(userptr, "vkCmdPushConstants");
   5898     glad_vkCmdResetEvent = (PFN_vkCmdResetEvent) load(userptr, "vkCmdResetEvent");
   5899     glad_vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool) load(userptr, "vkCmdResetQueryPool");
   5900     glad_vkCmdResolveImage = (PFN_vkCmdResolveImage) load(userptr, "vkCmdResolveImage");
   5901     glad_vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) load(userptr, "vkCmdSetBlendConstants");
   5902     glad_vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias) load(userptr, "vkCmdSetDepthBias");
   5903     glad_vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) load(userptr, "vkCmdSetDepthBounds");
   5904     glad_vkCmdSetEvent = (PFN_vkCmdSetEvent) load(userptr, "vkCmdSetEvent");
   5905     glad_vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth) load(userptr, "vkCmdSetLineWidth");
   5906     glad_vkCmdSetScissor = (PFN_vkCmdSetScissor) load(userptr, "vkCmdSetScissor");
   5907     glad_vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) load(userptr, "vkCmdSetStencilCompareMask");
   5908     glad_vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference) load(userptr, "vkCmdSetStencilReference");
   5909     glad_vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) load(userptr, "vkCmdSetStencilWriteMask");
   5910     glad_vkCmdSetViewport = (PFN_vkCmdSetViewport) load(userptr, "vkCmdSetViewport");
   5911     glad_vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer) load(userptr, "vkCmdUpdateBuffer");
   5912     glad_vkCmdWaitEvents = (PFN_vkCmdWaitEvents) load(userptr, "vkCmdWaitEvents");
   5913     glad_vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp) load(userptr, "vkCmdWriteTimestamp");
   5914     glad_vkCreateBuffer = (PFN_vkCreateBuffer) load(userptr, "vkCreateBuffer");
   5915     glad_vkCreateBufferView = (PFN_vkCreateBufferView) load(userptr, "vkCreateBufferView");
   5916     glad_vkCreateCommandPool = (PFN_vkCreateCommandPool) load(userptr, "vkCreateCommandPool");
   5917     glad_vkCreateComputePipelines = (PFN_vkCreateComputePipelines) load(userptr, "vkCreateComputePipelines");
   5918     glad_vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool) load(userptr, "vkCreateDescriptorPool");
   5919     glad_vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout) load(userptr, "vkCreateDescriptorSetLayout");
   5920     glad_vkCreateDevice = (PFN_vkCreateDevice) load(userptr, "vkCreateDevice");
   5921     glad_vkCreateEvent = (PFN_vkCreateEvent) load(userptr, "vkCreateEvent");
   5922     glad_vkCreateFence = (PFN_vkCreateFence) load(userptr, "vkCreateFence");
   5923     glad_vkCreateFramebuffer = (PFN_vkCreateFramebuffer) load(userptr, "vkCreateFramebuffer");
   5924     glad_vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines) load(userptr, "vkCreateGraphicsPipelines");
   5925     glad_vkCreateImage = (PFN_vkCreateImage) load(userptr, "vkCreateImage");
   5926     glad_vkCreateImageView = (PFN_vkCreateImageView) load(userptr, "vkCreateImageView");
   5927     glad_vkCreateInstance = (PFN_vkCreateInstance) load(userptr, "vkCreateInstance");
   5928     glad_vkCreatePipelineCache = (PFN_vkCreatePipelineCache) load(userptr, "vkCreatePipelineCache");
   5929     glad_vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout) load(userptr, "vkCreatePipelineLayout");
   5930     glad_vkCreateQueryPool = (PFN_vkCreateQueryPool) load(userptr, "vkCreateQueryPool");
   5931     glad_vkCreateRenderPass = (PFN_vkCreateRenderPass) load(userptr, "vkCreateRenderPass");
   5932     glad_vkCreateSampler = (PFN_vkCreateSampler) load(userptr, "vkCreateSampler");
   5933     glad_vkCreateSemaphore = (PFN_vkCreateSemaphore) load(userptr, "vkCreateSemaphore");
   5934     glad_vkCreateShaderModule = (PFN_vkCreateShaderModule) load(userptr, "vkCreateShaderModule");
   5935     glad_vkDestroyBuffer = (PFN_vkDestroyBuffer) load(userptr, "vkDestroyBuffer");
   5936     glad_vkDestroyBufferView = (PFN_vkDestroyBufferView) load(userptr, "vkDestroyBufferView");
   5937     glad_vkDestroyCommandPool = (PFN_vkDestroyCommandPool) load(userptr, "vkDestroyCommandPool");
   5938     glad_vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool) load(userptr, "vkDestroyDescriptorPool");
   5939     glad_vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout) load(userptr, "vkDestroyDescriptorSetLayout");
   5940     glad_vkDestroyDevice = (PFN_vkDestroyDevice) load(userptr, "vkDestroyDevice");
   5941     glad_vkDestroyEvent = (PFN_vkDestroyEvent) load(userptr, "vkDestroyEvent");
   5942     glad_vkDestroyFence = (PFN_vkDestroyFence) load(userptr, "vkDestroyFence");
   5943     glad_vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer) load(userptr, "vkDestroyFramebuffer");
   5944     glad_vkDestroyImage = (PFN_vkDestroyImage) load(userptr, "vkDestroyImage");
   5945     glad_vkDestroyImageView = (PFN_vkDestroyImageView) load(userptr, "vkDestroyImageView");
   5946     glad_vkDestroyInstance = (PFN_vkDestroyInstance) load(userptr, "vkDestroyInstance");
   5947     glad_vkDestroyPipeline = (PFN_vkDestroyPipeline) load(userptr, "vkDestroyPipeline");
   5948     glad_vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache) load(userptr, "vkDestroyPipelineCache");
   5949     glad_vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout) load(userptr, "vkDestroyPipelineLayout");
   5950     glad_vkDestroyQueryPool = (PFN_vkDestroyQueryPool) load(userptr, "vkDestroyQueryPool");
   5951     glad_vkDestroyRenderPass = (PFN_vkDestroyRenderPass) load(userptr, "vkDestroyRenderPass");
   5952     glad_vkDestroySampler = (PFN_vkDestroySampler) load(userptr, "vkDestroySampler");
   5953     glad_vkDestroySemaphore = (PFN_vkDestroySemaphore) load(userptr, "vkDestroySemaphore");
   5954     glad_vkDestroyShaderModule = (PFN_vkDestroyShaderModule) load(userptr, "vkDestroyShaderModule");
   5955     glad_vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle) load(userptr, "vkDeviceWaitIdle");
   5956     glad_vkEndCommandBuffer = (PFN_vkEndCommandBuffer) load(userptr, "vkEndCommandBuffer");
   5957     glad_vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties) load(userptr, "vkEnumerateDeviceExtensionProperties");
   5958     glad_vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties) load(userptr, "vkEnumerateDeviceLayerProperties");
   5959     glad_vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties) load(userptr, "vkEnumerateInstanceExtensionProperties");
   5960     glad_vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties) load(userptr, "vkEnumerateInstanceLayerProperties");
   5961     glad_vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) load(userptr, "vkEnumeratePhysicalDevices");
   5962     glad_vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges) load(userptr, "vkFlushMappedMemoryRanges");
   5963     glad_vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers) load(userptr, "vkFreeCommandBuffers");
   5964     glad_vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets) load(userptr, "vkFreeDescriptorSets");
   5965     glad_vkFreeMemory = (PFN_vkFreeMemory) load(userptr, "vkFreeMemory");
   5966     glad_vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements) load(userptr, "vkGetBufferMemoryRequirements");
   5967     glad_vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment) load(userptr, "vkGetDeviceMemoryCommitment");
   5968     glad_vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) load(userptr, "vkGetDeviceProcAddr");
   5969     glad_vkGetDeviceQueue = (PFN_vkGetDeviceQueue) load(userptr, "vkGetDeviceQueue");
   5970     glad_vkGetEventStatus = (PFN_vkGetEventStatus) load(userptr, "vkGetEventStatus");
   5971     glad_vkGetFenceStatus = (PFN_vkGetFenceStatus) load(userptr, "vkGetFenceStatus");
   5972     glad_vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements) load(userptr, "vkGetImageMemoryRequirements");
   5973     glad_vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements) load(userptr, "vkGetImageSparseMemoryRequirements");
   5974     glad_vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout) load(userptr, "vkGetImageSubresourceLayout");
   5975     glad_vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) load(userptr, "vkGetInstanceProcAddr");
   5976     glad_vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) load(userptr, "vkGetPhysicalDeviceFeatures");
   5977     glad_vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties) load(userptr, "vkGetPhysicalDeviceFormatProperties");
   5978     glad_vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) load(userptr, "vkGetPhysicalDeviceImageFormatProperties");
   5979     glad_vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties) load(userptr, "vkGetPhysicalDeviceMemoryProperties");
   5980     glad_vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties) load(userptr, "vkGetPhysicalDeviceProperties");
   5981     glad_vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties");
   5982     glad_vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties");
   5983     glad_vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData) load(userptr, "vkGetPipelineCacheData");
   5984     glad_vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults) load(userptr, "vkGetQueryPoolResults");
   5985     glad_vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity) load(userptr, "vkGetRenderAreaGranularity");
   5986     glad_vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges) load(userptr, "vkInvalidateMappedMemoryRanges");
   5987     glad_vkMapMemory = (PFN_vkMapMemory) load(userptr, "vkMapMemory");
   5988     glad_vkMergePipelineCaches = (PFN_vkMergePipelineCaches) load(userptr, "vkMergePipelineCaches");
   5989     glad_vkQueueBindSparse = (PFN_vkQueueBindSparse) load(userptr, "vkQueueBindSparse");
   5990     glad_vkQueueSubmit = (PFN_vkQueueSubmit) load(userptr, "vkQueueSubmit");
   5991     glad_vkQueueWaitIdle = (PFN_vkQueueWaitIdle) load(userptr, "vkQueueWaitIdle");
   5992     glad_vkResetCommandBuffer = (PFN_vkResetCommandBuffer) load(userptr, "vkResetCommandBuffer");
   5993     glad_vkResetCommandPool = (PFN_vkResetCommandPool) load(userptr, "vkResetCommandPool");
   5994     glad_vkResetDescriptorPool = (PFN_vkResetDescriptorPool) load(userptr, "vkResetDescriptorPool");
   5995     glad_vkResetEvent = (PFN_vkResetEvent) load(userptr, "vkResetEvent");
   5996     glad_vkResetFences = (PFN_vkResetFences) load(userptr, "vkResetFences");
   5997     glad_vkSetEvent = (PFN_vkSetEvent) load(userptr, "vkSetEvent");
   5998     glad_vkUnmapMemory = (PFN_vkUnmapMemory) load(userptr, "vkUnmapMemory");
   5999     glad_vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) load(userptr, "vkUpdateDescriptorSets");
   6000     glad_vkWaitForFences = (PFN_vkWaitForFences) load(userptr, "vkWaitForFences");
   6001 }
   6002 static void glad_vk_load_VK_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
   6003     if(!GLAD_VK_VERSION_1_1) return;
   6004     glad_vkBindBufferMemory2 = (PFN_vkBindBufferMemory2) load(userptr, "vkBindBufferMemory2");
   6005     glad_vkBindImageMemory2 = (PFN_vkBindImageMemory2) load(userptr, "vkBindImageMemory2");
   6006     glad_vkCmdDispatchBase = (PFN_vkCmdDispatchBase) load(userptr, "vkCmdDispatchBase");
   6007     glad_vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask) load(userptr, "vkCmdSetDeviceMask");
   6008     glad_vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate) load(userptr, "vkCreateDescriptorUpdateTemplate");
   6009     glad_vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion) load(userptr, "vkCreateSamplerYcbcrConversion");
   6010     glad_vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate) load(userptr, "vkDestroyDescriptorUpdateTemplate");
   6011     glad_vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion) load(userptr, "vkDestroySamplerYcbcrConversion");
   6012     glad_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
   6013     glad_vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups) load(userptr, "vkEnumeratePhysicalDeviceGroups");
   6014     glad_vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2) load(userptr, "vkGetBufferMemoryRequirements2");
   6015     glad_vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport) load(userptr, "vkGetDescriptorSetLayoutSupport");
   6016     glad_vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures) load(userptr, "vkGetDeviceGroupPeerMemoryFeatures");
   6017     glad_vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2) load(userptr, "vkGetDeviceQueue2");
   6018     glad_vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2) load(userptr, "vkGetImageMemoryRequirements2");
   6019     glad_vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2) load(userptr, "vkGetImageSparseMemoryRequirements2");
   6020     glad_vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties) load(userptr, "vkGetPhysicalDeviceExternalBufferProperties");
   6021     glad_vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties) load(userptr, "vkGetPhysicalDeviceExternalFenceProperties");
   6022     glad_vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties) load(userptr, "vkGetPhysicalDeviceExternalSemaphoreProperties");
   6023     glad_vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2) load(userptr, "vkGetPhysicalDeviceFeatures2");
   6024     glad_vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2) load(userptr, "vkGetPhysicalDeviceFormatProperties2");
   6025     glad_vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceImageFormatProperties2");
   6026     glad_vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2) load(userptr, "vkGetPhysicalDeviceMemoryProperties2");
   6027     glad_vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2) load(userptr, "vkGetPhysicalDeviceProperties2");
   6028     glad_vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties2");
   6029     glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties2");
   6030     glad_vkTrimCommandPool = (PFN_vkTrimCommandPool) load(userptr, "vkTrimCommandPool");
   6031     glad_vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate) load(userptr, "vkUpdateDescriptorSetWithTemplate");
   6032 }
   6033 static void glad_vk_load_VK_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
   6034     if(!GLAD_VK_VERSION_1_2) return;
   6035     glad_vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2) load(userptr, "vkCmdBeginRenderPass2");
   6036     glad_vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount) load(userptr, "vkCmdDrawIndexedIndirectCount");
   6037     glad_vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount) load(userptr, "vkCmdDrawIndirectCount");
   6038     glad_vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2) load(userptr, "vkCmdEndRenderPass2");
   6039     glad_vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2) load(userptr, "vkCmdNextSubpass2");
   6040     glad_vkCreateRenderPass2 = (PFN_vkCreateRenderPass2) load(userptr, "vkCreateRenderPass2");
   6041     glad_vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress) load(userptr, "vkGetBufferDeviceAddress");
   6042     glad_vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress) load(userptr, "vkGetBufferOpaqueCaptureAddress");
   6043     glad_vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress) load(userptr, "vkGetDeviceMemoryOpaqueCaptureAddress");
   6044     glad_vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue) load(userptr, "vkGetSemaphoreCounterValue");
   6045     glad_vkResetQueryPool = (PFN_vkResetQueryPool) load(userptr, "vkResetQueryPool");
   6046     glad_vkSignalSemaphore = (PFN_vkSignalSemaphore) load(userptr, "vkSignalSemaphore");
   6047     glad_vkWaitSemaphores = (PFN_vkWaitSemaphores) load(userptr, "vkWaitSemaphores");
   6048 }
   6049 static void glad_vk_load_VK_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) {
   6050     if(!GLAD_VK_VERSION_1_3) return;
   6051     glad_vkCmdBeginRendering = (PFN_vkCmdBeginRendering) load(userptr, "vkCmdBeginRendering");
   6052     glad_vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2) load(userptr, "vkCmdBindVertexBuffers2");
   6053     glad_vkCmdBlitImage2 = (PFN_vkCmdBlitImage2) load(userptr, "vkCmdBlitImage2");
   6054     glad_vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2) load(userptr, "vkCmdCopyBuffer2");
   6055     glad_vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2) load(userptr, "vkCmdCopyBufferToImage2");
   6056     glad_vkCmdCopyImage2 = (PFN_vkCmdCopyImage2) load(userptr, "vkCmdCopyImage2");
   6057     glad_vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2) load(userptr, "vkCmdCopyImageToBuffer2");
   6058     glad_vkCmdEndRendering = (PFN_vkCmdEndRendering) load(userptr, "vkCmdEndRendering");
   6059     glad_vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2) load(userptr, "vkCmdPipelineBarrier2");
   6060     glad_vkCmdResetEvent2 = (PFN_vkCmdResetEvent2) load(userptr, "vkCmdResetEvent2");
   6061     glad_vkCmdResolveImage2 = (PFN_vkCmdResolveImage2) load(userptr, "vkCmdResolveImage2");
   6062     glad_vkCmdSetCullMode = (PFN_vkCmdSetCullMode) load(userptr, "vkCmdSetCullMode");
   6063     glad_vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable) load(userptr, "vkCmdSetDepthBiasEnable");
   6064     glad_vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable) load(userptr, "vkCmdSetDepthBoundsTestEnable");
   6065     glad_vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp) load(userptr, "vkCmdSetDepthCompareOp");
   6066     glad_vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable) load(userptr, "vkCmdSetDepthTestEnable");
   6067     glad_vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable) load(userptr, "vkCmdSetDepthWriteEnable");
   6068     glad_vkCmdSetEvent2 = (PFN_vkCmdSetEvent2) load(userptr, "vkCmdSetEvent2");
   6069     glad_vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace) load(userptr, "vkCmdSetFrontFace");
   6070     glad_vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable) load(userptr, "vkCmdSetPrimitiveRestartEnable");
   6071     glad_vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology) load(userptr, "vkCmdSetPrimitiveTopology");
   6072     glad_vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable) load(userptr, "vkCmdSetRasterizerDiscardEnable");
   6073     glad_vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount) load(userptr, "vkCmdSetScissorWithCount");
   6074     glad_vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp) load(userptr, "vkCmdSetStencilOp");
   6075     glad_vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable) load(userptr, "vkCmdSetStencilTestEnable");
   6076     glad_vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount) load(userptr, "vkCmdSetViewportWithCount");
   6077     glad_vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2) load(userptr, "vkCmdWaitEvents2");
   6078     glad_vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2) load(userptr, "vkCmdWriteTimestamp2");
   6079     glad_vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot) load(userptr, "vkCreatePrivateDataSlot");
   6080     glad_vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot) load(userptr, "vkDestroyPrivateDataSlot");
   6081     glad_vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements) load(userptr, "vkGetDeviceBufferMemoryRequirements");
   6082     glad_vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements) load(userptr, "vkGetDeviceImageMemoryRequirements");
   6083     glad_vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements) load(userptr, "vkGetDeviceImageSparseMemoryRequirements");
   6084     glad_vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties) load(userptr, "vkGetPhysicalDeviceToolProperties");
   6085     glad_vkGetPrivateData = (PFN_vkGetPrivateData) load(userptr, "vkGetPrivateData");
   6086     glad_vkQueueSubmit2 = (PFN_vkQueueSubmit2) load(userptr, "vkQueueSubmit2");
   6087     glad_vkSetPrivateData = (PFN_vkSetPrivateData) load(userptr, "vkSetPrivateData");
   6088 }
   6089 static void glad_vk_load_VK_EXT_debug_report( GLADuserptrloadfunc load, void* userptr) {
   6090     if(!GLAD_VK_EXT_debug_report) return;
   6091     glad_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) load(userptr, "vkCreateDebugReportCallbackEXT");
   6092     glad_vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT) load(userptr, "vkDebugReportMessageEXT");
   6093     glad_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT) load(userptr, "vkDestroyDebugReportCallbackEXT");
   6094 }
   6095 static void glad_vk_load_VK_KHR_surface( GLADuserptrloadfunc load, void* userptr) {
   6096     if(!GLAD_VK_KHR_surface) return;
   6097     glad_vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) load(userptr, "vkDestroySurfaceKHR");
   6098     glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) load(userptr, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
   6099     glad_vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) load(userptr, "vkGetPhysicalDeviceSurfaceFormatsKHR");
   6100     glad_vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) load(userptr, "vkGetPhysicalDeviceSurfacePresentModesKHR");
   6101     glad_vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) load(userptr, "vkGetPhysicalDeviceSurfaceSupportKHR");
   6102 }
   6103 static void glad_vk_load_VK_KHR_swapchain( GLADuserptrloadfunc load, void* userptr) {
   6104     if(!GLAD_VK_KHR_swapchain) return;
   6105     glad_vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR) load(userptr, "vkAcquireNextImage2KHR");
   6106     glad_vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) load(userptr, "vkAcquireNextImageKHR");
   6107     glad_vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) load(userptr, "vkCreateSwapchainKHR");
   6108     glad_vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) load(userptr, "vkDestroySwapchainKHR");
   6109     glad_vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR) load(userptr, "vkGetDeviceGroupPresentCapabilitiesKHR");
   6110     glad_vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR) load(userptr, "vkGetDeviceGroupSurfacePresentModesKHR");
   6111     glad_vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR) load(userptr, "vkGetPhysicalDevicePresentRectanglesKHR");
   6112     glad_vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR) load(userptr, "vkGetSwapchainImagesKHR");
   6113     glad_vkQueuePresentKHR = (PFN_vkQueuePresentKHR) load(userptr, "vkQueuePresentKHR");
   6114 }
   6115 
   6116 
   6117 
   6118 static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *out_extension_count, char ***out_extensions) {
   6119     uint32_t i;
   6120     uint32_t instance_extension_count = 0;
   6121     uint32_t device_extension_count = 0;
   6122     uint32_t max_extension_count = 0;
   6123     uint32_t total_extension_count = 0;
   6124     char **extensions = NULL;
   6125     VkExtensionProperties *ext_properties = NULL;
   6126     VkResult result;
   6127 
   6128     if (glad_vkEnumerateInstanceExtensionProperties == NULL || (physical_device != NULL && glad_vkEnumerateDeviceExtensionProperties == NULL)) {
   6129         return 0;
   6130     }
   6131 
   6132     result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, NULL);
   6133     if (result != VK_SUCCESS) {
   6134         return 0;
   6135     }
   6136 
   6137     if (physical_device != NULL) {
   6138         result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, NULL);
   6139         if (result != VK_SUCCESS) {
   6140             return 0;
   6141         }
   6142     }
   6143 
   6144     total_extension_count = instance_extension_count + device_extension_count;
   6145     if (total_extension_count <= 0) {
   6146         return 0;
   6147     }
   6148 
   6149     max_extension_count = instance_extension_count > device_extension_count
   6150         ? instance_extension_count : device_extension_count;
   6151 
   6152     ext_properties = (VkExtensionProperties*) malloc(max_extension_count * sizeof(VkExtensionProperties));
   6153     if (ext_properties == NULL) {
   6154         goto glad_vk_get_extensions_error;
   6155     }
   6156 
   6157     result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, ext_properties);
   6158     if (result != VK_SUCCESS) {
   6159         goto glad_vk_get_extensions_error;
   6160     }
   6161 
   6162     extensions = (char**) calloc(total_extension_count, sizeof(char*));
   6163     if (extensions == NULL) {
   6164         goto glad_vk_get_extensions_error;
   6165     }
   6166 
   6167     for (i = 0; i < instance_extension_count; ++i) {
   6168         VkExtensionProperties ext = ext_properties[i];
   6169 
   6170         size_t extension_name_length = strlen(ext.extensionName) + 1;
   6171         extensions[i] = (char*) malloc(extension_name_length * sizeof(char));
   6172         if (extensions[i] == NULL) {
   6173             goto glad_vk_get_extensions_error;
   6174         }
   6175         memcpy(extensions[i], ext.extensionName, extension_name_length * sizeof(char));
   6176     }
   6177 
   6178     if (physical_device != NULL) {
   6179         result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, ext_properties);
   6180         if (result != VK_SUCCESS) {
   6181             goto glad_vk_get_extensions_error;
   6182         }
   6183 
   6184         for (i = 0; i < device_extension_count; ++i) {
   6185             VkExtensionProperties ext = ext_properties[i];
   6186 
   6187             size_t extension_name_length = strlen(ext.extensionName) + 1;
   6188             extensions[instance_extension_count + i] = (char*) malloc(extension_name_length * sizeof(char));
   6189             if (extensions[instance_extension_count + i] == NULL) {
   6190                 goto glad_vk_get_extensions_error;
   6191             }
   6192             memcpy(extensions[instance_extension_count + i], ext.extensionName, extension_name_length * sizeof(char));
   6193         }
   6194     }
   6195 
   6196     free((void*) ext_properties);
   6197 
   6198     *out_extension_count = total_extension_count;
   6199     *out_extensions = extensions;
   6200 
   6201     return 1;
   6202 
   6203 glad_vk_get_extensions_error:
   6204     free((void*) ext_properties);
   6205     if (extensions != NULL) {
   6206         for (i = 0; i < total_extension_count; ++i) {
   6207             free((void*) extensions[i]);
   6208         }
   6209         free(extensions);
   6210     }
   6211     return 0;
   6212 }
   6213 
   6214 static void glad_vk_free_extensions(uint32_t extension_count, char **extensions) {
   6215     uint32_t i;
   6216 
   6217     for(i = 0; i < extension_count ; ++i) {
   6218         free((void*) (extensions[i]));
   6219     }
   6220 
   6221     free((void*) extensions);
   6222 }
   6223 
   6224 static int glad_vk_has_extension(const char *name, uint32_t extension_count, char **extensions) {
   6225     uint32_t i;
   6226 
   6227     for (i = 0; i < extension_count; ++i) {
   6228         if(extensions[i] != NULL && strcmp(name, extensions[i]) == 0) {
   6229             return 1;
   6230         }
   6231     }
   6232 
   6233     return 0;
   6234 }
   6235 
   6236 static GLADapiproc glad_vk_get_proc_from_userptr(void *userptr, const char* name) {
   6237     return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
   6238 }
   6239 
   6240 static int glad_vk_find_extensions_vulkan( VkPhysicalDevice physical_device) {
   6241     uint32_t extension_count = 0;
   6242     char **extensions = NULL;
   6243     if (!glad_vk_get_extensions(physical_device, &extension_count, &extensions)) return 0;
   6244 
   6245     GLAD_VK_EXT_debug_report = glad_vk_has_extension("VK_EXT_debug_report", extension_count, extensions);
   6246     GLAD_VK_KHR_portability_enumeration = glad_vk_has_extension("VK_KHR_portability_enumeration", extension_count, extensions);
   6247     GLAD_VK_KHR_surface = glad_vk_has_extension("VK_KHR_surface", extension_count, extensions);
   6248     GLAD_VK_KHR_swapchain = glad_vk_has_extension("VK_KHR_swapchain", extension_count, extensions);
   6249 
   6250     (void) glad_vk_has_extension;
   6251 
   6252     glad_vk_free_extensions(extension_count, extensions);
   6253 
   6254     return 1;
   6255 }
   6256 
   6257 static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
   6258     int major = 1;
   6259     int minor = 0;
   6260 
   6261 #ifdef VK_VERSION_1_1
   6262     if (glad_vkEnumerateInstanceVersion != NULL) {
   6263         uint32_t version;
   6264         VkResult result;
   6265 
   6266         result = glad_vkEnumerateInstanceVersion(&version);
   6267         if (result == VK_SUCCESS) {
   6268             major = (int) VK_VERSION_MAJOR(version);
   6269             minor = (int) VK_VERSION_MINOR(version);
   6270         }
   6271     }
   6272 #endif
   6273 
   6274     if (physical_device != NULL && glad_vkGetPhysicalDeviceProperties != NULL) {
   6275         VkPhysicalDeviceProperties properties;
   6276         glad_vkGetPhysicalDeviceProperties(physical_device, &properties);
   6277 
   6278         major = (int) VK_VERSION_MAJOR(properties.apiVersion);
   6279         minor = (int) VK_VERSION_MINOR(properties.apiVersion);
   6280     }
   6281 
   6282     GLAD_VK_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
   6283     GLAD_VK_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
   6284     GLAD_VK_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
   6285     GLAD_VK_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
   6286 
   6287     return GLAD_MAKE_VERSION(major, minor);
   6288 }
   6289 
   6290 int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr) {
   6291     int version;
   6292 
   6293 #ifdef VK_VERSION_1_1
   6294     glad_vkEnumerateInstanceVersion  = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
   6295 #endif
   6296     version = glad_vk_find_core_vulkan( physical_device);
   6297     if (!version) {
   6298         return 0;
   6299     }
   6300 
   6301     glad_vk_load_VK_VERSION_1_0(load, userptr);
   6302     glad_vk_load_VK_VERSION_1_1(load, userptr);
   6303     glad_vk_load_VK_VERSION_1_2(load, userptr);
   6304     glad_vk_load_VK_VERSION_1_3(load, userptr);
   6305 
   6306     if (!glad_vk_find_extensions_vulkan( physical_device)) return 0;
   6307     glad_vk_load_VK_EXT_debug_report(load, userptr);
   6308     glad_vk_load_VK_KHR_surface(load, userptr);
   6309     glad_vk_load_VK_KHR_swapchain(load, userptr);
   6310 
   6311 
   6312     return version;
   6313 }
   6314 
   6315 
   6316 int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load) {
   6317     return gladLoadVulkanUserPtr( physical_device, glad_vk_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
   6318 }
   6319 
   6320 
   6321 
   6322  
   6323 
   6324 
   6325 #ifdef __cplusplus
   6326 }
   6327 #endif
   6328 
   6329 #endif /* GLAD_VULKAN_IMPLEMENTATION */
   6330