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