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