zorldo

Goofing around with Ebiten
git clone git://bsandro.tech/zorldo
Log | Files | Refs | README

vulkan.h (179624B)


      1 /**
      2  * Loader generated by glad 2.0.0-beta on Sun Apr 14 17:03:38 2019
      3  *
      4  * Generator: C/C++
      5  * Specification: vk
      6  * Extensions: 3
      7  *
      8  * APIs:
      9  *  - vulkan=1.1
     10  *
     11  * Options:
     12  *  - MX_GLOBAL = False
     13  *  - LOADER = False
     14  *  - ALIAS = False
     15  *  - HEADER_ONLY = False
     16  *  - DEBUG = False
     17  *  - MX = False
     18  *
     19  * Commandline:
     20  *    --api='vulkan=1.1' --extensions='VK_EXT_debug_report,VK_KHR_surface,VK_KHR_swapchain' c
     21  *
     22  * Online:
     23  *    http://glad.sh/#api=vulkan%3D1.1&extensions=VK_EXT_debug_report%2CVK_KHR_surface%2CVK_KHR_swapchain&generator=c&options=
     24  *
     25  */
     26 
     27 #ifndef GLAD_VULKAN_H_
     28 #define GLAD_VULKAN_H_
     29 
     30 #ifdef VULKAN_H_
     31     #error  header already included (API: vulkan), remove previous include!
     32 #endif
     33 #define VULKAN_H_ 1
     34 
     35 #ifdef VULKAN_CORE_H_
     36     #error  header already included (API: vulkan), remove previous include!
     37 #endif
     38 #define VULKAN_CORE_H_ 1
     39 
     40 
     41 #define GLAD_VULKAN
     42 
     43 #ifdef __cplusplus
     44 extern "C" {
     45 #endif
     46 
     47 #ifndef GLAD_PLATFORM_H_
     48 #define GLAD_PLATFORM_H_
     49 
     50 #ifndef GLAD_PLATFORM_WIN32
     51   #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
     52     #define GLAD_PLATFORM_WIN32 1
     53   #else
     54     #define GLAD_PLATFORM_WIN32 0
     55   #endif
     56 #endif
     57 
     58 #ifndef GLAD_PLATFORM_APPLE
     59   #ifdef __APPLE__
     60     #define GLAD_PLATFORM_APPLE 1
     61   #else
     62     #define GLAD_PLATFORM_APPLE 0
     63   #endif
     64 #endif
     65 
     66 #ifndef GLAD_PLATFORM_EMSCRIPTEN
     67   #ifdef __EMSCRIPTEN__
     68     #define GLAD_PLATFORM_EMSCRIPTEN 1
     69   #else
     70     #define GLAD_PLATFORM_EMSCRIPTEN 0
     71   #endif
     72 #endif
     73 
     74 #ifndef GLAD_PLATFORM_UWP
     75   #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
     76     #ifdef __has_include
     77       #if __has_include(<winapifamily.h>)
     78         #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     79       #endif
     80     #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
     81       #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
     82     #endif
     83   #endif
     84 
     85   #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
     86     #include <winapifamily.h>
     87     #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
     88       #define GLAD_PLATFORM_UWP 1
     89     #endif
     90   #endif
     91 
     92   #ifndef GLAD_PLATFORM_UWP
     93     #define GLAD_PLATFORM_UWP 0
     94   #endif
     95 #endif
     96 
     97 #ifdef __GNUC__
     98   #define GLAD_GNUC_EXTENSION __extension__
     99 #else
    100   #define GLAD_GNUC_EXTENSION
    101 #endif
    102 
    103 #ifndef GLAD_API_CALL
    104   #if defined(GLAD_API_CALL_EXPORT)
    105     #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
    106       #if defined(GLAD_API_CALL_EXPORT_BUILD)
    107         #if defined(__GNUC__)
    108           #define GLAD_API_CALL __attribute__ ((dllexport)) extern
    109         #else
    110           #define GLAD_API_CALL __declspec(dllexport) extern
    111         #endif
    112       #else
    113         #if defined(__GNUC__)
    114           #define GLAD_API_CALL __attribute__ ((dllimport)) extern
    115         #else
    116           #define GLAD_API_CALL __declspec(dllimport) extern
    117         #endif
    118       #endif
    119     #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
    120       #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
    121     #else
    122       #define GLAD_API_CALL extern
    123     #endif
    124   #else
    125     #define GLAD_API_CALL extern
    126   #endif
    127 #endif
    128 
    129 #ifdef APIENTRY
    130   #define GLAD_API_PTR APIENTRY
    131 #elif GLAD_PLATFORM_WIN32
    132   #define GLAD_API_PTR __stdcall
    133 #else
    134   #define GLAD_API_PTR
    135 #endif
    136 
    137 #ifndef GLAPI
    138 #define GLAPI GLAD_API_CALL
    139 #endif
    140 
    141 #ifndef GLAPIENTRY
    142 #define GLAPIENTRY GLAD_API_PTR
    143 #endif
    144 
    145 
    146 #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
    147 #define GLAD_VERSION_MAJOR(version) (version / 10000)
    148 #define GLAD_VERSION_MINOR(version) (version % 10000)
    149 
    150 typedef void (*GLADapiproc)(void);
    151 
    152 typedef GLADapiproc (*GLADloadfunc)(const char *name);
    153 typedef GLADapiproc (*GLADuserptrloadfunc)(const char *name, void *userptr);
    154 
    155 typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
    156 typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
    157 
    158 #endif /* GLAD_PLATFORM_H_ */
    159 
    160 #define VK_ATTACHMENT_UNUSED (~0U)
    161 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
    162 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
    163 #define VK_FALSE 0
    164 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
    165 #define VK_KHR_SURFACE_SPEC_VERSION 25
    166 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
    167 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
    168 #define VK_LOD_CLAMP_NONE 1000.0f
    169 #define VK_LUID_SIZE 8
    170 #define VK_MAX_DESCRIPTION_SIZE 256
    171 #define VK_MAX_DEVICE_GROUP_SIZE 32
    172 #define VK_MAX_EXTENSION_NAME_SIZE 256
    173 #define VK_MAX_MEMORY_HEAPS 16
    174 #define VK_MAX_MEMORY_TYPES 32
    175 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
    176 #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1)
    177 #define VK_QUEUE_FAMILY_IGNORED (~0U)
    178 #define VK_REMAINING_ARRAY_LAYERS (~0U)
    179 #define VK_REMAINING_MIP_LEVELS (~0U)
    180 #define VK_SUBPASS_EXTERNAL (~0U)
    181 #define VK_TRUE 1
    182 #define VK_UUID_SIZE 16
    183 #define VK_WHOLE_SIZE (~0ULL)
    184 
    185 
    186 #include <glad/vk_platform.h>
    187 #define VK_MAKE_VERSION(major, minor, patch) \
    188     (((major) << 22) | ((minor) << 12) | (patch))
    189 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
    190 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
    191 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
    192 /* 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. */
    193 /*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */
    194 /* Vulkan 1.0 version number */
    195 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)/* Patch version should always be set to 0 */
    196 /* Vulkan 1.1 version number */
    197 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)/* Patch version should always be set to 0 */
    198 /* Version of this file */
    199 #define VK_HEADER_VERSION 106
    200 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
    201 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
    202 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
    203         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
    204 #else
    205         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
    206 #endif
    207 #endif
    208 #define VK_NULL_HANDLE 0
    209 
    210 
    211 
    212 
    213 
    214 
    215 
    216 
    217 VK_DEFINE_HANDLE(VkInstance)
    218 VK_DEFINE_HANDLE(VkPhysicalDevice)
    219 VK_DEFINE_HANDLE(VkDevice)
    220 VK_DEFINE_HANDLE(VkQueue)
    221 VK_DEFINE_HANDLE(VkCommandBuffer)
    222 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
    223 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
    224 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
    225 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
    226 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
    227 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
    228 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
    229 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
    230 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
    231 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
    232 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
    233 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
    234 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
    235 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
    236 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
    237 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
    238 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
    239 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
    240 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
    241 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
    242 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
    243 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
    244 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
    245 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
    246 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
    247 typedef enum VkAttachmentLoadOp {
    248     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
    249     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
    250     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2
    251 } VkAttachmentLoadOp;
    252 typedef enum VkAttachmentStoreOp {
    253     VK_ATTACHMENT_STORE_OP_STORE = 0,
    254     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1
    255 } VkAttachmentStoreOp;
    256 typedef enum VkBlendFactor {
    257     VK_BLEND_FACTOR_ZERO = 0,
    258     VK_BLEND_FACTOR_ONE = 1,
    259     VK_BLEND_FACTOR_SRC_COLOR = 2,
    260     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
    261     VK_BLEND_FACTOR_DST_COLOR = 4,
    262     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
    263     VK_BLEND_FACTOR_SRC_ALPHA = 6,
    264     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
    265     VK_BLEND_FACTOR_DST_ALPHA = 8,
    266     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
    267     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
    268     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
    269     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
    270     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
    271     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
    272     VK_BLEND_FACTOR_SRC1_COLOR = 15,
    273     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
    274     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
    275     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18
    276 } VkBlendFactor;
    277 typedef enum VkBlendOp {
    278     VK_BLEND_OP_ADD = 0,
    279     VK_BLEND_OP_SUBTRACT = 1,
    280     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
    281     VK_BLEND_OP_MIN = 3,
    282     VK_BLEND_OP_MAX = 4
    283 } VkBlendOp;
    284 typedef enum VkBorderColor {
    285     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
    286     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
    287     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
    288     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
    289     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
    290     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5
    291 } VkBorderColor;
    292 
    293 typedef enum VkPipelineCacheHeaderVersion {
    294     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1
    295 } VkPipelineCacheHeaderVersion;
    296 
    297 typedef enum VkDeviceQueueCreateFlagBits {
    298     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1
    299 } VkDeviceQueueCreateFlagBits;
    300 typedef enum VkBufferCreateFlagBits {
    301     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1,
    302     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2,
    303     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4,
    304     VK_BUFFER_CREATE_PROTECTED_BIT = 8
    305 } VkBufferCreateFlagBits;
    306 typedef enum VkBufferUsageFlagBits {
    307     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1,
    308     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2,
    309     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4,
    310     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8,
    311     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16,
    312     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32,
    313     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64,
    314     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128,
    315     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256
    316 } VkBufferUsageFlagBits;
    317 typedef enum VkColorComponentFlagBits {
    318     VK_COLOR_COMPONENT_R_BIT = 1,
    319     VK_COLOR_COMPONENT_G_BIT = 2,
    320     VK_COLOR_COMPONENT_B_BIT = 4,
    321     VK_COLOR_COMPONENT_A_BIT = 8
    322 } VkColorComponentFlagBits;
    323 typedef enum VkComponentSwizzle {
    324     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
    325     VK_COMPONENT_SWIZZLE_ZERO = 1,
    326     VK_COMPONENT_SWIZZLE_ONE = 2,
    327     VK_COMPONENT_SWIZZLE_R = 3,
    328     VK_COMPONENT_SWIZZLE_G = 4,
    329     VK_COMPONENT_SWIZZLE_B = 5,
    330     VK_COMPONENT_SWIZZLE_A = 6
    331 } VkComponentSwizzle;
    332 typedef enum VkCommandPoolCreateFlagBits {
    333     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
    334     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2,
    335     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4
    336 } VkCommandPoolCreateFlagBits;
    337 typedef enum VkCommandPoolResetFlagBits {
    338     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1
    339 } VkCommandPoolResetFlagBits;
    340 typedef enum VkCommandBufferResetFlagBits {
    341     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1
    342 } VkCommandBufferResetFlagBits;
    343 typedef enum VkCommandBufferLevel {
    344     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
    345     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1
    346 } VkCommandBufferLevel;
    347 typedef enum VkCommandBufferUsageFlagBits {
    348     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1,
    349     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2,
    350     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4
    351 } VkCommandBufferUsageFlagBits;
    352 typedef enum VkCompareOp {
    353     VK_COMPARE_OP_NEVER = 0,
    354     VK_COMPARE_OP_LESS = 1,
    355     VK_COMPARE_OP_EQUAL = 2,
    356     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
    357     VK_COMPARE_OP_GREATER = 4,
    358     VK_COMPARE_OP_NOT_EQUAL = 5,
    359     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
    360     VK_COMPARE_OP_ALWAYS = 7
    361 } VkCompareOp;
    362 typedef enum VkCullModeFlagBits {
    363     VK_CULL_MODE_NONE = 0,
    364     VK_CULL_MODE_FRONT_BIT = 1,
    365     VK_CULL_MODE_BACK_BIT = 2,
    366     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003
    367 } VkCullModeFlagBits;
    368 typedef enum VkDescriptorType {
    369     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
    370     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
    371     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
    372     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
    373     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
    374     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
    375     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
    376     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
    377     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
    378     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
    379     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10
    380 } VkDescriptorType;
    381 typedef enum VkDynamicState {
    382     VK_DYNAMIC_STATE_VIEWPORT = 0,
    383     VK_DYNAMIC_STATE_SCISSOR = 1,
    384     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
    385     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
    386     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
    387     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
    388     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
    389     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
    390     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
    391     VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1)
    392 } VkDynamicState;
    393 typedef enum VkFenceCreateFlagBits {
    394     VK_FENCE_CREATE_SIGNALED_BIT = 1
    395 } VkFenceCreateFlagBits;
    396 typedef enum VkPolygonMode {
    397     VK_POLYGON_MODE_FILL = 0,
    398     VK_POLYGON_MODE_LINE = 1,
    399     VK_POLYGON_MODE_POINT = 2
    400 } VkPolygonMode;
    401 typedef enum VkFormat {
    402     VK_FORMAT_UNDEFINED = 0,
    403     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
    404     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
    405     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
    406     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
    407     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
    408     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
    409     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
    410     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
    411     VK_FORMAT_R8_UNORM = 9,
    412     VK_FORMAT_R8_SNORM = 10,
    413     VK_FORMAT_R8_USCALED = 11,
    414     VK_FORMAT_R8_SSCALED = 12,
    415     VK_FORMAT_R8_UINT = 13,
    416     VK_FORMAT_R8_SINT = 14,
    417     VK_FORMAT_R8_SRGB = 15,
    418     VK_FORMAT_R8G8_UNORM = 16,
    419     VK_FORMAT_R8G8_SNORM = 17,
    420     VK_FORMAT_R8G8_USCALED = 18,
    421     VK_FORMAT_R8G8_SSCALED = 19,
    422     VK_FORMAT_R8G8_UINT = 20,
    423     VK_FORMAT_R8G8_SINT = 21,
    424     VK_FORMAT_R8G8_SRGB = 22,
    425     VK_FORMAT_R8G8B8_UNORM = 23,
    426     VK_FORMAT_R8G8B8_SNORM = 24,
    427     VK_FORMAT_R8G8B8_USCALED = 25,
    428     VK_FORMAT_R8G8B8_SSCALED = 26,
    429     VK_FORMAT_R8G8B8_UINT = 27,
    430     VK_FORMAT_R8G8B8_SINT = 28,
    431     VK_FORMAT_R8G8B8_SRGB = 29,
    432     VK_FORMAT_B8G8R8_UNORM = 30,
    433     VK_FORMAT_B8G8R8_SNORM = 31,
    434     VK_FORMAT_B8G8R8_USCALED = 32,
    435     VK_FORMAT_B8G8R8_SSCALED = 33,
    436     VK_FORMAT_B8G8R8_UINT = 34,
    437     VK_FORMAT_B8G8R8_SINT = 35,
    438     VK_FORMAT_B8G8R8_SRGB = 36,
    439     VK_FORMAT_R8G8B8A8_UNORM = 37,
    440     VK_FORMAT_R8G8B8A8_SNORM = 38,
    441     VK_FORMAT_R8G8B8A8_USCALED = 39,
    442     VK_FORMAT_R8G8B8A8_SSCALED = 40,
    443     VK_FORMAT_R8G8B8A8_UINT = 41,
    444     VK_FORMAT_R8G8B8A8_SINT = 42,
    445     VK_FORMAT_R8G8B8A8_SRGB = 43,
    446     VK_FORMAT_B8G8R8A8_UNORM = 44,
    447     VK_FORMAT_B8G8R8A8_SNORM = 45,
    448     VK_FORMAT_B8G8R8A8_USCALED = 46,
    449     VK_FORMAT_B8G8R8A8_SSCALED = 47,
    450     VK_FORMAT_B8G8R8A8_UINT = 48,
    451     VK_FORMAT_B8G8R8A8_SINT = 49,
    452     VK_FORMAT_B8G8R8A8_SRGB = 50,
    453     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
    454     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
    455     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
    456     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
    457     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
    458     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
    459     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
    460     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
    461     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
    462     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
    463     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
    464     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
    465     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
    466     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
    467     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
    468     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
    469     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
    470     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
    471     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
    472     VK_FORMAT_R16_UNORM = 70,
    473     VK_FORMAT_R16_SNORM = 71,
    474     VK_FORMAT_R16_USCALED = 72,
    475     VK_FORMAT_R16_SSCALED = 73,
    476     VK_FORMAT_R16_UINT = 74,
    477     VK_FORMAT_R16_SINT = 75,
    478     VK_FORMAT_R16_SFLOAT = 76,
    479     VK_FORMAT_R16G16_UNORM = 77,
    480     VK_FORMAT_R16G16_SNORM = 78,
    481     VK_FORMAT_R16G16_USCALED = 79,
    482     VK_FORMAT_R16G16_SSCALED = 80,
    483     VK_FORMAT_R16G16_UINT = 81,
    484     VK_FORMAT_R16G16_SINT = 82,
    485     VK_FORMAT_R16G16_SFLOAT = 83,
    486     VK_FORMAT_R16G16B16_UNORM = 84,
    487     VK_FORMAT_R16G16B16_SNORM = 85,
    488     VK_FORMAT_R16G16B16_USCALED = 86,
    489     VK_FORMAT_R16G16B16_SSCALED = 87,
    490     VK_FORMAT_R16G16B16_UINT = 88,
    491     VK_FORMAT_R16G16B16_SINT = 89,
    492     VK_FORMAT_R16G16B16_SFLOAT = 90,
    493     VK_FORMAT_R16G16B16A16_UNORM = 91,
    494     VK_FORMAT_R16G16B16A16_SNORM = 92,
    495     VK_FORMAT_R16G16B16A16_USCALED = 93,
    496     VK_FORMAT_R16G16B16A16_SSCALED = 94,
    497     VK_FORMAT_R16G16B16A16_UINT = 95,
    498     VK_FORMAT_R16G16B16A16_SINT = 96,
    499     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
    500     VK_FORMAT_R32_UINT = 98,
    501     VK_FORMAT_R32_SINT = 99,
    502     VK_FORMAT_R32_SFLOAT = 100,
    503     VK_FORMAT_R32G32_UINT = 101,
    504     VK_FORMAT_R32G32_SINT = 102,
    505     VK_FORMAT_R32G32_SFLOAT = 103,
    506     VK_FORMAT_R32G32B32_UINT = 104,
    507     VK_FORMAT_R32G32B32_SINT = 105,
    508     VK_FORMAT_R32G32B32_SFLOAT = 106,
    509     VK_FORMAT_R32G32B32A32_UINT = 107,
    510     VK_FORMAT_R32G32B32A32_SINT = 108,
    511     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
    512     VK_FORMAT_R64_UINT = 110,
    513     VK_FORMAT_R64_SINT = 111,
    514     VK_FORMAT_R64_SFLOAT = 112,
    515     VK_FORMAT_R64G64_UINT = 113,
    516     VK_FORMAT_R64G64_SINT = 114,
    517     VK_FORMAT_R64G64_SFLOAT = 115,
    518     VK_FORMAT_R64G64B64_UINT = 116,
    519     VK_FORMAT_R64G64B64_SINT = 117,
    520     VK_FORMAT_R64G64B64_SFLOAT = 118,
    521     VK_FORMAT_R64G64B64A64_UINT = 119,
    522     VK_FORMAT_R64G64B64A64_SINT = 120,
    523     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
    524     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
    525     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
    526     VK_FORMAT_D16_UNORM = 124,
    527     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
    528     VK_FORMAT_D32_SFLOAT = 126,
    529     VK_FORMAT_S8_UINT = 127,
    530     VK_FORMAT_D16_UNORM_S8_UINT = 128,
    531     VK_FORMAT_D24_UNORM_S8_UINT = 129,
    532     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
    533     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
    534     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
    535     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
    536     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
    537     VK_FORMAT_BC2_UNORM_BLOCK = 135,
    538     VK_FORMAT_BC2_SRGB_BLOCK = 136,
    539     VK_FORMAT_BC3_UNORM_BLOCK = 137,
    540     VK_FORMAT_BC3_SRGB_BLOCK = 138,
    541     VK_FORMAT_BC4_UNORM_BLOCK = 139,
    542     VK_FORMAT_BC4_SNORM_BLOCK = 140,
    543     VK_FORMAT_BC5_UNORM_BLOCK = 141,
    544     VK_FORMAT_BC5_SNORM_BLOCK = 142,
    545     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
    546     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
    547     VK_FORMAT_BC7_UNORM_BLOCK = 145,
    548     VK_FORMAT_BC7_SRGB_BLOCK = 146,
    549     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
    550     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
    551     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
    552     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
    553     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
    554     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
    555     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
    556     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
    557     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
    558     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
    559     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
    560     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
    561     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
    562     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
    563     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
    564     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
    565     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
    566     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
    567     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
    568     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
    569     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
    570     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
    571     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
    572     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
    573     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
    574     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
    575     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
    576     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
    577     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
    578     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
    579     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
    580     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
    581     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
    582     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
    583     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
    584     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
    585     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
    586     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
    587     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
    588     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
    589     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
    590     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
    591     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
    592     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
    593     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
    594     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
    595     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
    596     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
    597     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
    598     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
    599     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
    600     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
    601     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
    602     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
    603     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
    604     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
    605     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
    606     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
    607     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
    608     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
    609     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
    610     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
    611     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
    612     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
    613     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
    614     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
    615     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
    616     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
    617     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
    618     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
    619     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
    620     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033
    621 } VkFormat;
    622 typedef enum VkFormatFeatureFlagBits {
    623     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1,
    624     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2,
    625     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4,
    626     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8,
    627     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16,
    628     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32,
    629     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64,
    630     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128,
    631     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256,
    632     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512,
    633     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024,
    634     VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048,
    635     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096,
    636     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 16384,
    637     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 32768,
    638     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 131072,
    639     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144,
    640     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288,
    641     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576,
    642     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152,
    643     VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304,
    644     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608
    645 } VkFormatFeatureFlagBits;
    646 typedef enum VkFrontFace {
    647     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
    648     VK_FRONT_FACE_CLOCKWISE = 1
    649 } VkFrontFace;
    650 typedef enum VkImageAspectFlagBits {
    651     VK_IMAGE_ASPECT_COLOR_BIT = 1,
    652     VK_IMAGE_ASPECT_DEPTH_BIT = 2,
    653     VK_IMAGE_ASPECT_STENCIL_BIT = 4,
    654     VK_IMAGE_ASPECT_METADATA_BIT = 8,
    655     VK_IMAGE_ASPECT_PLANE_0_BIT = 16,
    656     VK_IMAGE_ASPECT_PLANE_1_BIT = 32,
    657     VK_IMAGE_ASPECT_PLANE_2_BIT = 64
    658 } VkImageAspectFlagBits;
    659 typedef enum VkImageCreateFlagBits {
    660     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1,
    661     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2,
    662     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4,
    663     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8,
    664     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16,
    665     VK_IMAGE_CREATE_ALIAS_BIT = 1024,
    666     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 64,
    667     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 32,
    668     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 128,
    669     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 256,
    670     VK_IMAGE_CREATE_PROTECTED_BIT = 2048,
    671     VK_IMAGE_CREATE_DISJOINT_BIT = 512
    672 } VkImageCreateFlagBits;
    673 typedef enum VkImageLayout {
    674     VK_IMAGE_LAYOUT_UNDEFINED = 0,
    675     VK_IMAGE_LAYOUT_GENERAL = 1,
    676     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
    677     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
    678     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
    679     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
    680     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
    681     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
    682     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
    683     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
    684     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
    685     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002
    686 } VkImageLayout;
    687 typedef enum VkImageTiling {
    688     VK_IMAGE_TILING_OPTIMAL = 0,
    689     VK_IMAGE_TILING_LINEAR = 1
    690 } VkImageTiling;
    691 typedef enum VkImageType {
    692     VK_IMAGE_TYPE_1D = 0,
    693     VK_IMAGE_TYPE_2D = 1,
    694     VK_IMAGE_TYPE_3D = 2
    695 } VkImageType;
    696 typedef enum VkImageUsageFlagBits {
    697     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1,
    698     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2,
    699     VK_IMAGE_USAGE_SAMPLED_BIT = 4,
    700     VK_IMAGE_USAGE_STORAGE_BIT = 8,
    701     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16,
    702     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32,
    703     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64,
    704     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128
    705 } VkImageUsageFlagBits;
    706 
    707 typedef enum VkImageViewType {
    708     VK_IMAGE_VIEW_TYPE_1D = 0,
    709     VK_IMAGE_VIEW_TYPE_2D = 1,
    710     VK_IMAGE_VIEW_TYPE_3D = 2,
    711     VK_IMAGE_VIEW_TYPE_CUBE = 3,
    712     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
    713     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
    714     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6
    715 } VkImageViewType;
    716 typedef enum VkSharingMode {
    717     VK_SHARING_MODE_EXCLUSIVE = 0,
    718     VK_SHARING_MODE_CONCURRENT = 1
    719 } VkSharingMode;
    720 typedef enum VkIndexType {
    721     VK_INDEX_TYPE_UINT16 = 0,
    722     VK_INDEX_TYPE_UINT32 = 1
    723 } VkIndexType;
    724 typedef enum VkLogicOp {
    725     VK_LOGIC_OP_CLEAR = 0,
    726     VK_LOGIC_OP_AND = 1,
    727     VK_LOGIC_OP_AND_REVERSE = 2,
    728     VK_LOGIC_OP_COPY = 3,
    729     VK_LOGIC_OP_AND_INVERTED = 4,
    730     VK_LOGIC_OP_NO_OP = 5,
    731     VK_LOGIC_OP_XOR = 6,
    732     VK_LOGIC_OP_OR = 7,
    733     VK_LOGIC_OP_NOR = 8,
    734     VK_LOGIC_OP_EQUIVALENT = 9,
    735     VK_LOGIC_OP_INVERT = 10,
    736     VK_LOGIC_OP_OR_REVERSE = 11,
    737     VK_LOGIC_OP_COPY_INVERTED = 12,
    738     VK_LOGIC_OP_OR_INVERTED = 13,
    739     VK_LOGIC_OP_NAND = 14,
    740     VK_LOGIC_OP_SET = 15
    741 } VkLogicOp;
    742 typedef enum VkMemoryHeapFlagBits {
    743     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1,
    744     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2
    745 } VkMemoryHeapFlagBits;
    746 typedef enum VkAccessFlagBits {
    747     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1,
    748     VK_ACCESS_INDEX_READ_BIT = 2,
    749     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4,
    750     VK_ACCESS_UNIFORM_READ_BIT = 8,
    751     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16,
    752     VK_ACCESS_SHADER_READ_BIT = 32,
    753     VK_ACCESS_SHADER_WRITE_BIT = 64,
    754     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128,
    755     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256,
    756     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512,
    757     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024,
    758     VK_ACCESS_TRANSFER_READ_BIT = 2048,
    759     VK_ACCESS_TRANSFER_WRITE_BIT = 4096,
    760     VK_ACCESS_HOST_READ_BIT = 8192,
    761     VK_ACCESS_HOST_WRITE_BIT = 16384,
    762     VK_ACCESS_MEMORY_READ_BIT = 32768,
    763     VK_ACCESS_MEMORY_WRITE_BIT = 65536
    764 } VkAccessFlagBits;
    765 typedef enum VkMemoryPropertyFlagBits {
    766     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1,
    767     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2,
    768     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4,
    769     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8,
    770     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16,
    771     VK_MEMORY_PROPERTY_PROTECTED_BIT = 32
    772 } VkMemoryPropertyFlagBits;
    773 typedef enum VkPhysicalDeviceType {
    774     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
    775     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
    776     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
    777     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
    778     VK_PHYSICAL_DEVICE_TYPE_CPU = 4
    779 } VkPhysicalDeviceType;
    780 typedef enum VkPipelineBindPoint {
    781     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
    782     VK_PIPELINE_BIND_POINT_COMPUTE = 1
    783 } VkPipelineBindPoint;
    784 typedef enum VkPipelineCreateFlagBits {
    785     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1,
    786     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2,
    787     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4,
    788     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 8,
    789     VK_PIPELINE_CREATE_DISPATCH_BASE = 16
    790 } VkPipelineCreateFlagBits;
    791 typedef enum VkPrimitiveTopology {
    792     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
    793     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
    794     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
    795     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
    796     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
    797     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
    798     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
    799     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
    800     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
    801     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
    802     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10
    803 } VkPrimitiveTopology;
    804 typedef enum VkQueryControlFlagBits {
    805     VK_QUERY_CONTROL_PRECISE_BIT = 1
    806 } VkQueryControlFlagBits;
    807 typedef enum VkQueryPipelineStatisticFlagBits {
    808     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1,
    809     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2,
    810     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4,
    811     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8,
    812     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16,
    813     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32,
    814     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64,
    815     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128,
    816     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256,
    817     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512,
    818     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024
    819 } VkQueryPipelineStatisticFlagBits;
    820 typedef enum VkQueryResultFlagBits {
    821     VK_QUERY_RESULT_64_BIT = 1,
    822     VK_QUERY_RESULT_WAIT_BIT = 2,
    823     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4,
    824     VK_QUERY_RESULT_PARTIAL_BIT = 8
    825 } VkQueryResultFlagBits;
    826 typedef enum VkQueryType {
    827     VK_QUERY_TYPE_OCCLUSION = 0,
    828     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
    829     VK_QUERY_TYPE_TIMESTAMP = 2
    830 } VkQueryType;
    831 typedef enum VkQueueFlagBits {
    832     VK_QUEUE_GRAPHICS_BIT = 1,
    833     VK_QUEUE_COMPUTE_BIT = 2,
    834     VK_QUEUE_TRANSFER_BIT = 4,
    835     VK_QUEUE_SPARSE_BINDING_BIT = 8,
    836     VK_QUEUE_PROTECTED_BIT = 16
    837 } VkQueueFlagBits;
    838 typedef enum VkSubpassContents {
    839     VK_SUBPASS_CONTENTS_INLINE = 0,
    840     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1
    841 } VkSubpassContents;
    842 typedef enum VkResult {
    843     VK_SUCCESS = 0,
    844     VK_NOT_READY = 1,
    845     VK_TIMEOUT = 2,
    846     VK_EVENT_SET = 3,
    847     VK_EVENT_RESET = 4,
    848     VK_INCOMPLETE = 5,
    849     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
    850     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
    851     VK_ERROR_INITIALIZATION_FAILED = -3,
    852     VK_ERROR_DEVICE_LOST = -4,
    853     VK_ERROR_MEMORY_MAP_FAILED = -5,
    854     VK_ERROR_LAYER_NOT_PRESENT = -6,
    855     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
    856     VK_ERROR_FEATURE_NOT_PRESENT = -8,
    857     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
    858     VK_ERROR_TOO_MANY_OBJECTS = -10,
    859     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
    860     VK_ERROR_FRAGMENTED_POOL = -12,
    861     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
    862     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
    863     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
    864     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
    865     VK_SUBOPTIMAL_KHR = 1000001003,
    866     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
    867     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001
    868 } VkResult;
    869 typedef enum VkShaderStageFlagBits {
    870     VK_SHADER_STAGE_VERTEX_BIT = 1,
    871     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
    872     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
    873     VK_SHADER_STAGE_GEOMETRY_BIT = 8,
    874     VK_SHADER_STAGE_FRAGMENT_BIT = 16,
    875     VK_SHADER_STAGE_COMPUTE_BIT = 32,
    876     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
    877     VK_SHADER_STAGE_ALL = 0x7FFFFFFF
    878 } VkShaderStageFlagBits;
    879 typedef enum VkSparseMemoryBindFlagBits {
    880     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1
    881 } VkSparseMemoryBindFlagBits;
    882 typedef enum VkStencilFaceFlagBits {
    883     VK_STENCIL_FACE_FRONT_BIT = 1,
    884     VK_STENCIL_FACE_BACK_BIT = 2,
    885     VK_STENCIL_FRONT_AND_BACK = 0x00000003
    886 } VkStencilFaceFlagBits;
    887 typedef enum VkStencilOp {
    888     VK_STENCIL_OP_KEEP = 0,
    889     VK_STENCIL_OP_ZERO = 1,
    890     VK_STENCIL_OP_REPLACE = 2,
    891     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
    892     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
    893     VK_STENCIL_OP_INVERT = 5,
    894     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
    895     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7
    896 } VkStencilOp;
    897 typedef enum VkStructureType {
    898     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
    899     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
    900     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
    901     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
    902     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
    903     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
    904     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
    905     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
    906     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
    907     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
    908     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
    909     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
    910     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
    911     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
    912     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
    913     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
    914     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
    915     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
    916     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
    917     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
    918     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
    919     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
    920     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
    921     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
    922     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
    923     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
    924     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
    925     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
    926     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
    927     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
    928     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
    929     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
    930     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
    931     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
    932     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
    933     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
    934     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
    935     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
    936     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
    937     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
    938     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
    939     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
    940     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
    941     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
    942     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
    943     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
    944     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
    945     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
    946     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
    947     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
    948     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
    949     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
    950     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
    951     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
    952     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
    953     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
    954     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
    955     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
    956     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
    957     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
    958     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
    959     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
    960     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
    961     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
    962     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
    963     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
    964     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
    965     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
    966     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
    967     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
    968     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
    969     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
    970     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
    971     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
    972     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
    973     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
    974     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
    975     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
    976     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
    977     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
    978     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
    979     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
    980     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
    981     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
    982     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
    983     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
    984     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
    985     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
    986     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
    987     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
    988     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
    989     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
    990     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
    991     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
    992     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
    993     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
    994     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
    995     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
    996     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
    997     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
    998     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
    999     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
   1000     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
   1001     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
   1002     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
   1003     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
   1004     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
   1005     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
   1006     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
   1007     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
   1008     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
   1009     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
   1010     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
   1011     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
   1012     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
   1013     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
   1014     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
   1015     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
   1016     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
   1017     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
   1018     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
   1019     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
   1020     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
   1021     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
   1022     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
   1023     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
   1024 } VkStructureType;
   1025 typedef enum VkSystemAllocationScope {
   1026     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
   1027     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
   1028     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
   1029     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
   1030     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4
   1031 } VkSystemAllocationScope;
   1032 typedef enum VkInternalAllocationType {
   1033     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0
   1034 } VkInternalAllocationType;
   1035 typedef enum VkSamplerAddressMode {
   1036     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
   1037     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
   1038     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
   1039     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3
   1040 } VkSamplerAddressMode;
   1041 typedef enum VkFilter {
   1042     VK_FILTER_NEAREST = 0,
   1043     VK_FILTER_LINEAR = 1
   1044 } VkFilter;
   1045 typedef enum VkSamplerMipmapMode {
   1046     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
   1047     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1
   1048 } VkSamplerMipmapMode;
   1049 typedef enum VkVertexInputRate {
   1050     VK_VERTEX_INPUT_RATE_VERTEX = 0,
   1051     VK_VERTEX_INPUT_RATE_INSTANCE = 1
   1052 } VkVertexInputRate;
   1053 typedef enum VkPipelineStageFlagBits {
   1054     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1,
   1055     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2,
   1056     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4,
   1057     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8,
   1058     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16,
   1059     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32,
   1060     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64,
   1061     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128,
   1062     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256,
   1063     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512,
   1064     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024,
   1065     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048,
   1066     VK_PIPELINE_STAGE_TRANSFER_BIT = 4096,
   1067     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192,
   1068     VK_PIPELINE_STAGE_HOST_BIT = 16384,
   1069     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768,
   1070     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536
   1071 } VkPipelineStageFlagBits;
   1072 typedef enum VkSparseImageFormatFlagBits {
   1073     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1,
   1074     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2,
   1075     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4
   1076 } VkSparseImageFormatFlagBits;
   1077 typedef enum VkSampleCountFlagBits {
   1078     VK_SAMPLE_COUNT_1_BIT = 1,
   1079     VK_SAMPLE_COUNT_2_BIT = 2,
   1080     VK_SAMPLE_COUNT_4_BIT = 4,
   1081     VK_SAMPLE_COUNT_8_BIT = 8,
   1082     VK_SAMPLE_COUNT_16_BIT = 16,
   1083     VK_SAMPLE_COUNT_32_BIT = 32,
   1084     VK_SAMPLE_COUNT_64_BIT = 64
   1085 } VkSampleCountFlagBits;
   1086 typedef enum VkAttachmentDescriptionFlagBits {
   1087     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1
   1088 } VkAttachmentDescriptionFlagBits;
   1089 typedef enum VkDescriptorPoolCreateFlagBits {
   1090     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1
   1091 } VkDescriptorPoolCreateFlagBits;
   1092 typedef enum VkDependencyFlagBits {
   1093     VK_DEPENDENCY_BY_REGION_BIT = 1,
   1094     VK_DEPENDENCY_DEVICE_GROUP_BIT = 4,
   1095     VK_DEPENDENCY_VIEW_LOCAL_BIT = 2
   1096 } VkDependencyFlagBits;
   1097 typedef enum VkObjectType {
   1098     VK_OBJECT_TYPE_UNKNOWN = 0,
   1099     VK_OBJECT_TYPE_INSTANCE = 1,
   1100     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
   1101     VK_OBJECT_TYPE_DEVICE = 3,
   1102     VK_OBJECT_TYPE_QUEUE = 4,
   1103     VK_OBJECT_TYPE_SEMAPHORE = 5,
   1104     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
   1105     VK_OBJECT_TYPE_FENCE = 7,
   1106     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
   1107     VK_OBJECT_TYPE_BUFFER = 9,
   1108     VK_OBJECT_TYPE_IMAGE = 10,
   1109     VK_OBJECT_TYPE_EVENT = 11,
   1110     VK_OBJECT_TYPE_QUERY_POOL = 12,
   1111     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
   1112     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
   1113     VK_OBJECT_TYPE_SHADER_MODULE = 15,
   1114     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
   1115     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
   1116     VK_OBJECT_TYPE_RENDER_PASS = 18,
   1117     VK_OBJECT_TYPE_PIPELINE = 19,
   1118     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
   1119     VK_OBJECT_TYPE_SAMPLER = 21,
   1120     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
   1121     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
   1122     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
   1123     VK_OBJECT_TYPE_COMMAND_POOL = 25,
   1124     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
   1125     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
   1126     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
   1127     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
   1128     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000
   1129 } VkObjectType;
   1130 typedef enum VkDescriptorUpdateTemplateType {
   1131     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0
   1132 } VkDescriptorUpdateTemplateType;
   1133 
   1134 typedef enum VkPointClippingBehavior {
   1135     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
   1136     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1
   1137 } VkPointClippingBehavior;
   1138 typedef enum VkColorSpaceKHR {
   1139     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
   1140     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
   1141 } VkColorSpaceKHR;
   1142 typedef enum VkCompositeAlphaFlagBitsKHR {
   1143     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1,
   1144     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2,
   1145     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4,
   1146     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8
   1147 } VkCompositeAlphaFlagBitsKHR;
   1148 typedef enum VkPresentModeKHR {
   1149     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
   1150     VK_PRESENT_MODE_MAILBOX_KHR = 1,
   1151     VK_PRESENT_MODE_FIFO_KHR = 2,
   1152     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3
   1153 } VkPresentModeKHR;
   1154 typedef enum VkSurfaceTransformFlagBitsKHR {
   1155     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1,
   1156     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2,
   1157     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4,
   1158     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8,
   1159     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16,
   1160     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32,
   1161     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64,
   1162     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128,
   1163     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256
   1164 } VkSurfaceTransformFlagBitsKHR;
   1165 typedef enum VkDebugReportFlagBitsEXT {
   1166     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1,
   1167     VK_DEBUG_REPORT_WARNING_BIT_EXT = 2,
   1168     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4,
   1169     VK_DEBUG_REPORT_ERROR_BIT_EXT = 8,
   1170     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16
   1171 } VkDebugReportFlagBitsEXT;
   1172 typedef enum VkDebugReportObjectTypeEXT {
   1173     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
   1174     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
   1175     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
   1176     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
   1177     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
   1178     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
   1179     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
   1180     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
   1181     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
   1182     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
   1183     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
   1184     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
   1185     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
   1186     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
   1187     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
   1188     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
   1189     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
   1190     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
   1191     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
   1192     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
   1193     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
   1194     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
   1195     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
   1196     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
   1197     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
   1198     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
   1199     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
   1200     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
   1201     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
   1202     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
   1203     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
   1204     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
   1205     VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
   1206     VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
   1207     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
   1208     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
   1209     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
   1210     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000
   1211 } VkDebugReportObjectTypeEXT;
   1212 typedef enum VkExternalMemoryHandleTypeFlagBits {
   1213     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1214     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1215     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1216     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8,
   1217     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16,
   1218     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32,
   1219     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64
   1220 } VkExternalMemoryHandleTypeFlagBits;
   1221 typedef enum VkExternalMemoryFeatureFlagBits {
   1222     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1,
   1223     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2,
   1224     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4
   1225 } VkExternalMemoryFeatureFlagBits;
   1226 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
   1227     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1228     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1229     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1230     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8,
   1231     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16
   1232 } VkExternalSemaphoreHandleTypeFlagBits;
   1233 typedef enum VkExternalSemaphoreFeatureFlagBits {
   1234     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1,
   1235     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2
   1236 } VkExternalSemaphoreFeatureFlagBits;
   1237 typedef enum VkSemaphoreImportFlagBits {
   1238     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1
   1239 } VkSemaphoreImportFlagBits;
   1240 typedef enum VkExternalFenceHandleTypeFlagBits {
   1241     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
   1242     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
   1243     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
   1244     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8
   1245 } VkExternalFenceHandleTypeFlagBits;
   1246 typedef enum VkExternalFenceFeatureFlagBits {
   1247     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1,
   1248     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2
   1249 } VkExternalFenceFeatureFlagBits;
   1250 typedef enum VkFenceImportFlagBits {
   1251     VK_FENCE_IMPORT_TEMPORARY_BIT = 1
   1252 } VkFenceImportFlagBits;
   1253 typedef enum VkPeerMemoryFeatureFlagBits {
   1254     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1,
   1255     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2,
   1256     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4,
   1257     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8
   1258 } VkPeerMemoryFeatureFlagBits;
   1259 typedef enum VkMemoryAllocateFlagBits {
   1260     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1
   1261 } VkMemoryAllocateFlagBits;
   1262 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
   1263     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1,
   1264     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2,
   1265     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4,
   1266     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8
   1267 } VkDeviceGroupPresentModeFlagBitsKHR;
   1268 typedef enum VkSwapchainCreateFlagBitsKHR {
   1269     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
   1270     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2
   1271 } VkSwapchainCreateFlagBitsKHR;
   1272 typedef enum VkSubgroupFeatureFlagBits {
   1273     VK_SUBGROUP_FEATURE_BASIC_BIT = 1,
   1274     VK_SUBGROUP_FEATURE_VOTE_BIT = 2,
   1275     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4,
   1276     VK_SUBGROUP_FEATURE_BALLOT_BIT = 8,
   1277     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16,
   1278     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32,
   1279     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64,
   1280     VK_SUBGROUP_FEATURE_QUAD_BIT = 128
   1281 } VkSubgroupFeatureFlagBits;
   1282 typedef enum VkTessellationDomainOrigin {
   1283     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
   1284     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1
   1285 } VkTessellationDomainOrigin;
   1286 typedef enum VkSamplerYcbcrModelConversion {
   1287     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
   1288     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
   1289     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
   1290     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
   1291     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4
   1292 } VkSamplerYcbcrModelConversion;
   1293 typedef enum VkSamplerYcbcrRange {
   1294     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
   1295     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1
   1296 } VkSamplerYcbcrRange;
   1297 typedef enum VkChromaLocation {
   1298     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
   1299     VK_CHROMA_LOCATION_MIDPOINT = 1
   1300 } VkChromaLocation;
   1301 typedef enum VkVendorId {
   1302     VK_VENDOR_ID_VIV = 0x10001,
   1303     VK_VENDOR_ID_VSI = 0x10002,
   1304     VK_VENDOR_ID_KAZAN = 0x10003
   1305 } VkVendorId;
   1306 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
   1307     void*                                       pUserData,
   1308     size_t                                      size,
   1309     VkInternalAllocationType                    allocationType,
   1310     VkSystemAllocationScope                     allocationScope);
   1311 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
   1312     void*                                       pUserData,
   1313     size_t                                      size,
   1314     VkInternalAllocationType                    allocationType,
   1315     VkSystemAllocationScope                     allocationScope);
   1316 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
   1317     void*                                       pUserData,
   1318     void*                                       pOriginal,
   1319     size_t                                      size,
   1320     size_t                                      alignment,
   1321     VkSystemAllocationScope                     allocationScope);
   1322 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
   1323     void*                                       pUserData,
   1324     size_t                                      size,
   1325     size_t                                      alignment,
   1326     VkSystemAllocationScope                     allocationScope);
   1327 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
   1328     void*                                       pUserData,
   1329     void*                                       pMemory);
   1330 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
   1331 typedef struct VkBaseOutStructure {
   1332     VkStructureType   sType;
   1333     struct  VkBaseOutStructure *  pNext;
   1334 } VkBaseOutStructure;
   1335 typedef struct VkBaseInStructure {
   1336     VkStructureType   sType;
   1337     const struct  VkBaseInStructure *  pNext;
   1338 } VkBaseInStructure;
   1339 typedef struct VkOffset2D {
   1340     int32_t          x;
   1341     int32_t          y;
   1342 } VkOffset2D;
   1343 typedef struct VkOffset3D {
   1344     int32_t          x;
   1345     int32_t          y;
   1346     int32_t          z;
   1347 } VkOffset3D;
   1348 typedef struct VkExtent2D {
   1349     uint32_t          width;
   1350     uint32_t          height;
   1351 } VkExtent2D;
   1352 typedef struct VkExtent3D {
   1353     uint32_t          width;
   1354     uint32_t          height;
   1355     uint32_t          depth;
   1356 } VkExtent3D;
   1357 typedef struct VkViewport {
   1358     float   x;
   1359     float   y;
   1360     float   width;
   1361     float   height;
   1362     float                         minDepth;
   1363     float                         maxDepth;
   1364 } VkViewport;
   1365 typedef struct VkRect2D {
   1366     VkOffset2D       offset;
   1367     VkExtent2D       extent;
   1368 } VkRect2D;
   1369 typedef struct VkClearRect {
   1370     VkRect2D         rect;
   1371     uint32_t         baseArrayLayer;
   1372     uint32_t         layerCount;
   1373 } VkClearRect;
   1374 typedef struct VkComponentMapping {
   1375     VkComponentSwizzle   r;
   1376     VkComponentSwizzle   g;
   1377     VkComponentSwizzle   b;
   1378     VkComponentSwizzle   a;
   1379 } VkComponentMapping;
   1380 typedef struct VkExtensionProperties {
   1381     char              extensionName [ VK_MAX_EXTENSION_NAME_SIZE ];
   1382     uint32_t          specVersion;
   1383 } VkExtensionProperties;
   1384 typedef struct VkLayerProperties {
   1385     char              layerName [ VK_MAX_EXTENSION_NAME_SIZE ];
   1386     uint32_t          specVersion;
   1387     uint32_t          implementationVersion;
   1388     char              description [ VK_MAX_DESCRIPTION_SIZE ];
   1389 } VkLayerProperties;
   1390 typedef struct VkApplicationInfo {
   1391     VkStructureType   sType;
   1392     const  void *      pNext;
   1393     const  char *      pApplicationName;
   1394     uint32_t          applicationVersion;
   1395     const  char *      pEngineName;
   1396     uint32_t          engineVersion;
   1397     uint32_t          apiVersion;
   1398 } VkApplicationInfo;
   1399 typedef struct VkAllocationCallbacks {
   1400     void *            pUserData;
   1401     PFN_vkAllocationFunction     pfnAllocation;
   1402     PFN_vkReallocationFunction   pfnReallocation;
   1403     PFN_vkFreeFunction      pfnFree;
   1404     PFN_vkInternalAllocationNotification   pfnInternalAllocation;
   1405     PFN_vkInternalFreeNotification   pfnInternalFree;
   1406 } VkAllocationCallbacks;
   1407 typedef struct VkDescriptorImageInfo {
   1408     VkSampler         sampler;
   1409     VkImageView       imageView;
   1410     VkImageLayout     imageLayout;
   1411 } VkDescriptorImageInfo;
   1412 typedef struct VkCopyDescriptorSet {
   1413     VkStructureType   sType;
   1414     const  void *             pNext;
   1415     VkDescriptorSet          srcSet;
   1416     uint32_t                 srcBinding;
   1417     uint32_t                 srcArrayElement;
   1418     VkDescriptorSet          dstSet;
   1419     uint32_t                 dstBinding;
   1420     uint32_t                 dstArrayElement;
   1421     uint32_t                 descriptorCount;
   1422 } VkCopyDescriptorSet;
   1423 typedef struct VkDescriptorPoolSize {
   1424     VkDescriptorType         type;
   1425     uint32_t                 descriptorCount;
   1426 } VkDescriptorPoolSize;
   1427 typedef struct VkDescriptorSetAllocateInfo {
   1428     VkStructureType   sType;
   1429     const  void *             pNext;
   1430     VkDescriptorPool         descriptorPool;
   1431     uint32_t                 descriptorSetCount;
   1432     const  VkDescriptorSetLayout *  pSetLayouts;
   1433 } VkDescriptorSetAllocateInfo;
   1434 typedef struct VkSpecializationMapEntry {
   1435     uint32_t                       constantID;
   1436     uint32_t                       offset;
   1437     size_t   size;
   1438 } VkSpecializationMapEntry;
   1439 typedef struct VkSpecializationInfo {
   1440     uint32_t                 mapEntryCount;
   1441     const  VkSpecializationMapEntry *  pMapEntries;
   1442     size_t                   dataSize;
   1443     const  void *             pData;
   1444 } VkSpecializationInfo;
   1445 typedef struct VkVertexInputBindingDescription {
   1446     uint32_t                 binding;
   1447     uint32_t                 stride;
   1448     VkVertexInputRate        inputRate;
   1449 } VkVertexInputBindingDescription;
   1450 typedef struct VkVertexInputAttributeDescription {
   1451     uint32_t                 location;
   1452     uint32_t                 binding;
   1453     VkFormat                 format;
   1454     uint32_t                 offset;
   1455 } VkVertexInputAttributeDescription;
   1456 typedef struct VkStencilOpState {
   1457     VkStencilOp              failOp;
   1458     VkStencilOp              passOp;
   1459     VkStencilOp              depthFailOp;
   1460     VkCompareOp              compareOp;
   1461     uint32_t                 compareMask;
   1462     uint32_t                 writeMask;
   1463     uint32_t                 reference;
   1464 } VkStencilOpState;
   1465 typedef struct VkCommandBufferAllocateInfo {
   1466     VkStructureType   sType;
   1467     const  void *             pNext;
   1468     VkCommandPool            commandPool;
   1469     VkCommandBufferLevel     level;
   1470     uint32_t                 commandBufferCount;
   1471 } VkCommandBufferAllocateInfo;
   1472 typedef union VkClearColorValue {
   1473     float                    float32 [4];
   1474     int32_t                  int32 [4];
   1475     uint32_t                 uint32 [4];
   1476 } VkClearColorValue;
   1477 typedef struct VkClearDepthStencilValue {
   1478     float                    depth;
   1479     uint32_t                 stencil;
   1480 } VkClearDepthStencilValue;
   1481 typedef union VkClearValue {
   1482     VkClearColorValue        color;
   1483     VkClearDepthStencilValue   depthStencil;
   1484 } VkClearValue;
   1485 typedef struct VkAttachmentReference {
   1486     uint32_t                 attachment;
   1487     VkImageLayout            layout;
   1488 } VkAttachmentReference;
   1489 typedef struct VkDrawIndirectCommand {
   1490     uint32_t                         vertexCount;
   1491     uint32_t                         instanceCount;
   1492     uint32_t                         firstVertex;
   1493     uint32_t   firstInstance;
   1494 } VkDrawIndirectCommand;
   1495 typedef struct VkDrawIndexedIndirectCommand {
   1496     uint32_t                         indexCount;
   1497     uint32_t                         instanceCount;
   1498     uint32_t                         firstIndex;
   1499     int32_t                          vertexOffset;
   1500     uint32_t   firstInstance;
   1501 } VkDrawIndexedIndirectCommand;
   1502 typedef struct VkDispatchIndirectCommand {
   1503     uint32_t   x;
   1504     uint32_t   y;
   1505     uint32_t   z;
   1506 } VkDispatchIndirectCommand;
   1507 typedef struct VkSurfaceFormatKHR {
   1508     VkFormat                           format;
   1509     VkColorSpaceKHR                    colorSpace;
   1510 } VkSurfaceFormatKHR;
   1511 typedef struct VkPresentInfoKHR {
   1512     VkStructureType   sType;
   1513     const  void *   pNext;
   1514     uint32_t           waitSemaphoreCount;
   1515     const  VkSemaphore *  pWaitSemaphores;
   1516     uint32_t                           swapchainCount;
   1517     const  VkSwapchainKHR *  pSwapchains;
   1518     const  uint32_t *  pImageIndices;
   1519     VkResult *  pResults;
   1520 } VkPresentInfoKHR;
   1521 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
   1522     VkStructureType   sType;
   1523     const  void *                       pNext;
   1524     VkExternalMemoryHandleTypeFlagBits   handleType;
   1525 } VkPhysicalDeviceExternalImageFormatInfo;
   1526 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
   1527     VkStructureType   sType;
   1528     const  void *                       pNext;
   1529     VkExternalSemaphoreHandleTypeFlagBits   handleType;
   1530 } VkPhysicalDeviceExternalSemaphoreInfo;
   1531 typedef struct VkPhysicalDeviceExternalFenceInfo {
   1532     VkStructureType   sType;
   1533     const  void *                       pNext;
   1534     VkExternalFenceHandleTypeFlagBits   handleType;
   1535 } VkPhysicalDeviceExternalFenceInfo;
   1536 typedef struct VkPhysicalDeviceMultiviewProperties {
   1537     VkStructureType   sType;
   1538     void *                             pNext;
   1539     uint32_t                           maxMultiviewViewCount;
   1540     uint32_t                           maxMultiviewInstanceIndex;
   1541 } VkPhysicalDeviceMultiviewProperties;
   1542 typedef struct VkRenderPassMultiviewCreateInfo {
   1543     VkStructureType          sType;
   1544     const  void *             pNext;
   1545     uint32_t                 subpassCount;
   1546     const  uint32_t *      pViewMasks;
   1547     uint32_t                 dependencyCount;
   1548     const  int32_t *    pViewOffsets;
   1549     uint32_t                 correlationMaskCount;
   1550     const  uint32_t *  pCorrelationMasks;
   1551 } VkRenderPassMultiviewCreateInfo;
   1552 typedef struct VkBindBufferMemoryDeviceGroupInfo {
   1553     VkStructureType   sType;
   1554     const  void *                       pNext;
   1555     uint32_t           deviceIndexCount;
   1556     const  uint32_t *   pDeviceIndices;
   1557 } VkBindBufferMemoryDeviceGroupInfo;
   1558 typedef struct VkBindImageMemoryDeviceGroupInfo {
   1559     VkStructureType   sType;
   1560     const  void *                       pNext;
   1561     uint32_t           deviceIndexCount;
   1562     const  uint32_t *   pDeviceIndices;
   1563     uint32_t           splitInstanceBindRegionCount;
   1564     const  VkRect2D *   pSplitInstanceBindRegions;
   1565 } VkBindImageMemoryDeviceGroupInfo;
   1566 typedef struct VkDeviceGroupRenderPassBeginInfo {
   1567     VkStructureType   sType;
   1568     const  void *                       pNext;
   1569     uint32_t                           deviceMask;
   1570     uint32_t           deviceRenderAreaCount;
   1571     const  VkRect2D *   pDeviceRenderAreas;
   1572 } VkDeviceGroupRenderPassBeginInfo;
   1573 typedef struct VkDeviceGroupCommandBufferBeginInfo {
   1574     VkStructureType   sType;
   1575     const  void *                       pNext;
   1576     uint32_t                           deviceMask;
   1577 } VkDeviceGroupCommandBufferBeginInfo;
   1578 typedef struct VkDeviceGroupSubmitInfo {
   1579     VkStructureType   sType;
   1580     const  void *                       pNext;
   1581     uint32_t           waitSemaphoreCount;
   1582     const  uint32_t *     pWaitSemaphoreDeviceIndices;
   1583     uint32_t           commandBufferCount;
   1584     const  uint32_t *     pCommandBufferDeviceMasks;
   1585     uint32_t           signalSemaphoreCount;
   1586     const  uint32_t *   pSignalSemaphoreDeviceIndices;
   1587 } VkDeviceGroupSubmitInfo;
   1588 typedef struct VkDeviceGroupBindSparseInfo {
   1589     VkStructureType   sType;
   1590     const  void *                       pNext;
   1591     uint32_t                           resourceDeviceIndex;
   1592     uint32_t                           memoryDeviceIndex;
   1593 } VkDeviceGroupBindSparseInfo;
   1594 typedef struct VkImageSwapchainCreateInfoKHR {
   1595     VkStructureType   sType;
   1596     const  void *                       pNext;
   1597     VkSwapchainKHR     swapchain;
   1598 } VkImageSwapchainCreateInfoKHR;
   1599 typedef struct VkBindImageMemorySwapchainInfoKHR {
   1600     VkStructureType   sType;
   1601     const  void *                       pNext;
   1602     VkSwapchainKHR   swapchain;
   1603     uint32_t                           imageIndex;
   1604 } VkBindImageMemorySwapchainInfoKHR;
   1605 typedef struct VkAcquireNextImageInfoKHR {
   1606     VkStructureType   sType;
   1607     const  void *                       pNext;
   1608     VkSwapchainKHR   swapchain;
   1609     uint64_t                           timeout;
   1610     VkSemaphore   semaphore;
   1611     VkFence   fence;
   1612     uint32_t                           deviceMask;
   1613 } VkAcquireNextImageInfoKHR;
   1614 typedef struct VkDeviceGroupPresentInfoKHR {
   1615     VkStructureType   sType;
   1616     const  void *                       pNext;
   1617     uint32_t           swapchainCount;
   1618     const  uint32_t *  pDeviceMasks;
   1619     VkDeviceGroupPresentModeFlagBitsKHR   mode;
   1620 } VkDeviceGroupPresentInfoKHR;
   1621 typedef struct VkDeviceGroupDeviceCreateInfo {
   1622     VkStructureType   sType;
   1623     const  void *                       pNext;
   1624     uint32_t                           physicalDeviceCount;
   1625     const  VkPhysicalDevice *   pPhysicalDevices;
   1626 } VkDeviceGroupDeviceCreateInfo;
   1627 typedef struct VkDescriptorUpdateTemplateEntry {
   1628     uint32_t                           dstBinding;
   1629     uint32_t                           dstArrayElement;
   1630     uint32_t                           descriptorCount;
   1631     VkDescriptorType                   descriptorType;
   1632     size_t                             offset;
   1633     size_t                             stride;
   1634 } VkDescriptorUpdateTemplateEntry;
   1635 typedef struct VkBufferMemoryRequirementsInfo2 {
   1636     VkStructureType   sType;
   1637     const  void *                                                           pNext;
   1638     VkBuffer                                                               buffer;
   1639 } VkBufferMemoryRequirementsInfo2;
   1640 typedef struct VkImageMemoryRequirementsInfo2 {
   1641     VkStructureType   sType;
   1642     const  void *                                                           pNext;
   1643     VkImage                                                                image;
   1644 } VkImageMemoryRequirementsInfo2;
   1645 typedef struct VkImageSparseMemoryRequirementsInfo2 {
   1646     VkStructureType   sType;
   1647     const  void *                                                           pNext;
   1648     VkImage                                                                image;
   1649 } VkImageSparseMemoryRequirementsInfo2;
   1650 typedef struct VkPhysicalDevicePointClippingProperties {
   1651     VkStructureType   sType;
   1652     void *                             pNext;
   1653     VkPointClippingBehavior        pointClippingBehavior;
   1654 } VkPhysicalDevicePointClippingProperties;
   1655 typedef struct VkMemoryDedicatedAllocateInfo {
   1656     VkStructureType   sType;
   1657     const  void *                       pNext;
   1658     VkImage            image;
   1659     VkBuffer           buffer;
   1660 } VkMemoryDedicatedAllocateInfo;
   1661 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
   1662     VkStructureType   sType;
   1663     const  void *                       pNext;
   1664     VkTessellationDomainOrigin      domainOrigin;
   1665 } VkPipelineTessellationDomainOriginStateCreateInfo;
   1666 typedef struct VkSamplerYcbcrConversionInfo {
   1667     VkStructureType   sType;
   1668     const  void *                       pNext;
   1669     VkSamplerYcbcrConversion        conversion;
   1670 } VkSamplerYcbcrConversionInfo;
   1671 typedef struct VkBindImagePlaneMemoryInfo {
   1672     VkStructureType   sType;
   1673     const  void *                       pNext;
   1674     VkImageAspectFlagBits              planeAspect;
   1675 } VkBindImagePlaneMemoryInfo;
   1676 typedef struct VkImagePlaneMemoryRequirementsInfo {
   1677     VkStructureType   sType;
   1678     const  void *                       pNext;
   1679     VkImageAspectFlagBits              planeAspect;
   1680 } VkImagePlaneMemoryRequirementsInfo;
   1681 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
   1682     VkStructureType   sType;
   1683     void *       pNext;
   1684     uint32_t                           combinedImageSamplerDescriptorCount;
   1685 } VkSamplerYcbcrConversionImageFormatProperties;
   1686 typedef uint32_t VkSampleMask;
   1687 typedef uint32_t VkBool32;
   1688 typedef uint32_t VkFlags;
   1689 typedef uint64_t VkDeviceSize;
   1690 typedef VkFlags VkFramebufferCreateFlags;
   1691 typedef VkFlags VkQueryPoolCreateFlags;
   1692 typedef VkFlags VkRenderPassCreateFlags;
   1693 typedef VkFlags VkSamplerCreateFlags;
   1694 typedef VkFlags VkPipelineLayoutCreateFlags;
   1695 typedef VkFlags VkPipelineCacheCreateFlags;
   1696 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
   1697 typedef VkFlags VkPipelineDynamicStateCreateFlags;
   1698 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
   1699 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
   1700 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
   1701 typedef VkFlags VkPipelineViewportStateCreateFlags;
   1702 typedef VkFlags VkPipelineTessellationStateCreateFlags;
   1703 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
   1704 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
   1705 typedef VkFlags VkPipelineShaderStageCreateFlags;
   1706 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
   1707 typedef VkFlags VkBufferViewCreateFlags;
   1708 typedef VkFlags VkInstanceCreateFlags;
   1709 typedef VkFlags VkDeviceCreateFlags;
   1710 typedef VkFlags VkDeviceQueueCreateFlags;
   1711 typedef VkFlags VkQueueFlags;
   1712 typedef VkFlags VkMemoryPropertyFlags;
   1713 typedef VkFlags VkMemoryHeapFlags;
   1714 typedef VkFlags VkAccessFlags;
   1715 typedef VkFlags VkBufferUsageFlags;
   1716 typedef VkFlags VkBufferCreateFlags;
   1717 typedef VkFlags VkShaderStageFlags;
   1718 typedef VkFlags VkImageUsageFlags;
   1719 typedef VkFlags VkImageCreateFlags;
   1720 typedef VkFlags VkImageViewCreateFlags;
   1721 typedef VkFlags VkPipelineCreateFlags;
   1722 typedef VkFlags VkColorComponentFlags;
   1723 typedef VkFlags VkFenceCreateFlags;
   1724 typedef VkFlags VkSemaphoreCreateFlags;
   1725 typedef VkFlags VkFormatFeatureFlags;
   1726 typedef VkFlags VkQueryControlFlags;
   1727 typedef VkFlags VkQueryResultFlags;
   1728 typedef VkFlags VkShaderModuleCreateFlags;
   1729 typedef VkFlags VkEventCreateFlags;
   1730 typedef VkFlags VkCommandPoolCreateFlags;
   1731 typedef VkFlags VkCommandPoolResetFlags;
   1732 typedef VkFlags VkCommandBufferResetFlags;
   1733 typedef VkFlags VkCommandBufferUsageFlags;
   1734 typedef VkFlags VkQueryPipelineStatisticFlags;
   1735 typedef VkFlags VkMemoryMapFlags;
   1736 typedef VkFlags VkImageAspectFlags;
   1737 typedef VkFlags VkSparseMemoryBindFlags;
   1738 typedef VkFlags VkSparseImageFormatFlags;
   1739 typedef VkFlags VkSubpassDescriptionFlags;
   1740 typedef VkFlags VkPipelineStageFlags;
   1741 typedef VkFlags VkSampleCountFlags;
   1742 typedef VkFlags VkAttachmentDescriptionFlags;
   1743 typedef VkFlags VkStencilFaceFlags;
   1744 typedef VkFlags VkCullModeFlags;
   1745 typedef VkFlags VkDescriptorPoolCreateFlags;
   1746 typedef VkFlags VkDescriptorPoolResetFlags;
   1747 typedef VkFlags VkDependencyFlags;
   1748 typedef VkFlags VkSubgroupFeatureFlags;
   1749 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
   1750 typedef VkFlags VkCompositeAlphaFlagsKHR;
   1751 typedef VkFlags VkSurfaceTransformFlagsKHR;
   1752 typedef VkFlags VkSwapchainCreateFlagsKHR;
   1753 typedef VkFlags VkPeerMemoryFeatureFlags;
   1754 typedef VkFlags VkMemoryAllocateFlags;
   1755 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
   1756 typedef VkFlags VkDebugReportFlagsEXT;
   1757 typedef VkFlags VkCommandPoolTrimFlags;
   1758 typedef VkFlags VkExternalMemoryHandleTypeFlags;
   1759 typedef VkFlags VkExternalMemoryFeatureFlags;
   1760 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
   1761 typedef VkFlags VkExternalSemaphoreFeatureFlags;
   1762 typedef VkFlags VkSemaphoreImportFlags;
   1763 typedef VkFlags VkExternalFenceHandleTypeFlags;
   1764 typedef VkFlags VkExternalFenceFeatureFlags;
   1765 typedef VkFlags VkFenceImportFlags;
   1766 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
   1767     VkDebugReportFlagsEXT                       flags,
   1768     VkDebugReportObjectTypeEXT                  objectType,
   1769     uint64_t                                    object,
   1770     size_t                                      location,
   1771     int32_t                                     messageCode,
   1772     const char*                                 pLayerPrefix,
   1773     const char*                                 pMessage,
   1774     void*                                       pUserData);
   1775 typedef struct VkDeviceQueueCreateInfo {
   1776     VkStructureType   sType;
   1777     const  void *      pNext;
   1778     VkDeviceQueueCreateFlags      flags;
   1779     uint32_t          queueFamilyIndex;
   1780     uint32_t          queueCount;
   1781     const  float *     pQueuePriorities;
   1782 } VkDeviceQueueCreateInfo;
   1783 typedef struct VkInstanceCreateInfo {
   1784     VkStructureType   sType;
   1785     const  void *      pNext;
   1786     VkInstanceCreateFlags    flags;
   1787     const  VkApplicationInfo *  pApplicationInfo;
   1788     uint32_t                 enabledLayerCount;
   1789     const  char * const*       ppEnabledLayerNames;
   1790     uint32_t                 enabledExtensionCount;
   1791     const  char * const*       ppEnabledExtensionNames;
   1792 } VkInstanceCreateInfo;
   1793 typedef struct VkQueueFamilyProperties {
   1794     VkQueueFlags             queueFlags;
   1795     uint32_t                 queueCount;
   1796     uint32_t                 timestampValidBits;
   1797     VkExtent3D               minImageTransferGranularity;
   1798 } VkQueueFamilyProperties;
   1799 typedef struct VkMemoryAllocateInfo {
   1800     VkStructureType   sType;
   1801     const  void *             pNext;
   1802     VkDeviceSize             allocationSize;
   1803     uint32_t                 memoryTypeIndex;
   1804 } VkMemoryAllocateInfo;
   1805 typedef struct VkMemoryRequirements {
   1806     VkDeviceSize             size;
   1807     VkDeviceSize             alignment;
   1808     uint32_t                 memoryTypeBits;
   1809 } VkMemoryRequirements;
   1810 typedef struct VkSparseImageFormatProperties {
   1811     VkImageAspectFlags       aspectMask;
   1812     VkExtent3D               imageGranularity;
   1813     VkSparseImageFormatFlags   flags;
   1814 } VkSparseImageFormatProperties;
   1815 typedef struct VkSparseImageMemoryRequirements {
   1816     VkSparseImageFormatProperties   formatProperties;
   1817     uint32_t                 imageMipTailFirstLod;
   1818     VkDeviceSize             imageMipTailSize;
   1819     VkDeviceSize             imageMipTailOffset;
   1820     VkDeviceSize             imageMipTailStride;
   1821 } VkSparseImageMemoryRequirements;
   1822 typedef struct VkMemoryType {
   1823     VkMemoryPropertyFlags    propertyFlags;
   1824     uint32_t                 heapIndex;
   1825 } VkMemoryType;
   1826 typedef struct VkMemoryHeap {
   1827     VkDeviceSize             size;
   1828     VkMemoryHeapFlags        flags;
   1829 } VkMemoryHeap;
   1830 typedef struct VkMappedMemoryRange {
   1831     VkStructureType   sType;
   1832     const  void *             pNext;
   1833     VkDeviceMemory           memory;
   1834     VkDeviceSize             offset;
   1835     VkDeviceSize             size;
   1836 } VkMappedMemoryRange;
   1837 typedef struct VkFormatProperties {
   1838     VkFormatFeatureFlags     linearTilingFeatures;
   1839     VkFormatFeatureFlags     optimalTilingFeatures;
   1840     VkFormatFeatureFlags     bufferFeatures;
   1841 } VkFormatProperties;
   1842 typedef struct VkImageFormatProperties {
   1843     VkExtent3D               maxExtent;
   1844     uint32_t                 maxMipLevels;
   1845     uint32_t                 maxArrayLayers;
   1846     VkSampleCountFlags       sampleCounts;
   1847     VkDeviceSize             maxResourceSize;
   1848 } VkImageFormatProperties;
   1849 typedef struct VkDescriptorBufferInfo {
   1850     VkBuffer                 buffer;
   1851     VkDeviceSize             offset;
   1852     VkDeviceSize             range;
   1853 } VkDescriptorBufferInfo;
   1854 typedef struct VkWriteDescriptorSet {
   1855     VkStructureType   sType;
   1856     const  void *             pNext;
   1857     VkDescriptorSet          dstSet;
   1858     uint32_t                 dstBinding;
   1859     uint32_t                 dstArrayElement;
   1860     uint32_t                 descriptorCount;
   1861     VkDescriptorType         descriptorType;
   1862     const  VkDescriptorImageInfo *  pImageInfo;
   1863     const  VkDescriptorBufferInfo *  pBufferInfo;
   1864     const  VkBufferView *     pTexelBufferView;
   1865 } VkWriteDescriptorSet;
   1866 typedef struct VkBufferCreateInfo {
   1867     VkStructureType   sType;
   1868     const  void *             pNext;
   1869     VkBufferCreateFlags      flags;
   1870     VkDeviceSize             size;
   1871     VkBufferUsageFlags       usage;
   1872     VkSharingMode            sharingMode;
   1873     uint32_t                 queueFamilyIndexCount;
   1874     const  uint32_t *         pQueueFamilyIndices;
   1875 } VkBufferCreateInfo;
   1876 typedef struct VkBufferViewCreateInfo {
   1877     VkStructureType   sType;
   1878     const  void *             pNext;
   1879     VkBufferViewCreateFlags flags;
   1880     VkBuffer                 buffer;
   1881     VkFormat                 format;
   1882     VkDeviceSize             offset;
   1883     VkDeviceSize             range;
   1884 } VkBufferViewCreateInfo;
   1885 typedef struct VkImageSubresource {
   1886     VkImageAspectFlags       aspectMask;
   1887     uint32_t                 mipLevel;
   1888     uint32_t                 arrayLayer;
   1889 } VkImageSubresource;
   1890 typedef struct VkImageSubresourceLayers {
   1891     VkImageAspectFlags       aspectMask;
   1892     uint32_t                 mipLevel;
   1893     uint32_t                 baseArrayLayer;
   1894     uint32_t                 layerCount;
   1895 } VkImageSubresourceLayers;
   1896 typedef struct VkImageSubresourceRange {
   1897     VkImageAspectFlags       aspectMask;
   1898     uint32_t                 baseMipLevel;
   1899     uint32_t                 levelCount;
   1900     uint32_t                 baseArrayLayer;
   1901     uint32_t                 layerCount;
   1902 } VkImageSubresourceRange;
   1903 typedef struct VkMemoryBarrier {
   1904     VkStructureType   sType;
   1905     const  void *             pNext;
   1906     VkAccessFlags            srcAccessMask;
   1907     VkAccessFlags            dstAccessMask;
   1908 } VkMemoryBarrier;
   1909 typedef struct VkBufferMemoryBarrier {
   1910     VkStructureType   sType;
   1911     const  void *             pNext;
   1912     VkAccessFlags            srcAccessMask;
   1913     VkAccessFlags            dstAccessMask;
   1914     uint32_t                 srcQueueFamilyIndex;
   1915     uint32_t                 dstQueueFamilyIndex;
   1916     VkBuffer                 buffer;
   1917     VkDeviceSize             offset;
   1918     VkDeviceSize             size;
   1919 } VkBufferMemoryBarrier;
   1920 typedef struct VkImageMemoryBarrier {
   1921     VkStructureType   sType;
   1922     const  void *             pNext;
   1923     VkAccessFlags            srcAccessMask;
   1924     VkAccessFlags            dstAccessMask;
   1925     VkImageLayout            oldLayout;
   1926     VkImageLayout            newLayout;
   1927     uint32_t                 srcQueueFamilyIndex;
   1928     uint32_t                 dstQueueFamilyIndex;
   1929     VkImage                  image;
   1930     VkImageSubresourceRange   subresourceRange;
   1931 } VkImageMemoryBarrier;
   1932 typedef struct VkImageCreateInfo {
   1933     VkStructureType   sType;
   1934     const  void *             pNext;
   1935     VkImageCreateFlags       flags;
   1936     VkImageType              imageType;
   1937     VkFormat                 format;
   1938     VkExtent3D               extent;
   1939     uint32_t                 mipLevels;
   1940     uint32_t                 arrayLayers;
   1941     VkSampleCountFlagBits    samples;
   1942     VkImageTiling            tiling;
   1943     VkImageUsageFlags        usage;
   1944     VkSharingMode            sharingMode;
   1945     uint32_t                 queueFamilyIndexCount;
   1946     const  uint32_t *         pQueueFamilyIndices;
   1947     VkImageLayout            initialLayout;
   1948 } VkImageCreateInfo;
   1949 typedef struct VkSubresourceLayout {
   1950     VkDeviceSize             offset;
   1951     VkDeviceSize             size;
   1952     VkDeviceSize             rowPitch;
   1953     VkDeviceSize             arrayPitch;
   1954     VkDeviceSize             depthPitch;
   1955 } VkSubresourceLayout;
   1956 typedef struct VkImageViewCreateInfo {
   1957     VkStructureType   sType;
   1958     const  void *             pNext;
   1959     VkImageViewCreateFlags   flags;
   1960     VkImage                  image;
   1961     VkImageViewType          viewType;
   1962     VkFormat                 format;
   1963     VkComponentMapping       components;
   1964     VkImageSubresourceRange   subresourceRange;
   1965 } VkImageViewCreateInfo;
   1966 typedef struct VkBufferCopy {
   1967     VkDeviceSize                         srcOffset;
   1968     VkDeviceSize                         dstOffset;
   1969     VkDeviceSize   size;
   1970 } VkBufferCopy;
   1971 typedef struct VkSparseMemoryBind {
   1972     VkDeviceSize             resourceOffset;
   1973     VkDeviceSize             size;
   1974     VkDeviceMemory           memory;
   1975     VkDeviceSize             memoryOffset;
   1976     VkSparseMemoryBindFlags flags;
   1977 } VkSparseMemoryBind;
   1978 typedef struct VkSparseImageMemoryBind {
   1979     VkImageSubresource       subresource;
   1980     VkOffset3D               offset;
   1981     VkExtent3D               extent;
   1982     VkDeviceMemory           memory;
   1983     VkDeviceSize             memoryOffset;
   1984     VkSparseMemoryBindFlags flags;
   1985 } VkSparseImageMemoryBind;
   1986 typedef struct VkSparseBufferMemoryBindInfo {
   1987     VkBuffer   buffer;
   1988     uint32_t                 bindCount;
   1989     const  VkSparseMemoryBind *  pBinds;
   1990 } VkSparseBufferMemoryBindInfo;
   1991 typedef struct VkSparseImageOpaqueMemoryBindInfo {
   1992     VkImage   image;
   1993     uint32_t                 bindCount;
   1994     const  VkSparseMemoryBind *  pBinds;
   1995 } VkSparseImageOpaqueMemoryBindInfo;
   1996 typedef struct VkSparseImageMemoryBindInfo {
   1997     VkImage   image;
   1998     uint32_t                 bindCount;
   1999     const  VkSparseImageMemoryBind *  pBinds;
   2000 } VkSparseImageMemoryBindInfo;
   2001 typedef struct VkBindSparseInfo {
   2002     VkStructureType   sType;
   2003     const  void *             pNext;
   2004     uint32_t                 waitSemaphoreCount;
   2005     const  VkSemaphore *      pWaitSemaphores;
   2006     uint32_t                 bufferBindCount;
   2007     const  VkSparseBufferMemoryBindInfo *  pBufferBinds;
   2008     uint32_t                 imageOpaqueBindCount;
   2009     const  VkSparseImageOpaqueMemoryBindInfo *  pImageOpaqueBinds;
   2010     uint32_t                 imageBindCount;
   2011     const  VkSparseImageMemoryBindInfo *  pImageBinds;
   2012     uint32_t                 signalSemaphoreCount;
   2013     const  VkSemaphore *      pSignalSemaphores;
   2014 } VkBindSparseInfo;
   2015 typedef struct VkImageCopy {
   2016     VkImageSubresourceLayers   srcSubresource;
   2017     VkOffset3D               srcOffset;
   2018     VkImageSubresourceLayers   dstSubresource;
   2019     VkOffset3D               dstOffset;
   2020     VkExtent3D               extent;
   2021 } VkImageCopy;
   2022 typedef struct VkImageBlit {
   2023     VkImageSubresourceLayers   srcSubresource;
   2024     VkOffset3D               srcOffsets [2];
   2025     VkImageSubresourceLayers   dstSubresource;
   2026     VkOffset3D               dstOffsets [2];
   2027 } VkImageBlit;
   2028 typedef struct VkBufferImageCopy {
   2029     VkDeviceSize             bufferOffset;
   2030     uint32_t                 bufferRowLength;
   2031     uint32_t                 bufferImageHeight;
   2032     VkImageSubresourceLayers   imageSubresource;
   2033     VkOffset3D               imageOffset;
   2034     VkExtent3D               imageExtent;
   2035 } VkBufferImageCopy;
   2036 typedef struct VkImageResolve {
   2037     VkImageSubresourceLayers   srcSubresource;
   2038     VkOffset3D               srcOffset;
   2039     VkImageSubresourceLayers   dstSubresource;
   2040     VkOffset3D               dstOffset;
   2041     VkExtent3D               extent;
   2042 } VkImageResolve;
   2043 typedef struct VkShaderModuleCreateInfo {
   2044     VkStructureType   sType;
   2045     const  void *             pNext;
   2046     VkShaderModuleCreateFlags   flags;
   2047     size_t                   codeSize;
   2048     const  uint32_t *             pCode;
   2049 } VkShaderModuleCreateInfo;
   2050 typedef struct VkDescriptorSetLayoutBinding {
   2051     uint32_t                 binding;
   2052     VkDescriptorType         descriptorType;
   2053     uint32_t   descriptorCount;
   2054     VkShaderStageFlags       stageFlags;
   2055     const  VkSampler *        pImmutableSamplers;
   2056 } VkDescriptorSetLayoutBinding;
   2057 typedef struct VkDescriptorSetLayoutCreateInfo {
   2058     VkStructureType   sType;
   2059     const  void *             pNext;
   2060     VkDescriptorSetLayoutCreateFlags      flags;
   2061     uint32_t                 bindingCount;
   2062     const  VkDescriptorSetLayoutBinding *  pBindings;
   2063 } VkDescriptorSetLayoutCreateInfo;
   2064 typedef struct VkDescriptorPoolCreateInfo {
   2065     VkStructureType   sType;
   2066     const  void *             pNext;
   2067     VkDescriptorPoolCreateFlags    flags;
   2068     uint32_t                 maxSets;
   2069     uint32_t                 poolSizeCount;
   2070     const  VkDescriptorPoolSize *  pPoolSizes;
   2071 } VkDescriptorPoolCreateInfo;
   2072 typedef struct VkPipelineShaderStageCreateInfo {
   2073     VkStructureType   sType;
   2074     const  void *             pNext;
   2075     VkPipelineShaderStageCreateFlags      flags;
   2076     VkShaderStageFlagBits    stage;
   2077     VkShaderModule           module;
   2078     const  char *             pName;
   2079     const  VkSpecializationInfo *  pSpecializationInfo;
   2080 } VkPipelineShaderStageCreateInfo;
   2081 typedef struct VkComputePipelineCreateInfo {
   2082     VkStructureType   sType;
   2083     const  void *             pNext;
   2084     VkPipelineCreateFlags    flags;
   2085     VkPipelineShaderStageCreateInfo   stage;
   2086     VkPipelineLayout         layout;
   2087     VkPipeline        basePipelineHandle;
   2088     int32_t                  basePipelineIndex;
   2089 } VkComputePipelineCreateInfo;
   2090 typedef struct VkPipelineVertexInputStateCreateInfo {
   2091     VkStructureType   sType;
   2092     const  void *             pNext;
   2093     VkPipelineVertexInputStateCreateFlags      flags;
   2094     uint32_t                 vertexBindingDescriptionCount;
   2095     const  VkVertexInputBindingDescription *  pVertexBindingDescriptions;
   2096     uint32_t                 vertexAttributeDescriptionCount;
   2097     const  VkVertexInputAttributeDescription *  pVertexAttributeDescriptions;
   2098 } VkPipelineVertexInputStateCreateInfo;
   2099 typedef struct VkPipelineInputAssemblyStateCreateInfo {
   2100     VkStructureType   sType;
   2101     const  void *             pNext;
   2102     VkPipelineInputAssemblyStateCreateFlags      flags;
   2103     VkPrimitiveTopology      topology;
   2104     VkBool32                 primitiveRestartEnable;
   2105 } VkPipelineInputAssemblyStateCreateInfo;
   2106 typedef struct VkPipelineTessellationStateCreateInfo {
   2107     VkStructureType   sType;
   2108     const  void *             pNext;
   2109     VkPipelineTessellationStateCreateFlags      flags;
   2110     uint32_t                 patchControlPoints;
   2111 } VkPipelineTessellationStateCreateInfo;
   2112 typedef struct VkPipelineViewportStateCreateInfo {
   2113     VkStructureType   sType;
   2114     const  void *             pNext;
   2115     VkPipelineViewportStateCreateFlags      flags;
   2116     uint32_t                 viewportCount;
   2117     const  VkViewport *       pViewports;
   2118     uint32_t                 scissorCount;
   2119     const  VkRect2D *         pScissors;
   2120 } VkPipelineViewportStateCreateInfo;
   2121 typedef struct VkPipelineRasterizationStateCreateInfo {
   2122     VkStructureType   sType;
   2123     const  void *  pNext;
   2124     VkPipelineRasterizationStateCreateFlags      flags;
   2125     VkBool32                 depthClampEnable;
   2126     VkBool32                 rasterizerDiscardEnable;
   2127     VkPolygonMode            polygonMode;
   2128     VkCullModeFlags          cullMode;
   2129     VkFrontFace              frontFace;
   2130     VkBool32                 depthBiasEnable;
   2131     float                    depthBiasConstantFactor;
   2132     float                    depthBiasClamp;
   2133     float                    depthBiasSlopeFactor;
   2134     float                    lineWidth;
   2135 } VkPipelineRasterizationStateCreateInfo;
   2136 typedef struct VkPipelineMultisampleStateCreateInfo {
   2137     VkStructureType   sType;
   2138     const  void *             pNext;
   2139     VkPipelineMultisampleStateCreateFlags      flags;
   2140     VkSampleCountFlagBits    rasterizationSamples;
   2141     VkBool32                 sampleShadingEnable;
   2142     float                    minSampleShading;
   2143     const  VkSampleMask *     pSampleMask;
   2144     VkBool32                 alphaToCoverageEnable;
   2145     VkBool32                 alphaToOneEnable;
   2146 } VkPipelineMultisampleStateCreateInfo;
   2147 typedef struct VkPipelineColorBlendAttachmentState {
   2148     VkBool32                 blendEnable;
   2149     VkBlendFactor            srcColorBlendFactor;
   2150     VkBlendFactor            dstColorBlendFactor;
   2151     VkBlendOp                colorBlendOp;
   2152     VkBlendFactor            srcAlphaBlendFactor;
   2153     VkBlendFactor            dstAlphaBlendFactor;
   2154     VkBlendOp                alphaBlendOp;
   2155     VkColorComponentFlags    colorWriteMask;
   2156 } VkPipelineColorBlendAttachmentState;
   2157 typedef struct VkPipelineColorBlendStateCreateInfo {
   2158     VkStructureType   sType;
   2159     const  void *             pNext;
   2160     VkPipelineColorBlendStateCreateFlags      flags;
   2161     VkBool32                 logicOpEnable;
   2162     VkLogicOp                logicOp;
   2163     uint32_t                 attachmentCount;
   2164     const  VkPipelineColorBlendAttachmentState *  pAttachments;
   2165     float                    blendConstants [4];
   2166 } VkPipelineColorBlendStateCreateInfo;
   2167 typedef struct VkPipelineDynamicStateCreateInfo {
   2168     VkStructureType   sType;
   2169     const  void *             pNext;
   2170     VkPipelineDynamicStateCreateFlags      flags;
   2171     uint32_t                 dynamicStateCount;
   2172     const  VkDynamicState *   pDynamicStates;
   2173 } VkPipelineDynamicStateCreateInfo;
   2174 typedef struct VkPipelineDepthStencilStateCreateInfo {
   2175     VkStructureType   sType;
   2176     const  void *             pNext;
   2177     VkPipelineDepthStencilStateCreateFlags      flags;
   2178     VkBool32                 depthTestEnable;
   2179     VkBool32                 depthWriteEnable;
   2180     VkCompareOp              depthCompareOp;
   2181     VkBool32                 depthBoundsTestEnable;
   2182     VkBool32                 stencilTestEnable;
   2183     VkStencilOpState         front;
   2184     VkStencilOpState         back;
   2185     float                    minDepthBounds;
   2186     float                    maxDepthBounds;
   2187 } VkPipelineDepthStencilStateCreateInfo;
   2188 typedef struct VkGraphicsPipelineCreateInfo {
   2189     VkStructureType   sType;
   2190     const  void *             pNext;
   2191     VkPipelineCreateFlags    flags;
   2192     uint32_t                 stageCount;
   2193     const  VkPipelineShaderStageCreateInfo *  pStages;
   2194     const  VkPipelineVertexInputStateCreateInfo *  pVertexInputState;
   2195     const  VkPipelineInputAssemblyStateCreateInfo *  pInputAssemblyState;
   2196     const  VkPipelineTessellationStateCreateInfo *  pTessellationState;
   2197     const  VkPipelineViewportStateCreateInfo *  pViewportState;
   2198     const  VkPipelineRasterizationStateCreateInfo *  pRasterizationState;
   2199     const  VkPipelineMultisampleStateCreateInfo *  pMultisampleState;
   2200     const  VkPipelineDepthStencilStateCreateInfo *  pDepthStencilState;
   2201     const  VkPipelineColorBlendStateCreateInfo *  pColorBlendState;
   2202     const  VkPipelineDynamicStateCreateInfo *  pDynamicState;
   2203     VkPipelineLayout         layout;
   2204     VkRenderPass             renderPass;
   2205     uint32_t                 subpass;
   2206     VkPipeline        basePipelineHandle;
   2207     int32_t                  basePipelineIndex;
   2208 } VkGraphicsPipelineCreateInfo;
   2209 typedef struct VkPipelineCacheCreateInfo {
   2210     VkStructureType   sType;
   2211     const  void *             pNext;
   2212     VkPipelineCacheCreateFlags      flags;
   2213     size_t                   initialDataSize;
   2214     const  void *             pInitialData;
   2215 } VkPipelineCacheCreateInfo;
   2216 typedef struct VkPushConstantRange {
   2217     VkShaderStageFlags       stageFlags;
   2218     uint32_t                 offset;
   2219     uint32_t                 size;
   2220 } VkPushConstantRange;
   2221 typedef struct VkPipelineLayoutCreateInfo {
   2222     VkStructureType   sType;
   2223     const  void *             pNext;
   2224     VkPipelineLayoutCreateFlags      flags;
   2225     uint32_t                 setLayoutCount;
   2226     const  VkDescriptorSetLayout *  pSetLayouts;
   2227     uint32_t                 pushConstantRangeCount;
   2228     const  VkPushConstantRange *  pPushConstantRanges;
   2229 } VkPipelineLayoutCreateInfo;
   2230 typedef struct VkSamplerCreateInfo {
   2231     VkStructureType   sType;
   2232     const  void *             pNext;
   2233     VkSamplerCreateFlags     flags;
   2234     VkFilter                 magFilter;
   2235     VkFilter                 minFilter;
   2236     VkSamplerMipmapMode      mipmapMode;
   2237     VkSamplerAddressMode     addressModeU;
   2238     VkSamplerAddressMode     addressModeV;
   2239     VkSamplerAddressMode     addressModeW;
   2240     float                    mipLodBias;
   2241     VkBool32                 anisotropyEnable;
   2242     float                    maxAnisotropy;
   2243     VkBool32                 compareEnable;
   2244     VkCompareOp              compareOp;
   2245     float                    minLod;
   2246     float                    maxLod;
   2247     VkBorderColor            borderColor;
   2248     VkBool32                 unnormalizedCoordinates;
   2249 } VkSamplerCreateInfo;
   2250 typedef struct VkCommandPoolCreateInfo {
   2251     VkStructureType   sType;
   2252     const  void *             pNext;
   2253     VkCommandPoolCreateFlags     flags;
   2254     uint32_t                 queueFamilyIndex;
   2255 } VkCommandPoolCreateInfo;
   2256 typedef struct VkCommandBufferInheritanceInfo {
   2257     VkStructureType   sType;
   2258     const  void *             pNext;
   2259     VkRenderPass      renderPass;
   2260     uint32_t                 subpass;
   2261     VkFramebuffer     framebuffer;
   2262     VkBool32                 occlusionQueryEnable;
   2263     VkQueryControlFlags      queryFlags;
   2264     VkQueryPipelineStatisticFlags   pipelineStatistics;
   2265 } VkCommandBufferInheritanceInfo;
   2266 typedef struct VkCommandBufferBeginInfo {
   2267     VkStructureType   sType;
   2268     const  void *             pNext;
   2269     VkCommandBufferUsageFlags    flags;
   2270     const  VkCommandBufferInheritanceInfo *        pInheritanceInfo;
   2271 } VkCommandBufferBeginInfo;
   2272 typedef struct VkRenderPassBeginInfo {
   2273     VkStructureType   sType;
   2274     const  void *             pNext;
   2275     VkRenderPass             renderPass;
   2276     VkFramebuffer            framebuffer;
   2277     VkRect2D                 renderArea;
   2278     uint32_t                 clearValueCount;
   2279     const  VkClearValue *     pClearValues;
   2280 } VkRenderPassBeginInfo;
   2281 typedef struct VkClearAttachment {
   2282     VkImageAspectFlags       aspectMask;
   2283     uint32_t                 colorAttachment;
   2284     VkClearValue             clearValue;
   2285 } VkClearAttachment;
   2286 typedef struct VkAttachmentDescription {
   2287     VkAttachmentDescriptionFlags   flags;
   2288     VkFormat                 format;
   2289     VkSampleCountFlagBits    samples;
   2290     VkAttachmentLoadOp       loadOp;
   2291     VkAttachmentStoreOp      storeOp;
   2292     VkAttachmentLoadOp       stencilLoadOp;
   2293     VkAttachmentStoreOp      stencilStoreOp;
   2294     VkImageLayout            initialLayout;
   2295     VkImageLayout            finalLayout;
   2296 } VkAttachmentDescription;
   2297 typedef struct VkSubpassDescription {
   2298     VkSubpassDescriptionFlags   flags;
   2299     VkPipelineBindPoint      pipelineBindPoint;
   2300     uint32_t                 inputAttachmentCount;
   2301     const  VkAttachmentReference *  pInputAttachments;
   2302     uint32_t                 colorAttachmentCount;
   2303     const  VkAttachmentReference *  pColorAttachments;
   2304     const  VkAttachmentReference *  pResolveAttachments;
   2305     const  VkAttachmentReference *  pDepthStencilAttachment;
   2306     uint32_t                 preserveAttachmentCount;
   2307     const  uint32_t *  pPreserveAttachments;
   2308 } VkSubpassDescription;
   2309 typedef struct VkSubpassDependency {
   2310     uint32_t                 srcSubpass;
   2311     uint32_t                 dstSubpass;
   2312     VkPipelineStageFlags     srcStageMask;
   2313     VkPipelineStageFlags     dstStageMask;
   2314     VkAccessFlags            srcAccessMask;
   2315     VkAccessFlags            dstAccessMask;
   2316     VkDependencyFlags        dependencyFlags;
   2317 } VkSubpassDependency;
   2318 typedef struct VkRenderPassCreateInfo {
   2319     VkStructureType   sType;
   2320     const  void *             pNext;
   2321     VkRenderPassCreateFlags      flags;
   2322     uint32_t     attachmentCount;
   2323     const  VkAttachmentDescription *  pAttachments;
   2324     uint32_t                 subpassCount;
   2325     const  VkSubpassDescription *  pSubpasses;
   2326     uint32_t         dependencyCount;
   2327     const  VkSubpassDependency *  pDependencies;
   2328 } VkRenderPassCreateInfo;
   2329 typedef struct VkEventCreateInfo {
   2330     VkStructureType   sType;
   2331     const  void *             pNext;
   2332     VkEventCreateFlags       flags;
   2333 } VkEventCreateInfo;
   2334 typedef struct VkFenceCreateInfo {
   2335     VkStructureType   sType;
   2336     const  void *             pNext;
   2337     VkFenceCreateFlags       flags;
   2338 } VkFenceCreateInfo;
   2339 typedef struct VkPhysicalDeviceFeatures {
   2340     VkBool32                 robustBufferAccess;
   2341     VkBool32                 fullDrawIndexUint32;
   2342     VkBool32                 imageCubeArray;
   2343     VkBool32                 independentBlend;
   2344     VkBool32                 geometryShader;
   2345     VkBool32                 tessellationShader;
   2346     VkBool32                 sampleRateShading;
   2347     VkBool32                 dualSrcBlend;
   2348     VkBool32                 logicOp;
   2349     VkBool32                 multiDrawIndirect;
   2350     VkBool32                 drawIndirectFirstInstance;
   2351     VkBool32                 depthClamp;
   2352     VkBool32                 depthBiasClamp;
   2353     VkBool32                 fillModeNonSolid;
   2354     VkBool32                 depthBounds;
   2355     VkBool32                 wideLines;
   2356     VkBool32                 largePoints;
   2357     VkBool32                 alphaToOne;
   2358     VkBool32                 multiViewport;
   2359     VkBool32                 samplerAnisotropy;
   2360     VkBool32                 textureCompressionETC2;
   2361     VkBool32                 textureCompressionASTC_LDR;
   2362     VkBool32                 textureCompressionBC;
   2363     VkBool32                 occlusionQueryPrecise;
   2364     VkBool32                 pipelineStatisticsQuery;
   2365     VkBool32                 vertexPipelineStoresAndAtomics;
   2366     VkBool32                 fragmentStoresAndAtomics;
   2367     VkBool32                 shaderTessellationAndGeometryPointSize;
   2368     VkBool32                 shaderImageGatherExtended;
   2369     VkBool32                 shaderStorageImageExtendedFormats;
   2370     VkBool32                 shaderStorageImageMultisample;
   2371     VkBool32                 shaderStorageImageReadWithoutFormat;
   2372     VkBool32                 shaderStorageImageWriteWithoutFormat;
   2373     VkBool32                 shaderUniformBufferArrayDynamicIndexing;
   2374     VkBool32                 shaderSampledImageArrayDynamicIndexing;
   2375     VkBool32                 shaderStorageBufferArrayDynamicIndexing;
   2376     VkBool32                 shaderStorageImageArrayDynamicIndexing;
   2377     VkBool32                 shaderClipDistance;
   2378     VkBool32                 shaderCullDistance;
   2379     VkBool32                 shaderFloat64;
   2380     VkBool32                 shaderInt64;
   2381     VkBool32                 shaderInt16;
   2382     VkBool32                 shaderResourceResidency;
   2383     VkBool32                 shaderResourceMinLod;
   2384     VkBool32                 sparseBinding;
   2385     VkBool32                 sparseResidencyBuffer;
   2386     VkBool32                 sparseResidencyImage2D;
   2387     VkBool32                 sparseResidencyImage3D;
   2388     VkBool32                 sparseResidency2Samples;
   2389     VkBool32                 sparseResidency4Samples;
   2390     VkBool32                 sparseResidency8Samples;
   2391     VkBool32                 sparseResidency16Samples;
   2392     VkBool32                 sparseResidencyAliased;
   2393     VkBool32                 variableMultisampleRate;
   2394     VkBool32                 inheritedQueries;
   2395 } VkPhysicalDeviceFeatures;
   2396 typedef struct VkPhysicalDeviceSparseProperties {
   2397     VkBool32                 residencyStandard2DBlockShape;
   2398     VkBool32                 residencyStandard2DMultisampleBlockShape;
   2399     VkBool32                 residencyStandard3DBlockShape;
   2400     VkBool32                 residencyAlignedMipSize;
   2401     VkBool32                 residencyNonResidentStrict;
   2402 } VkPhysicalDeviceSparseProperties;
   2403 typedef struct VkPhysicalDeviceLimits {
   2404     uint32_t                 maxImageDimension1D;
   2405     uint32_t                 maxImageDimension2D;
   2406     uint32_t                 maxImageDimension3D;
   2407     uint32_t                 maxImageDimensionCube;
   2408     uint32_t                 maxImageArrayLayers;
   2409     uint32_t                 maxTexelBufferElements;
   2410     uint32_t                 maxUniformBufferRange;
   2411     uint32_t                 maxStorageBufferRange;
   2412     uint32_t                 maxPushConstantsSize;
   2413     uint32_t                 maxMemoryAllocationCount;
   2414     uint32_t                 maxSamplerAllocationCount;
   2415     VkDeviceSize             bufferImageGranularity;
   2416     VkDeviceSize             sparseAddressSpaceSize;
   2417     uint32_t                 maxBoundDescriptorSets;
   2418     uint32_t                 maxPerStageDescriptorSamplers;
   2419     uint32_t                 maxPerStageDescriptorUniformBuffers;
   2420     uint32_t                 maxPerStageDescriptorStorageBuffers;
   2421     uint32_t                 maxPerStageDescriptorSampledImages;
   2422     uint32_t                 maxPerStageDescriptorStorageImages;
   2423     uint32_t                 maxPerStageDescriptorInputAttachments;
   2424     uint32_t                 maxPerStageResources;
   2425     uint32_t                 maxDescriptorSetSamplers;
   2426     uint32_t                 maxDescriptorSetUniformBuffers;
   2427     uint32_t                 maxDescriptorSetUniformBuffersDynamic;
   2428     uint32_t                 maxDescriptorSetStorageBuffers;
   2429     uint32_t                 maxDescriptorSetStorageBuffersDynamic;
   2430     uint32_t                 maxDescriptorSetSampledImages;
   2431     uint32_t                 maxDescriptorSetStorageImages;
   2432     uint32_t                 maxDescriptorSetInputAttachments;
   2433     uint32_t                 maxVertexInputAttributes;
   2434     uint32_t                 maxVertexInputBindings;
   2435     uint32_t                 maxVertexInputAttributeOffset;
   2436     uint32_t                 maxVertexInputBindingStride;
   2437     uint32_t                 maxVertexOutputComponents;
   2438     uint32_t                 maxTessellationGenerationLevel;
   2439     uint32_t                 maxTessellationPatchSize;
   2440     uint32_t                 maxTessellationControlPerVertexInputComponents;
   2441     uint32_t                 maxTessellationControlPerVertexOutputComponents;
   2442     uint32_t                 maxTessellationControlPerPatchOutputComponents;
   2443     uint32_t                 maxTessellationControlTotalOutputComponents;
   2444     uint32_t                 maxTessellationEvaluationInputComponents;
   2445     uint32_t                 maxTessellationEvaluationOutputComponents;
   2446     uint32_t                 maxGeometryShaderInvocations;
   2447     uint32_t                 maxGeometryInputComponents;
   2448     uint32_t                 maxGeometryOutputComponents;
   2449     uint32_t                 maxGeometryOutputVertices;
   2450     uint32_t                 maxGeometryTotalOutputComponents;
   2451     uint32_t                 maxFragmentInputComponents;
   2452     uint32_t                 maxFragmentOutputAttachments;
   2453     uint32_t                 maxFragmentDualSrcAttachments;
   2454     uint32_t                 maxFragmentCombinedOutputResources;
   2455     uint32_t                 maxComputeSharedMemorySize;
   2456     uint32_t                 maxComputeWorkGroupCount [3];
   2457     uint32_t                 maxComputeWorkGroupInvocations;
   2458     uint32_t                 maxComputeWorkGroupSize [3];
   2459     uint32_t                 subPixelPrecisionBits;
   2460     uint32_t                 subTexelPrecisionBits;
   2461     uint32_t                 mipmapPrecisionBits;
   2462     uint32_t                 maxDrawIndexedIndexValue;
   2463     uint32_t                 maxDrawIndirectCount;
   2464     float                    maxSamplerLodBias;
   2465     float                    maxSamplerAnisotropy;
   2466     uint32_t                 maxViewports;
   2467     uint32_t                 maxViewportDimensions [2];
   2468     float                    viewportBoundsRange [2];
   2469     uint32_t                 viewportSubPixelBits;
   2470     size_t                   minMemoryMapAlignment;
   2471     VkDeviceSize             minTexelBufferOffsetAlignment;
   2472     VkDeviceSize             minUniformBufferOffsetAlignment;
   2473     VkDeviceSize             minStorageBufferOffsetAlignment;
   2474     int32_t                  minTexelOffset;
   2475     uint32_t                 maxTexelOffset;
   2476     int32_t                  minTexelGatherOffset;
   2477     uint32_t                 maxTexelGatherOffset;
   2478     float                    minInterpolationOffset;
   2479     float                    maxInterpolationOffset;
   2480     uint32_t                 subPixelInterpolationOffsetBits;
   2481     uint32_t                 maxFramebufferWidth;
   2482     uint32_t                 maxFramebufferHeight;
   2483     uint32_t                 maxFramebufferLayers;
   2484     VkSampleCountFlags       framebufferColorSampleCounts;
   2485     VkSampleCountFlags       framebufferDepthSampleCounts;
   2486     VkSampleCountFlags       framebufferStencilSampleCounts;
   2487     VkSampleCountFlags       framebufferNoAttachmentsSampleCounts;
   2488     uint32_t                 maxColorAttachments;
   2489     VkSampleCountFlags       sampledImageColorSampleCounts;
   2490     VkSampleCountFlags       sampledImageIntegerSampleCounts;
   2491     VkSampleCountFlags       sampledImageDepthSampleCounts;
   2492     VkSampleCountFlags       sampledImageStencilSampleCounts;
   2493     VkSampleCountFlags       storageImageSampleCounts;
   2494     uint32_t                 maxSampleMaskWords;
   2495     VkBool32                 timestampComputeAndGraphics;
   2496     float                    timestampPeriod;
   2497     uint32_t                 maxClipDistances;
   2498     uint32_t                 maxCullDistances;
   2499     uint32_t                 maxCombinedClipAndCullDistances;
   2500     uint32_t                 discreteQueuePriorities;
   2501     float                    pointSizeRange [2];
   2502     float                    lineWidthRange [2];
   2503     float                    pointSizeGranularity;
   2504     float                    lineWidthGranularity;
   2505     VkBool32                 strictLines;
   2506     VkBool32                 standardSampleLocations;
   2507     VkDeviceSize             optimalBufferCopyOffsetAlignment;
   2508     VkDeviceSize             optimalBufferCopyRowPitchAlignment;
   2509     VkDeviceSize             nonCoherentAtomSize;
   2510 } VkPhysicalDeviceLimits;
   2511 typedef struct VkSemaphoreCreateInfo {
   2512     VkStructureType   sType;
   2513     const  void *             pNext;
   2514     VkSemaphoreCreateFlags   flags;
   2515 } VkSemaphoreCreateInfo;
   2516 typedef struct VkQueryPoolCreateInfo {
   2517     VkStructureType   sType;
   2518     const  void *             pNext;
   2519     VkQueryPoolCreateFlags   flags;
   2520     VkQueryType              queryType;
   2521     uint32_t                 queryCount;
   2522     VkQueryPipelineStatisticFlags   pipelineStatistics;
   2523 } VkQueryPoolCreateInfo;
   2524 typedef struct VkFramebufferCreateInfo {
   2525     VkStructureType   sType;
   2526     const  void *             pNext;
   2527     VkFramebufferCreateFlags      flags;
   2528     VkRenderPass             renderPass;
   2529     uint32_t                 attachmentCount;
   2530     const  VkImageView *      pAttachments;
   2531     uint32_t                 width;
   2532     uint32_t                 height;
   2533     uint32_t                 layers;
   2534 } VkFramebufferCreateInfo;
   2535 typedef struct VkSubmitInfo {
   2536     VkStructureType   sType;
   2537     const  void *  pNext;
   2538     uint32_t         waitSemaphoreCount;
   2539     const  VkSemaphore *      pWaitSemaphores;
   2540     const  VkPipelineStageFlags *            pWaitDstStageMask;
   2541     uint32_t         commandBufferCount;
   2542     const  VkCommandBuffer *      pCommandBuffers;
   2543     uint32_t         signalSemaphoreCount;
   2544     const  VkSemaphore *      pSignalSemaphores;
   2545 } VkSubmitInfo;
   2546 typedef struct VkSurfaceCapabilitiesKHR {
   2547     uint32_t                           minImageCount;
   2548     uint32_t                           maxImageCount;
   2549     VkExtent2D                         currentExtent;
   2550     VkExtent2D                         minImageExtent;
   2551     VkExtent2D                         maxImageExtent;
   2552     uint32_t                           maxImageArrayLayers;
   2553     VkSurfaceTransformFlagsKHR         supportedTransforms;
   2554     VkSurfaceTransformFlagBitsKHR      currentTransform;
   2555     VkCompositeAlphaFlagsKHR           supportedCompositeAlpha;
   2556     VkImageUsageFlags                  supportedUsageFlags;
   2557 } VkSurfaceCapabilitiesKHR;
   2558 typedef struct VkSwapchainCreateInfoKHR {
   2559     VkStructureType   sType;
   2560     const  void *                       pNext;
   2561     VkSwapchainCreateFlagsKHR          flags;
   2562     VkSurfaceKHR                       surface;
   2563     uint32_t                           minImageCount;
   2564     VkFormat                           imageFormat;
   2565     VkColorSpaceKHR                    imageColorSpace;
   2566     VkExtent2D                         imageExtent;
   2567     uint32_t                           imageArrayLayers;
   2568     VkImageUsageFlags                  imageUsage;
   2569     VkSharingMode                      imageSharingMode;
   2570     uint32_t           queueFamilyIndexCount;
   2571     const  uint32_t *                   pQueueFamilyIndices;
   2572     VkSurfaceTransformFlagBitsKHR      preTransform;
   2573     VkCompositeAlphaFlagBitsKHR        compositeAlpha;
   2574     VkPresentModeKHR                   presentMode;
   2575     VkBool32                           clipped;
   2576     VkSwapchainKHR     oldSwapchain;
   2577 } VkSwapchainCreateInfoKHR;
   2578 typedef struct VkDebugReportCallbackCreateInfoEXT {
   2579     VkStructureType   sType;
   2580     const  void *                       pNext;
   2581     VkDebugReportFlagsEXT              flags;
   2582     PFN_vkDebugReportCallbackEXT       pfnCallback;
   2583     void *             pUserData;
   2584 } VkDebugReportCallbackCreateInfoEXT;
   2585 typedef struct VkPhysicalDeviceFeatures2 {
   2586     VkStructureType   sType;
   2587     void *                             pNext;
   2588     VkPhysicalDeviceFeatures           features;
   2589 } VkPhysicalDeviceFeatures2;
   2590 typedef struct VkFormatProperties2 {
   2591     VkStructureType   sType;
   2592     void *                             pNext;
   2593     VkFormatProperties                 formatProperties;
   2594 } VkFormatProperties2;
   2595 typedef struct VkImageFormatProperties2 {
   2596     VkStructureType   sType;
   2597     void *  pNext;
   2598     VkImageFormatProperties            imageFormatProperties;
   2599 } VkImageFormatProperties2;
   2600 typedef struct VkPhysicalDeviceImageFormatInfo2 {
   2601     VkStructureType   sType;
   2602     const  void *  pNext;
   2603     VkFormat                           format;
   2604     VkImageType                        type;
   2605     VkImageTiling                      tiling;
   2606     VkImageUsageFlags                  usage;
   2607     VkImageCreateFlags   flags;
   2608 } VkPhysicalDeviceImageFormatInfo2;
   2609 typedef struct VkQueueFamilyProperties2 {
   2610     VkStructureType   sType;
   2611     void *                             pNext;
   2612     VkQueueFamilyProperties            queueFamilyProperties;
   2613 } VkQueueFamilyProperties2;
   2614 typedef struct VkSparseImageFormatProperties2 {
   2615     VkStructureType   sType;
   2616     void *                             pNext;
   2617     VkSparseImageFormatProperties      properties;
   2618 } VkSparseImageFormatProperties2;
   2619 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
   2620     VkStructureType   sType;
   2621     const  void *                       pNext;
   2622     VkFormat                           format;
   2623     VkImageType                        type;
   2624     VkSampleCountFlagBits              samples;
   2625     VkImageUsageFlags                  usage;
   2626     VkImageTiling                      tiling;
   2627 } VkPhysicalDeviceSparseImageFormatInfo2;
   2628 typedef struct VkPhysicalDeviceVariablePointersFeatures {
   2629     VkStructureType   sType;
   2630     void *                             pNext;
   2631     VkBool32                           variablePointersStorageBuffer;
   2632     VkBool32                           variablePointers;
   2633 } VkPhysicalDeviceVariablePointersFeatures;
   2634 typedef struct VkPhysicalDeviceVariablePointerFeatures  VkPhysicalDeviceVariablePointerFeatures;
   2635 typedef struct VkExternalMemoryProperties {
   2636     VkExternalMemoryFeatureFlags    externalMemoryFeatures;
   2637     VkExternalMemoryHandleTypeFlags   exportFromImportedHandleTypes;
   2638     VkExternalMemoryHandleTypeFlags   compatibleHandleTypes;
   2639 } VkExternalMemoryProperties;
   2640 typedef struct VkExternalImageFormatProperties {
   2641     VkStructureType   sType;
   2642     void *                             pNext;
   2643     VkExternalMemoryProperties   externalMemoryProperties;
   2644 } VkExternalImageFormatProperties;
   2645 typedef struct VkPhysicalDeviceExternalBufferInfo {
   2646     VkStructureType   sType;
   2647     const  void *                       pNext;
   2648     VkBufferCreateFlags   flags;
   2649     VkBufferUsageFlags                 usage;
   2650     VkExternalMemoryHandleTypeFlagBits   handleType;
   2651 } VkPhysicalDeviceExternalBufferInfo;
   2652 typedef struct VkExternalBufferProperties {
   2653     VkStructureType   sType;
   2654     void *                             pNext;
   2655     VkExternalMemoryProperties      externalMemoryProperties;
   2656 } VkExternalBufferProperties;
   2657 typedef struct VkPhysicalDeviceIDProperties {
   2658     VkStructureType   sType;
   2659     void *                             pNext;
   2660     uint8_t                            deviceUUID [ VK_UUID_SIZE ];
   2661     uint8_t                            driverUUID [ VK_UUID_SIZE ];
   2662     uint8_t                            deviceLUID [ VK_LUID_SIZE ];
   2663     uint32_t                           deviceNodeMask;
   2664     VkBool32                           deviceLUIDValid;
   2665 } VkPhysicalDeviceIDProperties;
   2666 typedef struct VkExternalMemoryImageCreateInfo {
   2667     VkStructureType   sType;
   2668     const  void *                       pNext;
   2669     VkExternalMemoryHandleTypeFlags   handleTypes;
   2670 } VkExternalMemoryImageCreateInfo;
   2671 typedef struct VkExternalMemoryBufferCreateInfo {
   2672     VkStructureType   sType;
   2673     const  void *                       pNext;
   2674     VkExternalMemoryHandleTypeFlags   handleTypes;
   2675 } VkExternalMemoryBufferCreateInfo;
   2676 typedef struct VkExportMemoryAllocateInfo {
   2677     VkStructureType   sType;
   2678     const  void *                       pNext;
   2679     VkExternalMemoryHandleTypeFlags   handleTypes;
   2680 } VkExportMemoryAllocateInfo;
   2681 typedef struct VkExternalSemaphoreProperties {
   2682     VkStructureType   sType;
   2683     void *                             pNext;
   2684     VkExternalSemaphoreHandleTypeFlags   exportFromImportedHandleTypes;
   2685     VkExternalSemaphoreHandleTypeFlags   compatibleHandleTypes;
   2686     VkExternalSemaphoreFeatureFlags   externalSemaphoreFeatures;
   2687 } VkExternalSemaphoreProperties;
   2688 typedef struct VkExportSemaphoreCreateInfo {
   2689     VkStructureType   sType;
   2690     const  void *                       pNext;
   2691     VkExternalSemaphoreHandleTypeFlags   handleTypes;
   2692 } VkExportSemaphoreCreateInfo;
   2693 typedef struct VkExternalFenceProperties {
   2694     VkStructureType   sType;
   2695     void *                             pNext;
   2696     VkExternalFenceHandleTypeFlags   exportFromImportedHandleTypes;
   2697     VkExternalFenceHandleTypeFlags   compatibleHandleTypes;
   2698     VkExternalFenceFeatureFlags   externalFenceFeatures;
   2699 } VkExternalFenceProperties;
   2700 typedef struct VkExportFenceCreateInfo {
   2701     VkStructureType   sType;
   2702     const  void *                       pNext;
   2703     VkExternalFenceHandleTypeFlags   handleTypes;
   2704 } VkExportFenceCreateInfo;
   2705 typedef struct VkPhysicalDeviceMultiviewFeatures {
   2706     VkStructureType   sType;
   2707     void *                             pNext;
   2708     VkBool32                           multiview;
   2709     VkBool32                           multiviewGeometryShader;
   2710     VkBool32                           multiviewTessellationShader;
   2711 } VkPhysicalDeviceMultiviewFeatures;
   2712 typedef struct VkPhysicalDeviceGroupProperties {
   2713     VkStructureType   sType;
   2714     void *                             pNext;
   2715     uint32_t                           physicalDeviceCount;
   2716     VkPhysicalDevice                   physicalDevices [ VK_MAX_DEVICE_GROUP_SIZE ];
   2717     VkBool32                           subsetAllocation;
   2718 } VkPhysicalDeviceGroupProperties;
   2719 typedef struct VkMemoryAllocateFlagsInfo {
   2720     VkStructureType   sType;
   2721     const  void *                       pNext;
   2722     VkMemoryAllocateFlags   flags;
   2723     uint32_t                           deviceMask;
   2724 } VkMemoryAllocateFlagsInfo;
   2725 typedef struct VkBindBufferMemoryInfo {
   2726     VkStructureType   sType;
   2727     const  void *                       pNext;
   2728     VkBuffer                           buffer;
   2729     VkDeviceMemory                     memory;
   2730     VkDeviceSize                       memoryOffset;
   2731 } VkBindBufferMemoryInfo;
   2732 typedef struct VkBindImageMemoryInfo {
   2733     VkStructureType   sType;
   2734     const  void *                       pNext;
   2735     VkImage                            image;
   2736     VkDeviceMemory                     memory;
   2737     VkDeviceSize                       memoryOffset;
   2738 } VkBindImageMemoryInfo;
   2739 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
   2740     VkStructureType   sType;
   2741     const  void *                       pNext;
   2742     uint32_t                           presentMask [ VK_MAX_DEVICE_GROUP_SIZE ];
   2743     VkDeviceGroupPresentModeFlagsKHR   modes;
   2744 } VkDeviceGroupPresentCapabilitiesKHR;
   2745 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
   2746     VkStructureType   sType;
   2747     const  void *                       pNext;
   2748     VkDeviceGroupPresentModeFlagsKHR                           modes;
   2749 } VkDeviceGroupSwapchainCreateInfoKHR;
   2750 typedef struct VkDescriptorUpdateTemplateCreateInfo {
   2751     VkStructureType   sType;
   2752     const  void *                                pNext;
   2753     VkDescriptorUpdateTemplateCreateFlags      flags;
   2754     uint32_t                   descriptorUpdateEntryCount;
   2755     const  VkDescriptorUpdateTemplateEntry *  pDescriptorUpdateEntries;
   2756     VkDescriptorUpdateTemplateType   templateType;
   2757     VkDescriptorSetLayout   descriptorSetLayout;
   2758     VkPipelineBindPoint   pipelineBindPoint;
   2759     VkPipelineLayout pipelineLayout;
   2760     uint32_t   set;
   2761 } VkDescriptorUpdateTemplateCreateInfo;
   2762 typedef struct VkInputAttachmentAspectReference {
   2763     uint32_t                          subpass;
   2764     uint32_t                          inputAttachmentIndex;
   2765     VkImageAspectFlags                aspectMask;
   2766 } VkInputAttachmentAspectReference;
   2767 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
   2768     VkStructureType   sType;
   2769     const  void *                      pNext;
   2770     uint32_t                          aspectReferenceCount;
   2771     const  VkInputAttachmentAspectReference *  pAspectReferences;
   2772 } VkRenderPassInputAttachmentAspectCreateInfo;
   2773 typedef struct VkPhysicalDevice16BitStorageFeatures {
   2774     VkStructureType   sType;
   2775     void *       pNext;
   2776     VkBool32                           storageBuffer16BitAccess;
   2777     VkBool32                           uniformAndStorageBuffer16BitAccess;
   2778     VkBool32                           storagePushConstant16;
   2779     VkBool32                           storageInputOutput16;
   2780 } VkPhysicalDevice16BitStorageFeatures;
   2781 typedef struct VkPhysicalDeviceSubgroupProperties {
   2782     VkStructureType   sType;
   2783     void *                    pNext;
   2784     uint32_t                        subgroupSize;
   2785     VkShaderStageFlags              supportedStages;
   2786     VkSubgroupFeatureFlags          supportedOperations;
   2787     VkBool32   quadOperationsInAllStages;
   2788 } VkPhysicalDeviceSubgroupProperties;
   2789 typedef struct VkMemoryRequirements2 {
   2790     VkStructureType   sType;
   2791     void *  pNext;
   2792     VkMemoryRequirements                                                   memoryRequirements;
   2793 } VkMemoryRequirements2;
   2794 typedef struct VkMemoryRequirements2KHR  VkMemoryRequirements2KHR;
   2795 typedef struct VkSparseImageMemoryRequirements2 {
   2796     VkStructureType   sType;
   2797     void *                                        pNext;
   2798     VkSparseImageMemoryRequirements                                        memoryRequirements;
   2799 } VkSparseImageMemoryRequirements2;
   2800 typedef struct VkMemoryDedicatedRequirements {
   2801     VkStructureType   sType;
   2802     void *                             pNext;
   2803     VkBool32                           prefersDedicatedAllocation;
   2804     VkBool32                           requiresDedicatedAllocation;
   2805 } VkMemoryDedicatedRequirements;
   2806 typedef struct VkImageViewUsageCreateInfo {
   2807     VkStructureType   sType;
   2808     const  void *  pNext;
   2809     VkImageUsageFlags   usage;
   2810 } VkImageViewUsageCreateInfo;
   2811 typedef struct VkSamplerYcbcrConversionCreateInfo {
   2812     VkStructureType   sType;
   2813     const  void *                       pNext;
   2814     VkFormat                           format;
   2815     VkSamplerYcbcrModelConversion   ycbcrModel;
   2816     VkSamplerYcbcrRange             ycbcrRange;
   2817     VkComponentMapping                 components;
   2818     VkChromaLocation                xChromaOffset;
   2819     VkChromaLocation                yChromaOffset;
   2820     VkFilter                           chromaFilter;
   2821     VkBool32                           forceExplicitReconstruction;
   2822 } VkSamplerYcbcrConversionCreateInfo;
   2823 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
   2824     VkStructureType   sType;
   2825     void *       pNext;
   2826     VkBool32                           samplerYcbcrConversion;
   2827 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
   2828 typedef struct VkProtectedSubmitInfo {
   2829     VkStructureType   sType;
   2830     const  void *                      pNext;
   2831     VkBool32                          protectedSubmit;
   2832 } VkProtectedSubmitInfo;
   2833 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
   2834     VkStructureType   sType;
   2835     void *                                pNext;
   2836     VkBool32                              protectedMemory;
   2837 } VkPhysicalDeviceProtectedMemoryFeatures;
   2838 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
   2839     VkStructureType   sType;
   2840     void *                                pNext;
   2841     VkBool32                              protectedNoFault;
   2842 } VkPhysicalDeviceProtectedMemoryProperties;
   2843 typedef struct VkDeviceQueueInfo2 {
   2844     VkStructureType   sType;
   2845     const  void *                          pNext;
   2846     VkDeviceQueueCreateFlags              flags;
   2847     uint32_t                              queueFamilyIndex;
   2848     uint32_t                              queueIndex;
   2849 } VkDeviceQueueInfo2;
   2850 typedef struct VkPhysicalDeviceMaintenance3Properties {
   2851     VkStructureType   sType;
   2852     void *                             pNext;
   2853     uint32_t                           maxPerSetDescriptors;
   2854     VkDeviceSize                       maxMemoryAllocationSize;
   2855 } VkPhysicalDeviceMaintenance3Properties;
   2856 typedef struct VkDescriptorSetLayoutSupport {
   2857     VkStructureType   sType;
   2858     void *             pNext;
   2859     VkBool32           supported;
   2860 } VkDescriptorSetLayoutSupport;
   2861 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
   2862     VkStructureType   sType;
   2863     void *                             pNext;
   2864     VkBool32                           shaderDrawParameters;
   2865 } VkPhysicalDeviceShaderDrawParametersFeatures;
   2866 typedef struct VkPhysicalDeviceShaderDrawParameterFeatures  VkPhysicalDeviceShaderDrawParameterFeatures;
   2867 typedef struct VkPhysicalDeviceProperties {
   2868     uint32_t         apiVersion;
   2869     uint32_t         driverVersion;
   2870     uint32_t         vendorID;
   2871     uint32_t         deviceID;
   2872     VkPhysicalDeviceType   deviceType;
   2873     char             deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ];
   2874     uint8_t          pipelineCacheUUID [ VK_UUID_SIZE ];
   2875     VkPhysicalDeviceLimits   limits;
   2876     VkPhysicalDeviceSparseProperties   sparseProperties;
   2877 } VkPhysicalDeviceProperties;
   2878 typedef struct VkDeviceCreateInfo {
   2879     VkStructureType   sType;
   2880     const  void *      pNext;
   2881     VkDeviceCreateFlags      flags;
   2882     uint32_t          queueCreateInfoCount;
   2883     const  VkDeviceQueueCreateInfo *  pQueueCreateInfos;
   2884     uint32_t                 enabledLayerCount;
   2885     const  char * const*       ppEnabledLayerNames;
   2886     uint32_t                 enabledExtensionCount;
   2887     const  char * const*       ppEnabledExtensionNames;
   2888     const  VkPhysicalDeviceFeatures *  pEnabledFeatures;
   2889 } VkDeviceCreateInfo;
   2890 typedef struct VkPhysicalDeviceMemoryProperties {
   2891     uint32_t                 memoryTypeCount;
   2892     VkMemoryType             memoryTypes [ VK_MAX_MEMORY_TYPES ];
   2893     uint32_t                 memoryHeapCount;
   2894     VkMemoryHeap             memoryHeaps [ VK_MAX_MEMORY_HEAPS ];
   2895 } VkPhysicalDeviceMemoryProperties;
   2896 typedef struct VkPhysicalDeviceProperties2 {
   2897     VkStructureType   sType;
   2898     void *                             pNext;
   2899     VkPhysicalDeviceProperties         properties;
   2900 } VkPhysicalDeviceProperties2;
   2901 typedef struct VkPhysicalDeviceMemoryProperties2 {
   2902     VkStructureType   sType;
   2903     void *                             pNext;
   2904     VkPhysicalDeviceMemoryProperties   memoryProperties;
   2905 } VkPhysicalDeviceMemoryProperties2;
   2906 
   2907 
   2908 #define VK_VERSION_1_0 1
   2909 GLAD_API_CALL int GLAD_VK_VERSION_1_0;
   2910 #define VK_VERSION_1_1 1
   2911 GLAD_API_CALL int GLAD_VK_VERSION_1_1;
   2912 #define VK_EXT_debug_report 1
   2913 GLAD_API_CALL int GLAD_VK_EXT_debug_report;
   2914 #define VK_KHR_surface 1
   2915 GLAD_API_CALL int GLAD_VK_KHR_surface;
   2916 #define VK_KHR_swapchain 1
   2917 GLAD_API_CALL int GLAD_VK_KHR_swapchain;
   2918 
   2919 
   2920 typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice   device, const  VkAcquireNextImageInfoKHR *  pAcquireInfo, uint32_t *  pImageIndex);
   2921 typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImageKHR)(VkDevice   device, VkSwapchainKHR   swapchain, uint64_t   timeout, VkSemaphore   semaphore, VkFence   fence, uint32_t *  pImageIndex);
   2922 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateCommandBuffers)(VkDevice   device, const  VkCommandBufferAllocateInfo *  pAllocateInfo, VkCommandBuffer *  pCommandBuffers);
   2923 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateDescriptorSets)(VkDevice   device, const  VkDescriptorSetAllocateInfo *  pAllocateInfo, VkDescriptorSet *  pDescriptorSets);
   2924 typedef VkResult (GLAD_API_PTR *PFN_vkAllocateMemory)(VkDevice   device, const  VkMemoryAllocateInfo *  pAllocateInfo, const  VkAllocationCallbacks *  pAllocator, VkDeviceMemory *  pMemory);
   2925 typedef VkResult (GLAD_API_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer   commandBuffer, const  VkCommandBufferBeginInfo *  pBeginInfo);
   2926 typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory)(VkDevice   device, VkBuffer   buffer, VkDeviceMemory   memory, VkDeviceSize   memoryOffset);
   2927 typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory2)(VkDevice   device, uint32_t   bindInfoCount, const  VkBindBufferMemoryInfo *  pBindInfos);
   2928 typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory)(VkDevice   device, VkImage   image, VkDeviceMemory   memory, VkDeviceSize   memoryOffset);
   2929 typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory2)(VkDevice   device, uint32_t   bindInfoCount, const  VkBindImageMemoryInfo *  pBindInfos);
   2930 typedef void (GLAD_API_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer   commandBuffer, VkQueryPool   queryPool, uint32_t   query, VkQueryControlFlags   flags);
   2931 typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer   commandBuffer, const  VkRenderPassBeginInfo *  pRenderPassBegin, VkSubpassContents   contents);
   2932 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);
   2933 typedef void (GLAD_API_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer   commandBuffer, VkBuffer   buffer, VkDeviceSize   offset, VkIndexType   indexType);
   2934 typedef void (GLAD_API_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer   commandBuffer, VkPipelineBindPoint   pipelineBindPoint, VkPipeline   pipeline);
   2935 typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer   commandBuffer, uint32_t   firstBinding, uint32_t   bindingCount, const  VkBuffer *  pBuffers, const  VkDeviceSize *  pOffsets);
   2936 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);
   2937 typedef void (GLAD_API_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer   commandBuffer, uint32_t   attachmentCount, const  VkClearAttachment *  pAttachments, uint32_t   rectCount, const  VkClearRect *  pRects);
   2938 typedef void (GLAD_API_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer   commandBuffer, VkImage   image, VkImageLayout   imageLayout, const  VkClearColorValue *  pColor, uint32_t   rangeCount, const  VkImageSubresourceRange *  pRanges);
   2939 typedef void (GLAD_API_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer   commandBuffer, VkImage   image, VkImageLayout   imageLayout, const  VkClearDepthStencilValue *  pDepthStencil, uint32_t   rangeCount, const  VkImageSubresourceRange *  pRanges);
   2940 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer   commandBuffer, VkBuffer   srcBuffer, VkBuffer   dstBuffer, uint32_t   regionCount, const  VkBufferCopy *  pRegions);
   2941 typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer   commandBuffer, VkBuffer   srcBuffer, VkImage   dstImage, VkImageLayout   dstImageLayout, uint32_t   regionCount, const  VkBufferImageCopy *  pRegions);
   2942 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer   commandBuffer, VkImage   srcImage, VkImageLayout   srcImageLayout, VkImage   dstImage, VkImageLayout   dstImageLayout, uint32_t   regionCount, const  VkImageCopy *  pRegions);
   2943 typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer   commandBuffer, VkImage   srcImage, VkImageLayout   srcImageLayout, VkBuffer   dstBuffer, uint32_t   regionCount, const  VkBufferImageCopy *  pRegions);
   2944 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);
   2945 typedef void (GLAD_API_PTR *PFN_vkCmdDispatch)(VkCommandBuffer   commandBuffer, uint32_t   groupCountX, uint32_t   groupCountY, uint32_t   groupCountZ);
   2946 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);
   2947 typedef void (GLAD_API_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer   commandBuffer, VkBuffer   buffer, VkDeviceSize   offset);
   2948 typedef void (GLAD_API_PTR *PFN_vkCmdDraw)(VkCommandBuffer   commandBuffer, uint32_t   vertexCount, uint32_t   instanceCount, uint32_t   firstVertex, uint32_t   firstInstance);
   2949 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer   commandBuffer, uint32_t   indexCount, uint32_t   instanceCount, uint32_t   firstIndex, int32_t   vertexOffset, uint32_t   firstInstance);
   2950 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer   commandBuffer, VkBuffer   buffer, VkDeviceSize   offset, uint32_t   drawCount, uint32_t   stride);
   2951 typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer   commandBuffer, VkBuffer   buffer, VkDeviceSize   offset, uint32_t   drawCount, uint32_t   stride);
   2952 typedef void (GLAD_API_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer   commandBuffer, VkQueryPool   queryPool, uint32_t   query);
   2953 typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer   commandBuffer);
   2954 typedef void (GLAD_API_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer   commandBuffer, uint32_t   commandBufferCount, const  VkCommandBuffer *  pCommandBuffers);
   2955 typedef void (GLAD_API_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer   commandBuffer, VkBuffer   dstBuffer, VkDeviceSize   dstOffset, VkDeviceSize   size, uint32_t   data);
   2956 typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer   commandBuffer, VkSubpassContents   contents);
   2957 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);
   2958 typedef void (GLAD_API_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer   commandBuffer, VkPipelineLayout   layout, VkShaderStageFlags   stageFlags, uint32_t   offset, uint32_t   size, const  void *  pValues);
   2959 typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer   commandBuffer, VkEvent   event, VkPipelineStageFlags   stageMask);
   2960 typedef void (GLAD_API_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer   commandBuffer, VkQueryPool   queryPool, uint32_t   firstQuery, uint32_t   queryCount);
   2961 typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer   commandBuffer, VkImage   srcImage, VkImageLayout   srcImageLayout, VkImage   dstImage, VkImageLayout   dstImageLayout, uint32_t   regionCount, const  VkImageResolve *  pRegions);
   2962 typedef void (GLAD_API_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer   commandBuffer, const  float   blendConstants [4]);
   2963 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer   commandBuffer, float   depthBiasConstantFactor, float   depthBiasClamp, float   depthBiasSlopeFactor);
   2964 typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer   commandBuffer, float   minDepthBounds, float   maxDepthBounds);
   2965 typedef void (GLAD_API_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer   commandBuffer, uint32_t   deviceMask);
   2966 typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer   commandBuffer, VkEvent   event, VkPipelineStageFlags   stageMask);
   2967 typedef void (GLAD_API_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer   commandBuffer, float   lineWidth);
   2968 typedef void (GLAD_API_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer   commandBuffer, uint32_t   firstScissor, uint32_t   scissorCount, const  VkRect2D *  pScissors);
   2969 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer   commandBuffer, VkStencilFaceFlags   faceMask, uint32_t   compareMask);
   2970 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer   commandBuffer, VkStencilFaceFlags   faceMask, uint32_t   reference);
   2971 typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer   commandBuffer, VkStencilFaceFlags   faceMask, uint32_t   writeMask);
   2972 typedef void (GLAD_API_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer   commandBuffer, uint32_t   firstViewport, uint32_t   viewportCount, const  VkViewport *  pViewports);
   2973 typedef void (GLAD_API_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer   commandBuffer, VkBuffer   dstBuffer, VkDeviceSize   dstOffset, VkDeviceSize   dataSize, const  void *  pData);
   2974 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);
   2975 typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer   commandBuffer, VkPipelineStageFlagBits   pipelineStage, VkQueryPool   queryPool, uint32_t   query);
   2976 typedef VkResult (GLAD_API_PTR *PFN_vkCreateBuffer)(VkDevice   device, const  VkBufferCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkBuffer *  pBuffer);
   2977 typedef VkResult (GLAD_API_PTR *PFN_vkCreateBufferView)(VkDevice   device, const  VkBufferViewCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkBufferView *  pView);
   2978 typedef VkResult (GLAD_API_PTR *PFN_vkCreateCommandPool)(VkDevice   device, const  VkCommandPoolCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkCommandPool *  pCommandPool);
   2979 typedef VkResult (GLAD_API_PTR *PFN_vkCreateComputePipelines)(VkDevice   device, VkPipelineCache   pipelineCache, uint32_t   createInfoCount, const  VkComputePipelineCreateInfo *  pCreateInfos, const  VkAllocationCallbacks *  pAllocator, VkPipeline *  pPipelines);
   2980 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance   instance, const  VkDebugReportCallbackCreateInfoEXT *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkDebugReportCallbackEXT *  pCallback);
   2981 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorPool)(VkDevice   device, const  VkDescriptorPoolCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkDescriptorPool *  pDescriptorPool);
   2982 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice   device, const  VkDescriptorSetLayoutCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkDescriptorSetLayout *  pSetLayout);
   2983 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice   device, const  VkDescriptorUpdateTemplateCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkDescriptorUpdateTemplate *  pDescriptorUpdateTemplate);
   2984 typedef VkResult (GLAD_API_PTR *PFN_vkCreateDevice)(VkPhysicalDevice   physicalDevice, const  VkDeviceCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkDevice *  pDevice);
   2985 typedef VkResult (GLAD_API_PTR *PFN_vkCreateEvent)(VkDevice   device, const  VkEventCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkEvent *  pEvent);
   2986 typedef VkResult (GLAD_API_PTR *PFN_vkCreateFence)(VkDevice   device, const  VkFenceCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkFence *  pFence);
   2987 typedef VkResult (GLAD_API_PTR *PFN_vkCreateFramebuffer)(VkDevice   device, const  VkFramebufferCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkFramebuffer *  pFramebuffer);
   2988 typedef VkResult (GLAD_API_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice   device, VkPipelineCache   pipelineCache, uint32_t   createInfoCount, const  VkGraphicsPipelineCreateInfo *  pCreateInfos, const  VkAllocationCallbacks *  pAllocator, VkPipeline *  pPipelines);
   2989 typedef VkResult (GLAD_API_PTR *PFN_vkCreateImage)(VkDevice   device, const  VkImageCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkImage *  pImage);
   2990 typedef VkResult (GLAD_API_PTR *PFN_vkCreateImageView)(VkDevice   device, const  VkImageViewCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkImageView *  pView);
   2991 typedef VkResult (GLAD_API_PTR *PFN_vkCreateInstance)(const  VkInstanceCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkInstance *  pInstance);
   2992 typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineCache)(VkDevice   device, const  VkPipelineCacheCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkPipelineCache *  pPipelineCache);
   2993 typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineLayout)(VkDevice   device, const  VkPipelineLayoutCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkPipelineLayout *  pPipelineLayout);
   2994 typedef VkResult (GLAD_API_PTR *PFN_vkCreateQueryPool)(VkDevice   device, const  VkQueryPoolCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkQueryPool *  pQueryPool);
   2995 typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass)(VkDevice   device, const  VkRenderPassCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkRenderPass *  pRenderPass);
   2996 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSampler)(VkDevice   device, const  VkSamplerCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkSampler *  pSampler);
   2997 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice   device, const  VkSamplerYcbcrConversionCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkSamplerYcbcrConversion *  pYcbcrConversion);
   2998 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSemaphore)(VkDevice   device, const  VkSemaphoreCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkSemaphore *  pSemaphore);
   2999 typedef VkResult (GLAD_API_PTR *PFN_vkCreateShaderModule)(VkDevice   device, const  VkShaderModuleCreateInfo *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkShaderModule *  pShaderModule);
   3000 typedef VkResult (GLAD_API_PTR *PFN_vkCreateSwapchainKHR)(VkDevice   device, const  VkSwapchainCreateInfoKHR *  pCreateInfo, const  VkAllocationCallbacks *  pAllocator, VkSwapchainKHR *  pSwapchain);
   3001 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);
   3002 typedef void (GLAD_API_PTR *PFN_vkDestroyBuffer)(VkDevice   device, VkBuffer   buffer, const  VkAllocationCallbacks *  pAllocator);
   3003 typedef void (GLAD_API_PTR *PFN_vkDestroyBufferView)(VkDevice   device, VkBufferView   bufferView, const  VkAllocationCallbacks *  pAllocator);
   3004 typedef void (GLAD_API_PTR *PFN_vkDestroyCommandPool)(VkDevice   device, VkCommandPool   commandPool, const  VkAllocationCallbacks *  pAllocator);
   3005 typedef void (GLAD_API_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance   instance, VkDebugReportCallbackEXT   callback, const  VkAllocationCallbacks *  pAllocator);
   3006 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorPool)(VkDevice   device, VkDescriptorPool   descriptorPool, const  VkAllocationCallbacks *  pAllocator);
   3007 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice   device, VkDescriptorSetLayout   descriptorSetLayout, const  VkAllocationCallbacks *  pAllocator);
   3008 typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice   device, VkDescriptorUpdateTemplate   descriptorUpdateTemplate, const  VkAllocationCallbacks *  pAllocator);
   3009 typedef void (GLAD_API_PTR *PFN_vkDestroyDevice)(VkDevice   device, const  VkAllocationCallbacks *  pAllocator);
   3010 typedef void (GLAD_API_PTR *PFN_vkDestroyEvent)(VkDevice   device, VkEvent   event, const  VkAllocationCallbacks *  pAllocator);
   3011 typedef void (GLAD_API_PTR *PFN_vkDestroyFence)(VkDevice   device, VkFence   fence, const  VkAllocationCallbacks *  pAllocator);
   3012 typedef void (GLAD_API_PTR *PFN_vkDestroyFramebuffer)(VkDevice   device, VkFramebuffer   framebuffer, const  VkAllocationCallbacks *  pAllocator);
   3013 typedef void (GLAD_API_PTR *PFN_vkDestroyImage)(VkDevice   device, VkImage   image, const  VkAllocationCallbacks *  pAllocator);
   3014 typedef void (GLAD_API_PTR *PFN_vkDestroyImageView)(VkDevice   device, VkImageView   imageView, const  VkAllocationCallbacks *  pAllocator);
   3015 typedef void (GLAD_API_PTR *PFN_vkDestroyInstance)(VkInstance   instance, const  VkAllocationCallbacks *  pAllocator);
   3016 typedef void (GLAD_API_PTR *PFN_vkDestroyPipeline)(VkDevice   device, VkPipeline   pipeline, const  VkAllocationCallbacks *  pAllocator);
   3017 typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineCache)(VkDevice   device, VkPipelineCache   pipelineCache, const  VkAllocationCallbacks *  pAllocator);
   3018 typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineLayout)(VkDevice   device, VkPipelineLayout   pipelineLayout, const  VkAllocationCallbacks *  pAllocator);
   3019 typedef void (GLAD_API_PTR *PFN_vkDestroyQueryPool)(VkDevice   device, VkQueryPool   queryPool, const  VkAllocationCallbacks *  pAllocator);
   3020 typedef void (GLAD_API_PTR *PFN_vkDestroyRenderPass)(VkDevice   device, VkRenderPass   renderPass, const  VkAllocationCallbacks *  pAllocator);
   3021 typedef void (GLAD_API_PTR *PFN_vkDestroySampler)(VkDevice   device, VkSampler   sampler, const  VkAllocationCallbacks *  pAllocator);
   3022 typedef void (GLAD_API_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice   device, VkSamplerYcbcrConversion   ycbcrConversion, const  VkAllocationCallbacks *  pAllocator);
   3023 typedef void (GLAD_API_PTR *PFN_vkDestroySemaphore)(VkDevice   device, VkSemaphore   semaphore, const  VkAllocationCallbacks *  pAllocator);
   3024 typedef void (GLAD_API_PTR *PFN_vkDestroyShaderModule)(VkDevice   device, VkShaderModule   shaderModule, const  VkAllocationCallbacks *  pAllocator);
   3025 typedef void (GLAD_API_PTR *PFN_vkDestroySurfaceKHR)(VkInstance   instance, VkSurfaceKHR   surface, const  VkAllocationCallbacks *  pAllocator);
   3026 typedef void (GLAD_API_PTR *PFN_vkDestroySwapchainKHR)(VkDevice   device, VkSwapchainKHR   swapchain, const  VkAllocationCallbacks *  pAllocator);
   3027 typedef VkResult (GLAD_API_PTR *PFN_vkDeviceWaitIdle)(VkDevice   device);
   3028 typedef VkResult (GLAD_API_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer   commandBuffer);
   3029 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice   physicalDevice, const  char *  pLayerName, uint32_t *  pPropertyCount, VkExtensionProperties *  pProperties);
   3030 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice   physicalDevice, uint32_t *  pPropertyCount, VkLayerProperties *  pProperties);
   3031 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const  char *  pLayerName, uint32_t *  pPropertyCount, VkExtensionProperties *  pProperties);
   3032 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t *  pPropertyCount, VkLayerProperties *  pProperties);
   3033 typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t *  pApiVersion);
   3034 typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance   instance, uint32_t *  pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties *  pPhysicalDeviceGroupProperties);
   3035 typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance   instance, uint32_t *  pPhysicalDeviceCount, VkPhysicalDevice *  pPhysicalDevices);
   3036 typedef VkResult (GLAD_API_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice   device, uint32_t   memoryRangeCount, const  VkMappedMemoryRange *  pMemoryRanges);
   3037 typedef void (GLAD_API_PTR *PFN_vkFreeCommandBuffers)(VkDevice   device, VkCommandPool   commandPool, uint32_t   commandBufferCount, const  VkCommandBuffer *  pCommandBuffers);
   3038 typedef VkResult (GLAD_API_PTR *PFN_vkFreeDescriptorSets)(VkDevice   device, VkDescriptorPool   descriptorPool, uint32_t   descriptorSetCount, const  VkDescriptorSet *  pDescriptorSets);
   3039 typedef void (GLAD_API_PTR *PFN_vkFreeMemory)(VkDevice   device, VkDeviceMemory   memory, const  VkAllocationCallbacks *  pAllocator);
   3040 typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice   device, VkBuffer   buffer, VkMemoryRequirements *  pMemoryRequirements);
   3041 typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice   device, const  VkBufferMemoryRequirementsInfo2 *  pInfo, VkMemoryRequirements2 *  pMemoryRequirements);
   3042 typedef void (GLAD_API_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice   device, const  VkDescriptorSetLayoutCreateInfo *  pCreateInfo, VkDescriptorSetLayoutSupport *  pSupport);
   3043 typedef void (GLAD_API_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice   device, uint32_t   heapIndex, uint32_t   localDeviceIndex, uint32_t   remoteDeviceIndex, VkPeerMemoryFeatureFlags *  pPeerMemoryFeatures);
   3044 typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice   device, VkDeviceGroupPresentCapabilitiesKHR *  pDeviceGroupPresentCapabilities);
   3045 typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice   device, VkSurfaceKHR   surface, VkDeviceGroupPresentModeFlagsKHR *  pModes);
   3046 typedef void (GLAD_API_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice   device, VkDeviceMemory   memory, VkDeviceSize *  pCommittedMemoryInBytes);
   3047 typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetDeviceProcAddr)(VkDevice   device, const  char *  pName);
   3048 typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue)(VkDevice   device, uint32_t   queueFamilyIndex, uint32_t   queueIndex, VkQueue *  pQueue);
   3049 typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue2)(VkDevice   device, const  VkDeviceQueueInfo2 *  pQueueInfo, VkQueue *  pQueue);
   3050 typedef VkResult (GLAD_API_PTR *PFN_vkGetEventStatus)(VkDevice   device, VkEvent   event);
   3051 typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceStatus)(VkDevice   device, VkFence   fence);
   3052 typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice   device, VkImage   image, VkMemoryRequirements *  pMemoryRequirements);
   3053 typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice   device, const  VkImageMemoryRequirementsInfo2 *  pInfo, VkMemoryRequirements2 *  pMemoryRequirements);
   3054 typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice   device, VkImage   image, uint32_t *  pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements *  pSparseMemoryRequirements);
   3055 typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice   device, const  VkImageSparseMemoryRequirementsInfo2 *  pInfo, uint32_t *  pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 *  pSparseMemoryRequirements);
   3056 typedef void (GLAD_API_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice   device, VkImage   image, const  VkImageSubresource *  pSubresource, VkSubresourceLayout *  pLayout);
   3057 typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetInstanceProcAddr)(VkInstance   instance, const  char *  pName);
   3058 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice   physicalDevice, const  VkPhysicalDeviceExternalBufferInfo *  pExternalBufferInfo, VkExternalBufferProperties *  pExternalBufferProperties);
   3059 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice   physicalDevice, const  VkPhysicalDeviceExternalFenceInfo *  pExternalFenceInfo, VkExternalFenceProperties *  pExternalFenceProperties);
   3060 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice   physicalDevice, const  VkPhysicalDeviceExternalSemaphoreInfo *  pExternalSemaphoreInfo, VkExternalSemaphoreProperties *  pExternalSemaphoreProperties);
   3061 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceFeatures *  pFeatures);
   3062 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceFeatures2 *  pFeatures);
   3063 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice   physicalDevice, VkFormat   format, VkFormatProperties *  pFormatProperties);
   3064 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice   physicalDevice, VkFormat   format, VkFormatProperties2 *  pFormatProperties);
   3065 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice   physicalDevice, VkFormat   format, VkImageType   type, VkImageTiling   tiling, VkImageUsageFlags   usage, VkImageCreateFlags   flags, VkImageFormatProperties *  pImageFormatProperties);
   3066 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice   physicalDevice, const  VkPhysicalDeviceImageFormatInfo2 *  pImageFormatInfo, VkImageFormatProperties2 *  pImageFormatProperties);
   3067 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceMemoryProperties *  pMemoryProperties);
   3068 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceMemoryProperties2 *  pMemoryProperties);
   3069 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice   physicalDevice, VkSurfaceKHR   surface, uint32_t *  pRectCount, VkRect2D *  pRects);
   3070 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceProperties *  pProperties);
   3071 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice   physicalDevice, VkPhysicalDeviceProperties2 *  pProperties);
   3072 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice   physicalDevice, uint32_t *  pQueueFamilyPropertyCount, VkQueueFamilyProperties *  pQueueFamilyProperties);
   3073 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice   physicalDevice, uint32_t *  pQueueFamilyPropertyCount, VkQueueFamilyProperties2 *  pQueueFamilyProperties);
   3074 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice   physicalDevice, VkFormat   format, VkImageType   type, VkSampleCountFlagBits   samples, VkImageUsageFlags   usage, VkImageTiling   tiling, uint32_t *  pPropertyCount, VkSparseImageFormatProperties *  pProperties);
   3075 typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice   physicalDevice, const  VkPhysicalDeviceSparseImageFormatInfo2 *  pFormatInfo, uint32_t *  pPropertyCount, VkSparseImageFormatProperties2 *  pProperties);
   3076 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice   physicalDevice, VkSurfaceKHR   surface, VkSurfaceCapabilitiesKHR *  pSurfaceCapabilities);
   3077 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice   physicalDevice, VkSurfaceKHR   surface, uint32_t *  pSurfaceFormatCount, VkSurfaceFormatKHR *  pSurfaceFormats);
   3078 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice   physicalDevice, VkSurfaceKHR   surface, uint32_t *  pPresentModeCount, VkPresentModeKHR *  pPresentModes);
   3079 typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice   physicalDevice, uint32_t   queueFamilyIndex, VkSurfaceKHR   surface, VkBool32 *  pSupported);
   3080 typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineCacheData)(VkDevice   device, VkPipelineCache   pipelineCache, size_t *  pDataSize, void *  pData);
   3081 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);
   3082 typedef void (GLAD_API_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice   device, VkRenderPass   renderPass, VkExtent2D *  pGranularity);
   3083 typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice   device, VkSwapchainKHR   swapchain, uint32_t *  pSwapchainImageCount, VkImage *  pSwapchainImages);
   3084 typedef VkResult (GLAD_API_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice   device, uint32_t   memoryRangeCount, const  VkMappedMemoryRange *  pMemoryRanges);
   3085 typedef VkResult (GLAD_API_PTR *PFN_vkMapMemory)(VkDevice   device, VkDeviceMemory   memory, VkDeviceSize   offset, VkDeviceSize   size, VkMemoryMapFlags   flags, void **  ppData);
   3086 typedef VkResult (GLAD_API_PTR *PFN_vkMergePipelineCaches)(VkDevice   device, VkPipelineCache   dstCache, uint32_t   srcCacheCount, const  VkPipelineCache *  pSrcCaches);
   3087 typedef VkResult (GLAD_API_PTR *PFN_vkQueueBindSparse)(VkQueue   queue, uint32_t   bindInfoCount, const  VkBindSparseInfo *  pBindInfo, VkFence   fence);
   3088 typedef VkResult (GLAD_API_PTR *PFN_vkQueuePresentKHR)(VkQueue   queue, const  VkPresentInfoKHR *  pPresentInfo);
   3089 typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit)(VkQueue   queue, uint32_t   submitCount, const  VkSubmitInfo *  pSubmits, VkFence   fence);
   3090 typedef VkResult (GLAD_API_PTR *PFN_vkQueueWaitIdle)(VkQueue   queue);
   3091 typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer   commandBuffer, VkCommandBufferResetFlags   flags);
   3092 typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandPool)(VkDevice   device, VkCommandPool   commandPool, VkCommandPoolResetFlags   flags);
   3093 typedef VkResult (GLAD_API_PTR *PFN_vkResetDescriptorPool)(VkDevice   device, VkDescriptorPool   descriptorPool, VkDescriptorPoolResetFlags   flags);
   3094 typedef VkResult (GLAD_API_PTR *PFN_vkResetEvent)(VkDevice   device, VkEvent   event);
   3095 typedef VkResult (GLAD_API_PTR *PFN_vkResetFences)(VkDevice   device, uint32_t   fenceCount, const  VkFence *  pFences);
   3096 typedef VkResult (GLAD_API_PTR *PFN_vkSetEvent)(VkDevice   device, VkEvent   event);
   3097 typedef void (GLAD_API_PTR *PFN_vkTrimCommandPool)(VkDevice   device, VkCommandPool   commandPool, VkCommandPoolTrimFlags   flags);
   3098 typedef void (GLAD_API_PTR *PFN_vkUnmapMemory)(VkDevice   device, VkDeviceMemory   memory);
   3099 typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice   device, VkDescriptorSet   descriptorSet, VkDescriptorUpdateTemplate   descriptorUpdateTemplate, const  void *  pData);
   3100 typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSets)(VkDevice   device, uint32_t   descriptorWriteCount, const  VkWriteDescriptorSet *  pDescriptorWrites, uint32_t   descriptorCopyCount, const  VkCopyDescriptorSet *  pDescriptorCopies);
   3101 typedef VkResult (GLAD_API_PTR *PFN_vkWaitForFences)(VkDevice   device, uint32_t   fenceCount, const  VkFence *  pFences, VkBool32   waitAll, uint64_t   timeout);
   3102 
   3103 GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
   3104 #define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
   3105 GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
   3106 #define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
   3107 GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
   3108 #define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
   3109 GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
   3110 #define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
   3111 GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
   3112 #define vkAllocateMemory glad_vkAllocateMemory
   3113 GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
   3114 #define vkBeginCommandBuffer glad_vkBeginCommandBuffer
   3115 GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
   3116 #define vkBindBufferMemory glad_vkBindBufferMemory
   3117 GLAD_API_CALL PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2;
   3118 #define vkBindBufferMemory2 glad_vkBindBufferMemory2
   3119 GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
   3120 #define vkBindImageMemory glad_vkBindImageMemory
   3121 GLAD_API_CALL PFN_vkBindImageMemory2 glad_vkBindImageMemory2;
   3122 #define vkBindImageMemory2 glad_vkBindImageMemory2
   3123 GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
   3124 #define vkCmdBeginQuery glad_vkCmdBeginQuery
   3125 GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
   3126 #define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
   3127 GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
   3128 #define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
   3129 GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
   3130 #define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
   3131 GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
   3132 #define vkCmdBindPipeline glad_vkCmdBindPipeline
   3133 GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
   3134 #define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
   3135 GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
   3136 #define vkCmdBlitImage glad_vkCmdBlitImage
   3137 GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
   3138 #define vkCmdClearAttachments glad_vkCmdClearAttachments
   3139 GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
   3140 #define vkCmdClearColorImage glad_vkCmdClearColorImage
   3141 GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
   3142 #define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
   3143 GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
   3144 #define vkCmdCopyBuffer glad_vkCmdCopyBuffer
   3145 GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
   3146 #define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
   3147 GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
   3148 #define vkCmdCopyImage glad_vkCmdCopyImage
   3149 GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
   3150 #define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
   3151 GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
   3152 #define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
   3153 GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
   3154 #define vkCmdDispatch glad_vkCmdDispatch
   3155 GLAD_API_CALL PFN_vkCmdDispatchBase glad_vkCmdDispatchBase;
   3156 #define vkCmdDispatchBase glad_vkCmdDispatchBase
   3157 GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
   3158 #define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
   3159 GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
   3160 #define vkCmdDraw glad_vkCmdDraw
   3161 GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
   3162 #define vkCmdDrawIndexed glad_vkCmdDrawIndexed
   3163 GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
   3164 #define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
   3165 GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
   3166 #define vkCmdDrawIndirect glad_vkCmdDrawIndirect
   3167 GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
   3168 #define vkCmdEndQuery glad_vkCmdEndQuery
   3169 GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
   3170 #define vkCmdEndRenderPass glad_vkCmdEndRenderPass
   3171 GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
   3172 #define vkCmdExecuteCommands glad_vkCmdExecuteCommands
   3173 GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
   3174 #define vkCmdFillBuffer glad_vkCmdFillBuffer
   3175 GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
   3176 #define vkCmdNextSubpass glad_vkCmdNextSubpass
   3177 GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
   3178 #define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
   3179 GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
   3180 #define vkCmdPushConstants glad_vkCmdPushConstants
   3181 GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
   3182 #define vkCmdResetEvent glad_vkCmdResetEvent
   3183 GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
   3184 #define vkCmdResetQueryPool glad_vkCmdResetQueryPool
   3185 GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
   3186 #define vkCmdResolveImage glad_vkCmdResolveImage
   3187 GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
   3188 #define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
   3189 GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
   3190 #define vkCmdSetDepthBias glad_vkCmdSetDepthBias
   3191 GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
   3192 #define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
   3193 GLAD_API_CALL PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask;
   3194 #define vkCmdSetDeviceMask glad_vkCmdSetDeviceMask
   3195 GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
   3196 #define vkCmdSetEvent glad_vkCmdSetEvent
   3197 GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
   3198 #define vkCmdSetLineWidth glad_vkCmdSetLineWidth
   3199 GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
   3200 #define vkCmdSetScissor glad_vkCmdSetScissor
   3201 GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
   3202 #define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
   3203 GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
   3204 #define vkCmdSetStencilReference glad_vkCmdSetStencilReference
   3205 GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
   3206 #define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
   3207 GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
   3208 #define vkCmdSetViewport glad_vkCmdSetViewport
   3209 GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
   3210 #define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
   3211 GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
   3212 #define vkCmdWaitEvents glad_vkCmdWaitEvents
   3213 GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
   3214 #define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
   3215 GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
   3216 #define vkCreateBuffer glad_vkCreateBuffer
   3217 GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
   3218 #define vkCreateBufferView glad_vkCreateBufferView
   3219 GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
   3220 #define vkCreateCommandPool glad_vkCreateCommandPool
   3221 GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
   3222 #define vkCreateComputePipelines glad_vkCreateComputePipelines
   3223 GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
   3224 #define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
   3225 GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
   3226 #define vkCreateDescriptorPool glad_vkCreateDescriptorPool
   3227 GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
   3228 #define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
   3229 GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate;
   3230 #define vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate
   3231 GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
   3232 #define vkCreateDevice glad_vkCreateDevice
   3233 GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
   3234 #define vkCreateEvent glad_vkCreateEvent
   3235 GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
   3236 #define vkCreateFence glad_vkCreateFence
   3237 GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
   3238 #define vkCreateFramebuffer glad_vkCreateFramebuffer
   3239 GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
   3240 #define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
   3241 GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
   3242 #define vkCreateImage glad_vkCreateImage
   3243 GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
   3244 #define vkCreateImageView glad_vkCreateImageView
   3245 GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
   3246 #define vkCreateInstance glad_vkCreateInstance
   3247 GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
   3248 #define vkCreatePipelineCache glad_vkCreatePipelineCache
   3249 GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
   3250 #define vkCreatePipelineLayout glad_vkCreatePipelineLayout
   3251 GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
   3252 #define vkCreateQueryPool glad_vkCreateQueryPool
   3253 GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
   3254 #define vkCreateRenderPass glad_vkCreateRenderPass
   3255 GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
   3256 #define vkCreateSampler glad_vkCreateSampler
   3257 GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion;
   3258 #define vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion
   3259 GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
   3260 #define vkCreateSemaphore glad_vkCreateSemaphore
   3261 GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
   3262 #define vkCreateShaderModule glad_vkCreateShaderModule
   3263 GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
   3264 #define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
   3265 GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
   3266 #define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
   3267 GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
   3268 #define vkDestroyBuffer glad_vkDestroyBuffer
   3269 GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
   3270 #define vkDestroyBufferView glad_vkDestroyBufferView
   3271 GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
   3272 #define vkDestroyCommandPool glad_vkDestroyCommandPool
   3273 GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
   3274 #define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
   3275 GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
   3276 #define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
   3277 GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
   3278 #define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
   3279 GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate;
   3280 #define vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate
   3281 GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
   3282 #define vkDestroyDevice glad_vkDestroyDevice
   3283 GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
   3284 #define vkDestroyEvent glad_vkDestroyEvent
   3285 GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
   3286 #define vkDestroyFence glad_vkDestroyFence
   3287 GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
   3288 #define vkDestroyFramebuffer glad_vkDestroyFramebuffer
   3289 GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
   3290 #define vkDestroyImage glad_vkDestroyImage
   3291 GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
   3292 #define vkDestroyImageView glad_vkDestroyImageView
   3293 GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
   3294 #define vkDestroyInstance glad_vkDestroyInstance
   3295 GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
   3296 #define vkDestroyPipeline glad_vkDestroyPipeline
   3297 GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
   3298 #define vkDestroyPipelineCache glad_vkDestroyPipelineCache
   3299 GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
   3300 #define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
   3301 GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
   3302 #define vkDestroyQueryPool glad_vkDestroyQueryPool
   3303 GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
   3304 #define vkDestroyRenderPass glad_vkDestroyRenderPass
   3305 GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
   3306 #define vkDestroySampler glad_vkDestroySampler
   3307 GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion;
   3308 #define vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion
   3309 GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
   3310 #define vkDestroySemaphore glad_vkDestroySemaphore
   3311 GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
   3312 #define vkDestroyShaderModule glad_vkDestroyShaderModule
   3313 GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
   3314 #define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
   3315 GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
   3316 #define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
   3317 GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
   3318 #define vkDeviceWaitIdle glad_vkDeviceWaitIdle
   3319 GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
   3320 #define vkEndCommandBuffer glad_vkEndCommandBuffer
   3321 GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
   3322 #define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
   3323 GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
   3324 #define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
   3325 GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
   3326 #define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
   3327 GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
   3328 #define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
   3329 GLAD_API_CALL PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion;
   3330 #define vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion
   3331 GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups;
   3332 #define vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups
   3333 GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
   3334 #define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
   3335 GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
   3336 #define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
   3337 GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
   3338 #define vkFreeCommandBuffers glad_vkFreeCommandBuffers
   3339 GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
   3340 #define vkFreeDescriptorSets glad_vkFreeDescriptorSets
   3341 GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
   3342 #define vkFreeMemory glad_vkFreeMemory
   3343 GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
   3344 #define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
   3345 GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2;
   3346 #define vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2
   3347 GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport;
   3348 #define vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport
   3349 GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures;
   3350 #define vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures
   3351 GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
   3352 #define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
   3353 GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
   3354 #define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
   3355 GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
   3356 #define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
   3357 GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
   3358 #define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
   3359 GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
   3360 #define vkGetDeviceQueue glad_vkGetDeviceQueue
   3361 GLAD_API_CALL PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2;
   3362 #define vkGetDeviceQueue2 glad_vkGetDeviceQueue2
   3363 GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
   3364 #define vkGetEventStatus glad_vkGetEventStatus
   3365 GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
   3366 #define vkGetFenceStatus glad_vkGetFenceStatus
   3367 GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
   3368 #define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
   3369 GLAD_API_CALL PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2;
   3370 #define vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2
   3371 GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
   3372 #define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
   3373 GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2;
   3374 #define vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2
   3375 GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
   3376 #define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
   3377 GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
   3378 #define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
   3379 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties;
   3380 #define vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties
   3381 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties;
   3382 #define vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties
   3383 GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties;
   3384 #define vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties
   3385 GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
   3386 #define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
   3387 GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2;
   3388 #define vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2
   3389 GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
   3390 #define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
   3391 GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2;
   3392 #define vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2
   3393 GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
   3394 #define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
   3395 GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2;
   3396 #define vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2
   3397 GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
   3398 #define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
   3399 GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2;
   3400 #define vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2
   3401 GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
   3402 #define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
   3403 GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
   3404 #define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
   3405 GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2;
   3406 #define vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2
   3407 GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
   3408 #define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
   3409 GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2;
   3410 #define vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2
   3411 GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
   3412 #define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
   3413 GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2;
   3414 #define vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2
   3415 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
   3416 #define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
   3417 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
   3418 #define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
   3419 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
   3420 #define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
   3421 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
   3422 #define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
   3423 GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
   3424 #define vkGetPipelineCacheData glad_vkGetPipelineCacheData
   3425 GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
   3426 #define vkGetQueryPoolResults glad_vkGetQueryPoolResults
   3427 GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
   3428 #define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
   3429 GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
   3430 #define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
   3431 GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
   3432 #define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
   3433 GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
   3434 #define vkMapMemory glad_vkMapMemory
   3435 GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
   3436 #define vkMergePipelineCaches glad_vkMergePipelineCaches
   3437 GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
   3438 #define vkQueueBindSparse glad_vkQueueBindSparse
   3439 GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
   3440 #define vkQueuePresentKHR glad_vkQueuePresentKHR
   3441 GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
   3442 #define vkQueueSubmit glad_vkQueueSubmit
   3443 GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
   3444 #define vkQueueWaitIdle glad_vkQueueWaitIdle
   3445 GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
   3446 #define vkResetCommandBuffer glad_vkResetCommandBuffer
   3447 GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
   3448 #define vkResetCommandPool glad_vkResetCommandPool
   3449 GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
   3450 #define vkResetDescriptorPool glad_vkResetDescriptorPool
   3451 GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
   3452 #define vkResetEvent glad_vkResetEvent
   3453 GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
   3454 #define vkResetFences glad_vkResetFences
   3455 GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
   3456 #define vkSetEvent glad_vkSetEvent
   3457 GLAD_API_CALL PFN_vkTrimCommandPool glad_vkTrimCommandPool;
   3458 #define vkTrimCommandPool glad_vkTrimCommandPool
   3459 GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
   3460 #define vkUnmapMemory glad_vkUnmapMemory
   3461 GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate;
   3462 #define vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate
   3463 GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
   3464 #define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
   3465 GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
   3466 #define vkWaitForFences glad_vkWaitForFences
   3467 
   3468 
   3469 GLAD_API_CALL int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr);
   3470 GLAD_API_CALL int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load);
   3471 
   3472 
   3473 
   3474 
   3475 
   3476 
   3477 #ifdef __cplusplus
   3478 }
   3479 #endif
   3480 #endif