github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/external/glfw/deps/glad/vulkan.h (about)

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