source: opengl-game/vulkan.h@ 57d43d0

feature/imgui-sdl
Last change on this file since 57d43d0 was 57d43d0, checked in by Dmitry Portnoy <dportnoy@…>, 4 years ago

Add an example project using Vulkan with SFML, with SFML statically linked

  • Property mode set to 100644
File size: 170.1 KB
Line 
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
134 typedef void (*GLADapiproc)(void);
135
136 typedef GLADapiproc(*GLADloadfunc)(const char* name);
137 typedef GLADapiproc(*GLADuserptrloadfunc)(const char* name, void* userptr);
138
139 typedef void (*GLADprecallback)(const char* name, GLADapiproc apiproc, int len_args, ...);
140 typedef 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
192 extern "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
288 VK_DEFINE_HANDLE(VkInstance)
289 VK_DEFINE_HANDLE(VkPhysicalDevice)
290 VK_DEFINE_HANDLE(VkDevice)
291 VK_DEFINE_HANDLE(VkQueue)
292 VK_DEFINE_HANDLE(VkCommandBuffer)
293 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
294 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
295 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
296 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
297 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
298 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
299 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
300 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
301 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
302 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
303 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
304 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
305 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
306 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
307 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
308 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
309 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
310 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
311 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
312 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
313 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
314 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
315 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
316 typedef 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;
321 typedef enum VkAttachmentStoreOp {
322 VK_ATTACHMENT_STORE_OP_STORE = 0,
323 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1
324 } VkAttachmentStoreOp;
325 typedef 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;
346 typedef 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;
353 typedef 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;
361 typedef enum VkPipelineCacheHeaderVersion {
362 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1
363 } VkPipelineCacheHeaderVersion;
364
365
366 typedef 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;
371 typedef 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;
382 typedef 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;
388 typedef 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;
397 typedef enum VkCommandPoolCreateFlagBits {
398 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
399 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2
400 } VkCommandPoolCreateFlagBits;
401 typedef enum VkCommandPoolResetFlagBits {
402 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1
403 } VkCommandPoolResetFlagBits;
404 typedef enum VkCommandBufferResetFlagBits {
405 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1
406 } VkCommandBufferResetFlagBits;
407 typedef enum VkCommandBufferLevel {
408 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
409 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1
410 } VkCommandBufferLevel;
411 typedef 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;
416 typedef 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;
426 typedef 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;
432 typedef 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;
445 typedef 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;
456 typedef enum VkFenceCreateFlagBits {
457 VK_FENCE_CREATE_SIGNALED_BIT = 1
458 } VkFenceCreateFlagBits;
459 typedef enum VkPolygonMode {
460 VK_POLYGON_MODE_FILL = 0,
461 VK_POLYGON_MODE_LINE = 1,
462 VK_POLYGON_MODE_POINT = 2
463 } VkPolygonMode;
464 typedef 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;
651 typedef 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;
666 typedef enum VkFrontFace {
667 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
668 VK_FRONT_FACE_CLOCKWISE = 1
669 } VkFrontFace;
670 typedef 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;
676 typedef 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;
683 typedef 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;
695 typedef enum VkImageTiling {
696 VK_IMAGE_TILING_OPTIMAL = 0,
697 VK_IMAGE_TILING_LINEAR = 1
698 } VkImageTiling;
699 typedef enum VkImageType {
700 VK_IMAGE_TYPE_1D = 0,
701 VK_IMAGE_TYPE_2D = 1,
702 VK_IMAGE_TYPE_3D = 2
703 } VkImageType;
704 typedef 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;
714 typedef 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;
723 typedef enum VkSharingMode {
724 VK_SHARING_MODE_EXCLUSIVE = 0,
725 VK_SHARING_MODE_CONCURRENT = 1
726 } VkSharingMode;
727 typedef enum VkIndexType {
728 VK_INDEX_TYPE_UINT16 = 0,
729 VK_INDEX_TYPE_UINT32 = 1
730 } VkIndexType;
731 typedef 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;
749 typedef enum VkMemoryHeapFlagBits {
750 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1
751 } VkMemoryHeapFlagBits;
752 typedef 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;
771 typedef 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;
778 typedef 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;
785 typedef enum VkPipelineBindPoint {
786 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
787 VK_PIPELINE_BIND_POINT_COMPUTE = 1
788 } VkPipelineBindPoint;
789 typedef 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;
794 typedef 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;
807 typedef enum VkQueryControlFlagBits {
808 VK_QUERY_CONTROL_PRECISE_BIT = 1
809 } VkQueryControlFlagBits;
810 typedef 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;
823 typedef 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;
829 typedef enum VkQueryType {
830 VK_QUERY_TYPE_OCCLUSION = 0,
831 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
832 VK_QUERY_TYPE_TIMESTAMP = 2
833 } VkQueryType;
834 typedef 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;
840 typedef enum VkSubpassContents {
841 VK_SUBPASS_CONTENTS_INLINE = 0,
842 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1
843 } VkSubpassContents;
844 typedef 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;
869 typedef enum VkShaderStageFlagBits {
870 VK_SHADER_STAGE_VERTEX_BIT = 1,
871 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
872 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
873 VK_SHADER_STAGE_GEOMETRY_BIT = 8,
874 VK_SHADER_STAGE_FRAGMENT_BIT = 16,
875 VK_SHADER_STAGE_COMPUTE_BIT = 32,
876 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
877 VK_SHADER_STAGE_ALL = 0x7FFFFFFF
878 } VkShaderStageFlagBits;
879 typedef enum VkSparseMemoryBindFlagBits {
880 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1
881 } VkSparseMemoryBindFlagBits;
882 typedef enum VkStencilFaceFlagBits {
883 VK_STENCIL_FACE_FRONT_BIT = 1,
884 VK_STENCIL_FACE_BACK_BIT = 2,
885 VK_STENCIL_FRONT_AND_BACK = 0x00000003
886 } VkStencilFaceFlagBits;
887 typedef enum VkStencilOp {
888 VK_STENCIL_OP_KEEP = 0,
889 VK_STENCIL_OP_ZERO = 1,
890 VK_STENCIL_OP_REPLACE = 2,
891 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
892 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
893 VK_STENCIL_OP_INVERT = 5,
894 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
895 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7
896 } VkStencilOp;
897 typedef enum VkStructureType {
898 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
899 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
900 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
901 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
902 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
903 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
904 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
905 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
906 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
907 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
908 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
909 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
910 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
911 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
912 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
913 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
914 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
915 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
916 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
917 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
918 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
919 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
920 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
921 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
922 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
923 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
924 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
925 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
926 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
927 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
928 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
929 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
930 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
931 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
932 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
933 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
934 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
935 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
936 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
937 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
938 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
939 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
940 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
941 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
942 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
943 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
944 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
945 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
946 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
947 VK_STRUCTURE_TYPE_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;
958 typedef 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;
965 typedef enum VkInternalAllocationType {
966 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0
967 } VkInternalAllocationType;
968 typedef 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;
974 typedef enum VkFilter {
975 VK_FILTER_NEAREST = 0,
976 VK_FILTER_LINEAR = 1
977 } VkFilter;
978 typedef enum VkSamplerMipmapMode {
979 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
980 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1
981 } VkSamplerMipmapMode;
982 typedef enum VkVertexInputRate {
983 VK_VERTEX_INPUT_RATE_VERTEX = 0,
984 VK_VERTEX_INPUT_RATE_INSTANCE = 1
985 } VkVertexInputRate;
986 typedef 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;
1005 typedef 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;
1010 typedef 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;
1019 typedef enum VkAttachmentDescriptionFlagBits {
1020 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1
1021 } VkAttachmentDescriptionFlagBits;
1022 typedef enum VkDescriptorPoolCreateFlagBits {
1023 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1
1024 } VkDescriptorPoolCreateFlagBits;
1025 typedef enum VkDependencyFlagBits {
1026 VK_DEPENDENCY_BY_REGION_BIT = 1
1027 } VkDependencyFlagBits;
1028 typedef 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
1060 typedef enum VkColorSpaceKHR {
1061 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
1062 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
1063 } VkColorSpaceKHR;
1064 typedef 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;
1070 typedef 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;
1076 typedef 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;
1087 typedef 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;
1094 typedef 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;
1134 typedef 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;
1140 typedef enum VkSwapchainCreateFlagBitsKHR {
1141 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
1142 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2
1143 } VkSwapchainCreateFlagBitsKHR;
1144 typedef enum VkVendorId {
1145 VK_VENDOR_ID_VIV = 0x10001,
1146 VK_VENDOR_ID_VSI = 0x10002,
1147 VK_VENDOR_ID_KAZAN = 0x10003
1148 } VkVendorId;
1149 typedef void (VKAPI_PTR* PFN_vkInternalAllocationNotification)(
1150 void* pUserData,
1151 size_t size,
1152 VkInternalAllocationType allocationType,
1153 VkSystemAllocationScope allocationScope);
1154 typedef void (VKAPI_PTR* PFN_vkInternalFreeNotification)(
1155 void* pUserData,
1156 size_t size,
1157 VkInternalAllocationType allocationType,
1158 VkSystemAllocationScope allocationScope);
1159 typedef void* (VKAPI_PTR* PFN_vkReallocationFunction)(
1160 void* pUserData,
1161 void* pOriginal,
1162 size_t size,
1163 size_t alignment,
1164 VkSystemAllocationScope allocationScope);
1165 typedef void* (VKAPI_PTR* PFN_vkAllocationFunction)(
1166 void* pUserData,
1167 size_t size,
1168 size_t alignment,
1169 VkSystemAllocationScope allocationScope);
1170 typedef void (VKAPI_PTR* PFN_vkFreeFunction)(
1171 void* pUserData,
1172 void* pMemory);
1173 typedef void (VKAPI_PTR* PFN_vkVoidFunction)(void);
1174 typedef struct VkBaseOutStructure {
1175 VkStructureType sType;
1176 struct VkBaseOutStructure* pNext;
1177 } VkBaseOutStructure;
1178 typedef struct VkBaseInStructure {
1179 VkStructureType sType;
1180 const struct VkBaseInStructure* pNext;
1181 } VkBaseInStructure;
1182 typedef struct VkOffset2D {
1183 int32_t x;
1184 int32_t y;
1185 } VkOffset2D;
1186 typedef struct VkOffset3D {
1187 int32_t x;
1188 int32_t y;
1189 int32_t z;
1190 } VkOffset3D;
1191 typedef struct VkExtent2D {
1192 uint32_t width;
1193 uint32_t height;
1194 } VkExtent2D;
1195 typedef struct VkExtent3D {
1196 uint32_t width;
1197 uint32_t height;
1198 uint32_t depth;
1199 } VkExtent3D;
1200 typedef struct VkViewport {
1201 float x;
1202 float y;
1203 float width;
1204 float height;
1205 float minDepth;
1206 float maxDepth;
1207 } VkViewport;
1208 typedef struct VkRect2D {
1209 VkOffset2D offset;
1210 VkExtent2D extent;
1211 } VkRect2D;
1212 typedef struct VkClearRect {
1213 VkRect2D rect;
1214 uint32_t baseArrayLayer;
1215 uint32_t layerCount;
1216 } VkClearRect;
1217 typedef struct VkComponentMapping {
1218 VkComponentSwizzle r;
1219 VkComponentSwizzle g;
1220 VkComponentSwizzle b;
1221 VkComponentSwizzle a;
1222 } VkComponentMapping;
1223 typedef struct VkExtensionProperties {
1224 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1225 uint32_t specVersion;
1226 } VkExtensionProperties;
1227 typedef 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;
1233 typedef 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;
1242 typedef 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;
1250 typedef struct VkDescriptorImageInfo {
1251 VkSampler sampler;
1252 VkImageView imageView;
1253 VkImageLayout imageLayout;
1254 } VkDescriptorImageInfo;
1255 typedef 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;
1266 typedef struct VkDescriptorPoolSize {
1267 VkDescriptorType type;
1268 uint32_t descriptorCount;
1269 } VkDescriptorPoolSize;
1270 typedef struct VkDescriptorSetAllocateInfo {
1271 VkStructureType sType;
1272 const void* pNext;
1273 VkDescriptorPool descriptorPool;
1274 uint32_t descriptorSetCount;
1275 const VkDescriptorSetLayout* pSetLayouts;
1276 } VkDescriptorSetAllocateInfo;
1277 typedef struct VkSpecializationMapEntry {
1278 uint32_t constantID;
1279 uint32_t offset;
1280 size_t size;
1281 } VkSpecializationMapEntry;
1282 typedef struct VkSpecializationInfo {
1283 uint32_t mapEntryCount;
1284 const VkSpecializationMapEntry* pMapEntries;
1285 size_t dataSize;
1286 const void* pData;
1287 } VkSpecializationInfo;
1288 typedef struct VkVertexInputBindingDescription {
1289 uint32_t binding;
1290 uint32_t stride;
1291 VkVertexInputRate inputRate;
1292 } VkVertexInputBindingDescription;
1293 typedef struct VkVertexInputAttributeDescription {
1294 uint32_t location;
1295 uint32_t binding;
1296 VkFormat format;
1297 uint32_t offset;
1298 } VkVertexInputAttributeDescription;
1299 typedef 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;
1308 typedef struct VkCommandBufferAllocateInfo {
1309 VkStructureType sType;
1310 const void* pNext;
1311 VkCommandPool commandPool;
1312 VkCommandBufferLevel level;
1313 uint32_t commandBufferCount;
1314 } VkCommandBufferAllocateInfo;
1315 typedef union VkClearColorValue {
1316 float float32[4];
1317 int32_t int32[4];
1318 uint32_t uint32[4];
1319 } VkClearColorValue;
1320 typedef struct VkClearDepthStencilValue {
1321 float depth;
1322 uint32_t stencil;
1323 } VkClearDepthStencilValue;
1324 typedef union VkClearValue {
1325 VkClearColorValue color;
1326 VkClearDepthStencilValue depthStencil;
1327 } VkClearValue;
1328 typedef struct VkAttachmentReference {
1329 uint32_t attachment;
1330 VkImageLayout layout;
1331 } VkAttachmentReference;
1332 typedef struct VkDrawIndirectCommand {
1333 uint32_t vertexCount;
1334 uint32_t instanceCount;
1335 uint32_t firstVertex;
1336 uint32_t firstInstance;
1337 } VkDrawIndirectCommand;
1338 typedef struct VkDrawIndexedIndirectCommand {
1339 uint32_t indexCount;
1340 uint32_t instanceCount;
1341 uint32_t firstIndex;
1342 int32_t vertexOffset;
1343 uint32_t firstInstance;
1344 } VkDrawIndexedIndirectCommand;
1345 typedef struct VkDispatchIndirectCommand {
1346 uint32_t x;
1347 uint32_t y;
1348 uint32_t z;
1349 } VkDispatchIndirectCommand;
1350 typedef struct VkSurfaceFormatKHR {
1351 VkFormat format;
1352 VkColorSpaceKHR colorSpace;
1353 } VkSurfaceFormatKHR;
1354 typedef 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;
1364 typedef struct VkImageSwapchainCreateInfoKHR {
1365 VkStructureType sType;
1366 const void* pNext;
1367 VkSwapchainKHR swapchain;
1368 } VkImageSwapchainCreateInfoKHR;
1369 typedef struct VkBindImageMemorySwapchainInfoKHR {
1370 VkStructureType sType;
1371 const void* pNext;
1372 VkSwapchainKHR swapchain;
1373 uint32_t imageIndex;
1374 } VkBindImageMemorySwapchainInfoKHR;
1375 typedef 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;
1384 typedef struct VkDeviceGroupPresentInfoKHR {
1385 VkStructureType sType;
1386 const void* pNext;
1387 uint32_t swapchainCount;
1388 const uint32_t* pDeviceMasks;
1389 VkDeviceGroupPresentModeFlagBitsKHR mode;
1390 } VkDeviceGroupPresentInfoKHR;
1391 typedef uint32_t VkSampleMask;
1392 typedef uint32_t VkBool32;
1393 typedef uint32_t VkFlags;
1394 typedef uint64_t VkDeviceSize;
1395 typedef VkFlags VkFramebufferCreateFlags;
1396 typedef VkFlags VkQueryPoolCreateFlags;
1397 typedef VkFlags VkRenderPassCreateFlags;
1398 typedef VkFlags VkSamplerCreateFlags;
1399 typedef VkFlags VkPipelineLayoutCreateFlags;
1400 typedef VkFlags VkPipelineCacheCreateFlags;
1401 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1402 typedef VkFlags VkPipelineDynamicStateCreateFlags;
1403 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
1404 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
1405 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
1406 typedef VkFlags VkPipelineViewportStateCreateFlags;
1407 typedef VkFlags VkPipelineTessellationStateCreateFlags;
1408 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
1409 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
1410 typedef VkFlags VkPipelineShaderStageCreateFlags;
1411 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
1412 typedef VkFlags VkBufferViewCreateFlags;
1413 typedef VkFlags VkInstanceCreateFlags;
1414 typedef VkFlags VkDeviceCreateFlags;
1415 typedef VkFlags VkDeviceQueueCreateFlags;
1416 typedef VkFlags VkQueueFlags;
1417 typedef VkFlags VkMemoryPropertyFlags;
1418 typedef VkFlags VkMemoryHeapFlags;
1419 typedef VkFlags VkAccessFlags;
1420 typedef VkFlags VkBufferUsageFlags;
1421 typedef VkFlags VkBufferCreateFlags;
1422 typedef VkFlags VkShaderStageFlags;
1423 typedef VkFlags VkImageUsageFlags;
1424 typedef VkFlags VkImageCreateFlags;
1425 typedef VkFlags VkImageViewCreateFlags;
1426 typedef VkFlags VkPipelineCreateFlags;
1427 typedef VkFlags VkColorComponentFlags;
1428 typedef VkFlags VkFenceCreateFlags;
1429 typedef VkFlags VkSemaphoreCreateFlags;
1430 typedef VkFlags VkFormatFeatureFlags;
1431 typedef VkFlags VkQueryControlFlags;
1432 typedef VkFlags VkQueryResultFlags;
1433 typedef VkFlags VkShaderModuleCreateFlags;
1434 typedef VkFlags VkEventCreateFlags;
1435 typedef VkFlags VkCommandPoolCreateFlags;
1436 typedef VkFlags VkCommandPoolResetFlags;
1437 typedef VkFlags VkCommandBufferResetFlags;
1438 typedef VkFlags VkCommandBufferUsageFlags;
1439 typedef VkFlags VkQueryPipelineStatisticFlags;
1440 typedef VkFlags VkMemoryMapFlags;
1441 typedef VkFlags VkImageAspectFlags;
1442 typedef VkFlags VkSparseMemoryBindFlags;
1443 typedef VkFlags VkSparseImageFormatFlags;
1444 typedef VkFlags VkSubpassDescriptionFlags;
1445 typedef VkFlags VkPipelineStageFlags;
1446 typedef VkFlags VkSampleCountFlags;
1447 typedef VkFlags VkAttachmentDescriptionFlags;
1448 typedef VkFlags VkStencilFaceFlags;
1449 typedef VkFlags VkCullModeFlags;
1450 typedef VkFlags VkDescriptorPoolCreateFlags;
1451 typedef VkFlags VkDescriptorPoolResetFlags;
1452 typedef VkFlags VkDependencyFlags;
1453 typedef VkFlags VkCompositeAlphaFlagsKHR;
1454 typedef VkFlags VkSurfaceTransformFlagsKHR;
1455 typedef VkFlags VkSwapchainCreateFlagsKHR;
1456 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
1457 typedef VkFlags VkDebugReportFlagsEXT;
1458 typedef 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);
1467 typedef 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;
1475 typedef 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;
1485 typedef struct VkQueueFamilyProperties {
1486 VkQueueFlags queueFlags;
1487 uint32_t queueCount;
1488 uint32_t timestampValidBits;
1489 VkExtent3D minImageTransferGranularity;
1490 } VkQueueFamilyProperties;
1491 typedef struct VkMemoryAllocateInfo {
1492 VkStructureType sType;
1493 const void* pNext;
1494 VkDeviceSize allocationSize;
1495 uint32_t memoryTypeIndex;
1496 } VkMemoryAllocateInfo;
1497 typedef struct VkMemoryRequirements {
1498 VkDeviceSize size;
1499 VkDeviceSize alignment;
1500 uint32_t memoryTypeBits;
1501 } VkMemoryRequirements;
1502 typedef struct VkSparseImageFormatProperties {
1503 VkImageAspectFlags aspectMask;
1504 VkExtent3D imageGranularity;
1505 VkSparseImageFormatFlags flags;
1506 } VkSparseImageFormatProperties;
1507 typedef struct VkSparseImageMemoryRequirements {
1508 VkSparseImageFormatProperties formatProperties;
1509 uint32_t imageMipTailFirstLod;
1510 VkDeviceSize imageMipTailSize;
1511 VkDeviceSize imageMipTailOffset;
1512 VkDeviceSize imageMipTailStride;
1513 } VkSparseImageMemoryRequirements;
1514 typedef struct VkMemoryType {
1515 VkMemoryPropertyFlags propertyFlags;
1516 uint32_t heapIndex;
1517 } VkMemoryType;
1518 typedef struct VkMemoryHeap {
1519 VkDeviceSize size;
1520 VkMemoryHeapFlags flags;
1521 } VkMemoryHeap;
1522 typedef struct VkMappedMemoryRange {
1523 VkStructureType sType;
1524 const void* pNext;
1525 VkDeviceMemory memory;
1526 VkDeviceSize offset;
1527 VkDeviceSize size;
1528 } VkMappedMemoryRange;
1529 typedef struct VkFormatProperties {
1530 VkFormatFeatureFlags linearTilingFeatures;
1531 VkFormatFeatureFlags optimalTilingFeatures;
1532 VkFormatFeatureFlags bufferFeatures;
1533 } VkFormatProperties;
1534 typedef struct VkImageFormatProperties {
1535 VkExtent3D maxExtent;
1536 uint32_t maxMipLevels;
1537 uint32_t maxArrayLayers;
1538 VkSampleCountFlags sampleCounts;
1539 VkDeviceSize maxResourceSize;
1540 } VkImageFormatProperties;
1541 typedef struct VkDescriptorBufferInfo {
1542 VkBuffer buffer;
1543 VkDeviceSize offset;
1544 VkDeviceSize range;
1545 } VkDescriptorBufferInfo;
1546 typedef 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;
1558 typedef 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;
1568 typedef 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;
1577 typedef struct VkImageSubresource {
1578 VkImageAspectFlags aspectMask;
1579 uint32_t mipLevel;
1580 uint32_t arrayLayer;
1581 } VkImageSubresource;
1582 typedef struct VkImageSubresourceLayers {
1583 VkImageAspectFlags aspectMask;
1584 uint32_t mipLevel;
1585 uint32_t baseArrayLayer;
1586 uint32_t layerCount;
1587 } VkImageSubresourceLayers;
1588 typedef struct VkImageSubresourceRange {
1589 VkImageAspectFlags aspectMask;
1590 uint32_t baseMipLevel;
1591 uint32_t levelCount;
1592 uint32_t baseArrayLayer;
1593 uint32_t layerCount;
1594 } VkImageSubresourceRange;
1595 typedef struct VkMemoryBarrier {
1596 VkStructureType sType;
1597 const void* pNext;
1598 VkAccessFlags srcAccessMask;
1599 VkAccessFlags dstAccessMask;
1600 } VkMemoryBarrier;
1601 typedef 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;
1612 typedef 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;
1624 typedef 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;
1641 typedef struct VkSubresourceLayout {
1642 VkDeviceSize offset;
1643 VkDeviceSize size;
1644 VkDeviceSize rowPitch;
1645 VkDeviceSize arrayPitch;
1646 VkDeviceSize depthPitch;
1647 } VkSubresourceLayout;
1648 typedef 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;
1658 typedef struct VkBufferCopy {
1659 VkDeviceSize srcOffset;
1660 VkDeviceSize dstOffset;
1661 VkDeviceSize size;
1662 } VkBufferCopy;
1663 typedef struct VkSparseMemoryBind {
1664 VkDeviceSize resourceOffset;
1665 VkDeviceSize size;
1666 VkDeviceMemory memory;
1667 VkDeviceSize memoryOffset;
1668 VkSparseMemoryBindFlags flags;
1669 } VkSparseMemoryBind;
1670 typedef struct VkSparseImageMemoryBind {
1671 VkImageSubresource subresource;
1672 VkOffset3D offset;
1673 VkExtent3D extent;
1674 VkDeviceMemory memory;
1675 VkDeviceSize memoryOffset;
1676 VkSparseMemoryBindFlags flags;
1677 } VkSparseImageMemoryBind;
1678 typedef struct VkSparseBufferMemoryBindInfo {
1679 VkBuffer buffer;
1680 uint32_t bindCount;
1681 const VkSparseMemoryBind* pBinds;
1682 } VkSparseBufferMemoryBindInfo;
1683 typedef struct VkSparseImageOpaqueMemoryBindInfo {
1684 VkImage image;
1685 uint32_t bindCount;
1686 const VkSparseMemoryBind* pBinds;
1687 } VkSparseImageOpaqueMemoryBindInfo;
1688 typedef struct VkSparseImageMemoryBindInfo {
1689 VkImage image;
1690 uint32_t bindCount;
1691 const VkSparseImageMemoryBind* pBinds;
1692 } VkSparseImageMemoryBindInfo;
1693 typedef 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;
1707 typedef struct VkImageCopy {
1708 VkImageSubresourceLayers srcSubresource;
1709 VkOffset3D srcOffset;
1710 VkImageSubresourceLayers dstSubresource;
1711 VkOffset3D dstOffset;
1712 VkExtent3D extent;
1713 } VkImageCopy;
1714 typedef struct VkImageBlit {
1715 VkImageSubresourceLayers srcSubresource;
1716 VkOffset3D srcOffsets[2];
1717 VkImageSubresourceLayers dstSubresource;
1718 VkOffset3D dstOffsets[2];
1719 } VkImageBlit;
1720 typedef struct VkBufferImageCopy {
1721 VkDeviceSize bufferOffset;
1722 uint32_t bufferRowLength;
1723 uint32_t bufferImageHeight;
1724 VkImageSubresourceLayers imageSubresource;
1725 VkOffset3D imageOffset;
1726 VkExtent3D imageExtent;
1727 } VkBufferImageCopy;
1728 typedef struct VkImageResolve {
1729 VkImageSubresourceLayers srcSubresource;
1730 VkOffset3D srcOffset;
1731 VkImageSubresourceLayers dstSubresource;
1732 VkOffset3D dstOffset;
1733 VkExtent3D extent;
1734 } VkImageResolve;
1735 typedef struct VkShaderModuleCreateInfo {
1736 VkStructureType sType;
1737 const void* pNext;
1738 VkShaderModuleCreateFlags flags;
1739 size_t codeSize;
1740 const uint32_t* pCode;
1741 } VkShaderModuleCreateInfo;
1742 typedef struct VkDescriptorSetLayoutBinding {
1743 uint32_t binding;
1744 VkDescriptorType descriptorType;
1745 uint32_t descriptorCount;
1746 VkShaderStageFlags stageFlags;
1747 const VkSampler* pImmutableSamplers;
1748 } VkDescriptorSetLayoutBinding;
1749 typedef struct VkDescriptorSetLayoutCreateInfo {
1750 VkStructureType sType;
1751 const void* pNext;
1752 VkDescriptorSetLayoutCreateFlags flags;
1753 uint32_t bindingCount;
1754 const VkDescriptorSetLayoutBinding* pBindings;
1755 } VkDescriptorSetLayoutCreateInfo;
1756 typedef 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;
1764 typedef 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;
1773 typedef 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;
1782 typedef 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;
1791 typedef struct VkPipelineInputAssemblyStateCreateInfo {
1792 VkStructureType sType;
1793 const void* pNext;
1794 VkPipelineInputAssemblyStateCreateFlags flags;
1795 VkPrimitiveTopology topology;
1796 VkBool32 primitiveRestartEnable;
1797 } VkPipelineInputAssemblyStateCreateInfo;
1798 typedef struct VkPipelineTessellationStateCreateInfo {
1799 VkStructureType sType;
1800 const void* pNext;
1801 VkPipelineTessellationStateCreateFlags flags;
1802 uint32_t patchControlPoints;
1803 } VkPipelineTessellationStateCreateInfo;
1804 typedef 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;
1813 typedef 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;
1828 typedef 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;
1839 typedef 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;
1849 typedef 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;
1859 typedef struct VkPipelineDynamicStateCreateInfo {
1860 VkStructureType sType;
1861 const void* pNext;
1862 VkPipelineDynamicStateCreateFlags flags;
1863 uint32_t dynamicStateCount;
1864 const VkDynamicState* pDynamicStates;
1865 } VkPipelineDynamicStateCreateInfo;
1866 typedef 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;
1880 typedef 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;
1901 typedef struct VkPipelineCacheCreateInfo {
1902 VkStructureType sType;
1903 const void* pNext;
1904 VkPipelineCacheCreateFlags flags;
1905 size_t initialDataSize;
1906 const void* pInitialData;
1907 } VkPipelineCacheCreateInfo;
1908 typedef struct VkPushConstantRange {
1909 VkShaderStageFlags stageFlags;
1910 uint32_t offset;
1911 uint32_t size;
1912 } VkPushConstantRange;
1913 typedef 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;
1922 typedef 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;
1942 typedef struct VkCommandPoolCreateInfo {
1943 VkStructureType sType;
1944 const void* pNext;
1945 VkCommandPoolCreateFlags flags;
1946 uint32_t queueFamilyIndex;
1947 } VkCommandPoolCreateInfo;
1948 typedef 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;
1958 typedef struct VkCommandBufferBeginInfo {
1959 VkStructureType sType;
1960 const void* pNext;
1961 VkCommandBufferUsageFlags flags;
1962 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
1963 } VkCommandBufferBeginInfo;
1964 typedef 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;
1973 typedef struct VkClearAttachment {
1974 VkImageAspectFlags aspectMask;
1975 uint32_t colorAttachment;
1976 VkClearValue clearValue;
1977 } VkClearAttachment;
1978 typedef 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;
1989 typedef 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;
2001 typedef 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;
2010 typedef 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;
2021 typedef struct VkEventCreateInfo {
2022 VkStructureType sType;
2023 const void* pNext;
2024 VkEventCreateFlags flags;
2025 } VkEventCreateInfo;
2026 typedef struct VkFenceCreateInfo {
2027 VkStructureType sType;
2028 const void* pNext;
2029 VkFenceCreateFlags flags;
2030 } VkFenceCreateInfo;
2031 typedef 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;
2088 typedef struct VkPhysicalDeviceSparseProperties {
2089 VkBool32 residencyStandard2DBlockShape;
2090 VkBool32 residencyStandard2DMultisampleBlockShape;
2091 VkBool32 residencyStandard3DBlockShape;
2092 VkBool32 residencyAlignedMipSize;
2093 VkBool32 residencyNonResidentStrict;
2094 } VkPhysicalDeviceSparseProperties;
2095 typedef 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;
2203 typedef struct VkSemaphoreCreateInfo {
2204 VkStructureType sType;
2205 const void* pNext;
2206 VkSemaphoreCreateFlags flags;
2207 } VkSemaphoreCreateInfo;
2208 typedef struct VkQueryPoolCreateInfo {
2209 VkStructureType sType;
2210 const void* pNext;
2211 VkQueryPoolCreateFlags flags;
2212 VkQueryType queryType;
2213 uint32_t queryCount;
2214 VkQueryPipelineStatisticFlags pipelineStatistics;
2215 } VkQueryPoolCreateInfo;
2216 typedef 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;
2227 typedef 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;
2238 typedef 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;
2250 typedef 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;
2270 typedef struct VkDebugReportCallbackCreateInfoEXT {
2271 VkStructureType sType;
2272 const void* pNext;
2273 VkDebugReportFlagsEXT flags;
2274 PFN_vkDebugReportCallbackEXT pfnCallback;
2275 void* pUserData;
2276 } VkDebugReportCallbackCreateInfoEXT;
2277 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
2278 VkStructureType sType;
2279 const void* pNext;
2280 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
2281 VkDeviceGroupPresentModeFlagsKHR modes;
2282 } VkDeviceGroupPresentCapabilitiesKHR;
2283 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
2284 VkStructureType sType;
2285 const void* pNext;
2286 VkDeviceGroupPresentModeFlagsKHR modes;
2287 } VkDeviceGroupSwapchainCreateInfoKHR;
2288 typedef 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;
2299 typedef 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;
2311 typedef 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
2320 GLAD_API_CALL int GLAD_VK_VERSION_1_0;
2321#define VK_EXT_debug_report 1
2322 GLAD_API_CALL int GLAD_VK_EXT_debug_report;
2323#define VK_KHR_surface 1
2324 GLAD_API_CALL int GLAD_VK_KHR_surface;
2325#define VK_KHR_swapchain 1
2326 GLAD_API_CALL int GLAD_VK_KHR_swapchain;
2327
2328
2329 typedef VkResult(GLAD_API_PTR* PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
2330 typedef VkResult(GLAD_API_PTR* PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
2331 typedef VkResult(GLAD_API_PTR* PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2332 typedef VkResult(GLAD_API_PTR* PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2333 typedef VkResult(GLAD_API_PTR* PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2334 typedef VkResult(GLAD_API_PTR* PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2335 typedef VkResult(GLAD_API_PTR* PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2336 typedef VkResult(GLAD_API_PTR* PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2337 typedef void (GLAD_API_PTR* PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
2338 typedef void (GLAD_API_PTR* PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2339 typedef void (GLAD_API_PTR* PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2340 typedef void (GLAD_API_PTR* PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2341 typedef void (GLAD_API_PTR* PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2342 typedef void (GLAD_API_PTR* PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2343 typedef void (GLAD_API_PTR* PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2344 typedef void (GLAD_API_PTR* PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2345 typedef void (GLAD_API_PTR* PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2346 typedef void (GLAD_API_PTR* PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2347 typedef void (GLAD_API_PTR* PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2348 typedef void (GLAD_API_PTR* PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2349 typedef void (GLAD_API_PTR* PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2350 typedef void (GLAD_API_PTR* PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2351 typedef void (GLAD_API_PTR* PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2352 typedef void (GLAD_API_PTR* PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
2353 typedef void (GLAD_API_PTR* PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2354 typedef void (GLAD_API_PTR* PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2355 typedef void (GLAD_API_PTR* PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2356 typedef void (GLAD_API_PTR* PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2357 typedef void (GLAD_API_PTR* PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2358 typedef void (GLAD_API_PTR* PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2359 typedef void (GLAD_API_PTR* PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2360 typedef void (GLAD_API_PTR* PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2361 typedef void (GLAD_API_PTR* PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2362 typedef void (GLAD_API_PTR* PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2363 typedef void (GLAD_API_PTR* PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2364 typedef void (GLAD_API_PTR* PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2365 typedef void (GLAD_API_PTR* PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2366 typedef void (GLAD_API_PTR* PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
2367 typedef void (GLAD_API_PTR* PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2368 typedef void (GLAD_API_PTR* PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2369 typedef void (GLAD_API_PTR* PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2370 typedef void (GLAD_API_PTR* PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2371 typedef void (GLAD_API_PTR* PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2372 typedef void (GLAD_API_PTR* PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2373 typedef void (GLAD_API_PTR* PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2374 typedef void (GLAD_API_PTR* PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2375 typedef void (GLAD_API_PTR* PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2376 typedef void (GLAD_API_PTR* PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2377 typedef void (GLAD_API_PTR* PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2378 typedef void (GLAD_API_PTR* PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2379 typedef void (GLAD_API_PTR* PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2380 typedef void (GLAD_API_PTR* PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2381 typedef VkResult(GLAD_API_PTR* PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2382 typedef VkResult(GLAD_API_PTR* PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2383 typedef VkResult(GLAD_API_PTR* PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2384 typedef VkResult(GLAD_API_PTR* PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2385 typedef VkResult(GLAD_API_PTR* PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
2386 typedef VkResult(GLAD_API_PTR* PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2387 typedef VkResult(GLAD_API_PTR* PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2388 typedef VkResult(GLAD_API_PTR* PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2389 typedef VkResult(GLAD_API_PTR* PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2390 typedef VkResult(GLAD_API_PTR* PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2391 typedef VkResult(GLAD_API_PTR* PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2392 typedef VkResult(GLAD_API_PTR* PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2393 typedef VkResult(GLAD_API_PTR* PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2394 typedef VkResult(GLAD_API_PTR* PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2395 typedef VkResult(GLAD_API_PTR* PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2396 typedef VkResult(GLAD_API_PTR* PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2397 typedef VkResult(GLAD_API_PTR* PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2398 typedef VkResult(GLAD_API_PTR* PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2399 typedef VkResult(GLAD_API_PTR* PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2400 typedef VkResult(GLAD_API_PTR* PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2401 typedef VkResult(GLAD_API_PTR* PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2402 typedef VkResult(GLAD_API_PTR* PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2403 typedef VkResult(GLAD_API_PTR* PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
2404 typedef void (GLAD_API_PTR* PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
2405 typedef void (GLAD_API_PTR* PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2406 typedef void (GLAD_API_PTR* PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2407 typedef void (GLAD_API_PTR* PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2408 typedef void (GLAD_API_PTR* PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
2409 typedef void (GLAD_API_PTR* PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2410 typedef void (GLAD_API_PTR* PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2411 typedef void (GLAD_API_PTR* PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2412 typedef void (GLAD_API_PTR* PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2413 typedef void (GLAD_API_PTR* PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2414 typedef void (GLAD_API_PTR* PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2415 typedef void (GLAD_API_PTR* PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2416 typedef void (GLAD_API_PTR* PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2417 typedef void (GLAD_API_PTR* PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2418 typedef void (GLAD_API_PTR* PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2419 typedef void (GLAD_API_PTR* PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2420 typedef void (GLAD_API_PTR* PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2421 typedef void (GLAD_API_PTR* PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2422 typedef void (GLAD_API_PTR* PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2423 typedef void (GLAD_API_PTR* PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2424 typedef void (GLAD_API_PTR* PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2425 typedef void (GLAD_API_PTR* PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2426 typedef void (GLAD_API_PTR* PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
2427 typedef void (GLAD_API_PTR* PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
2428 typedef VkResult(GLAD_API_PTR* PFN_vkDeviceWaitIdle)(VkDevice device);
2429 typedef VkResult(GLAD_API_PTR* PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2430 typedef VkResult(GLAD_API_PTR* PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2431 typedef VkResult(GLAD_API_PTR* PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2432 typedef VkResult(GLAD_API_PTR* PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2433 typedef VkResult(GLAD_API_PTR* PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2434 typedef VkResult(GLAD_API_PTR* PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2435 typedef VkResult(GLAD_API_PTR* PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2436 typedef void (GLAD_API_PTR* PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2437 typedef VkResult(GLAD_API_PTR* PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2438 typedef void (GLAD_API_PTR* PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2439 typedef void (GLAD_API_PTR* PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2440 typedef VkResult(GLAD_API_PTR* PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
2441 typedef VkResult(GLAD_API_PTR* PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
2442 typedef void (GLAD_API_PTR* PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2443 typedef PFN_vkVoidFunction(GLAD_API_PTR* PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2444 typedef void (GLAD_API_PTR* PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2445 typedef VkResult(GLAD_API_PTR* PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2446 typedef VkResult(GLAD_API_PTR* PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2447 typedef void (GLAD_API_PTR* PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2448 typedef void (GLAD_API_PTR* PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2449 typedef void (GLAD_API_PTR* PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2450 typedef PFN_vkVoidFunction(GLAD_API_PTR* PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2451 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2452 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2453 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2454 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2455 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
2456 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2457 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2458 typedef void (GLAD_API_PTR* PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2459 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
2460 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
2461 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
2462 typedef VkResult(GLAD_API_PTR* PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
2463 typedef VkResult(GLAD_API_PTR* PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2464 typedef VkResult(GLAD_API_PTR* PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2465 typedef void (GLAD_API_PTR* PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2466 typedef VkResult(GLAD_API_PTR* PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
2467 typedef VkResult(GLAD_API_PTR* PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2468 typedef VkResult(GLAD_API_PTR* PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2469 typedef VkResult(GLAD_API_PTR* PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2470 typedef VkResult(GLAD_API_PTR* PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2471 typedef VkResult(GLAD_API_PTR* PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
2472 typedef VkResult(GLAD_API_PTR* PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2473 typedef VkResult(GLAD_API_PTR* PFN_vkQueueWaitIdle)(VkQueue queue);
2474 typedef VkResult(GLAD_API_PTR* PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2475 typedef VkResult(GLAD_API_PTR* PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2476 typedef VkResult(GLAD_API_PTR* PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2477 typedef VkResult(GLAD_API_PTR* PFN_vkResetEvent)(VkDevice device, VkEvent event);
2478 typedef VkResult(GLAD_API_PTR* PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2479 typedef VkResult(GLAD_API_PTR* PFN_vkSetEvent)(VkDevice device, VkEvent event);
2480 typedef void (GLAD_API_PTR* PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2481 typedef void (GLAD_API_PTR* PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2482 typedef VkResult(GLAD_API_PTR* PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2483
2484 GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
2485#define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
2486 GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
2487#define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
2488 GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
2489#define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
2490 GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
2491#define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
2492 GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
2493#define vkAllocateMemory glad_vkAllocateMemory
2494 GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
2495#define vkBeginCommandBuffer glad_vkBeginCommandBuffer
2496 GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
2497#define vkBindBufferMemory glad_vkBindBufferMemory
2498 GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
2499#define vkBindImageMemory glad_vkBindImageMemory
2500 GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
2501#define vkCmdBeginQuery glad_vkCmdBeginQuery
2502 GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
2503#define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
2504 GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
2505#define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
2506 GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
2507#define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
2508 GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
2509#define vkCmdBindPipeline glad_vkCmdBindPipeline
2510 GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
2511#define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
2512 GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
2513#define vkCmdBlitImage glad_vkCmdBlitImage
2514 GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
2515#define vkCmdClearAttachments glad_vkCmdClearAttachments
2516 GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
2517#define vkCmdClearColorImage glad_vkCmdClearColorImage
2518 GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
2519#define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
2520 GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
2521#define vkCmdCopyBuffer glad_vkCmdCopyBuffer
2522 GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
2523#define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
2524 GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
2525#define vkCmdCopyImage glad_vkCmdCopyImage
2526 GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
2527#define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
2528 GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
2529#define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
2530 GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
2531#define vkCmdDispatch glad_vkCmdDispatch
2532 GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
2533#define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
2534 GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
2535#define vkCmdDraw glad_vkCmdDraw
2536 GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
2537#define vkCmdDrawIndexed glad_vkCmdDrawIndexed
2538 GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
2539#define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
2540 GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
2541#define vkCmdDrawIndirect glad_vkCmdDrawIndirect
2542 GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
2543#define vkCmdEndQuery glad_vkCmdEndQuery
2544 GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
2545#define vkCmdEndRenderPass glad_vkCmdEndRenderPass
2546 GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
2547#define vkCmdExecuteCommands glad_vkCmdExecuteCommands
2548 GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
2549#define vkCmdFillBuffer glad_vkCmdFillBuffer
2550 GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
2551#define vkCmdNextSubpass glad_vkCmdNextSubpass
2552 GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
2553#define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
2554 GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
2555#define vkCmdPushConstants glad_vkCmdPushConstants
2556 GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
2557#define vkCmdResetEvent glad_vkCmdResetEvent
2558 GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
2559#define vkCmdResetQueryPool glad_vkCmdResetQueryPool
2560 GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
2561#define vkCmdResolveImage glad_vkCmdResolveImage
2562 GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
2563#define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
2564 GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
2565#define vkCmdSetDepthBias glad_vkCmdSetDepthBias
2566 GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
2567#define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
2568 GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
2569#define vkCmdSetEvent glad_vkCmdSetEvent
2570 GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
2571#define vkCmdSetLineWidth glad_vkCmdSetLineWidth
2572 GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
2573#define vkCmdSetScissor glad_vkCmdSetScissor
2574 GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
2575#define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
2576 GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
2577#define vkCmdSetStencilReference glad_vkCmdSetStencilReference
2578 GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
2579#define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
2580 GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
2581#define vkCmdSetViewport glad_vkCmdSetViewport
2582 GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
2583#define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
2584 GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
2585#define vkCmdWaitEvents glad_vkCmdWaitEvents
2586 GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
2587#define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
2588 GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
2589#define vkCreateBuffer glad_vkCreateBuffer
2590 GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
2591#define vkCreateBufferView glad_vkCreateBufferView
2592 GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
2593#define vkCreateCommandPool glad_vkCreateCommandPool
2594 GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
2595#define vkCreateComputePipelines glad_vkCreateComputePipelines
2596 GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
2597#define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
2598 GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
2599#define vkCreateDescriptorPool glad_vkCreateDescriptorPool
2600 GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
2601#define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
2602 GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
2603#define vkCreateDevice glad_vkCreateDevice
2604 GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
2605#define vkCreateEvent glad_vkCreateEvent
2606 GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
2607#define vkCreateFence glad_vkCreateFence
2608 GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
2609#define vkCreateFramebuffer glad_vkCreateFramebuffer
2610 GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
2611#define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
2612 GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
2613#define vkCreateImage glad_vkCreateImage
2614 GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
2615#define vkCreateImageView glad_vkCreateImageView
2616 GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
2617#define vkCreateInstance glad_vkCreateInstance
2618 GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
2619#define vkCreatePipelineCache glad_vkCreatePipelineCache
2620 GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
2621#define vkCreatePipelineLayout glad_vkCreatePipelineLayout
2622 GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
2623#define vkCreateQueryPool glad_vkCreateQueryPool
2624 GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
2625#define vkCreateRenderPass glad_vkCreateRenderPass
2626 GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
2627#define vkCreateSampler glad_vkCreateSampler
2628 GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
2629#define vkCreateSemaphore glad_vkCreateSemaphore
2630 GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
2631#define vkCreateShaderModule glad_vkCreateShaderModule
2632 GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
2633#define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
2634 GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
2635#define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
2636 GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
2637#define vkDestroyBuffer glad_vkDestroyBuffer
2638 GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
2639#define vkDestroyBufferView glad_vkDestroyBufferView
2640 GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
2641#define vkDestroyCommandPool glad_vkDestroyCommandPool
2642 GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
2643#define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
2644 GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
2645#define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
2646 GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
2647#define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
2648 GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
2649#define vkDestroyDevice glad_vkDestroyDevice
2650 GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
2651#define vkDestroyEvent glad_vkDestroyEvent
2652 GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
2653#define vkDestroyFence glad_vkDestroyFence
2654 GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
2655#define vkDestroyFramebuffer glad_vkDestroyFramebuffer
2656 GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
2657#define vkDestroyImage glad_vkDestroyImage
2658 GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
2659#define vkDestroyImageView glad_vkDestroyImageView
2660 GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
2661#define vkDestroyInstance glad_vkDestroyInstance
2662 GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
2663#define vkDestroyPipeline glad_vkDestroyPipeline
2664 GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
2665#define vkDestroyPipelineCache glad_vkDestroyPipelineCache
2666 GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
2667#define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
2668 GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
2669#define vkDestroyQueryPool glad_vkDestroyQueryPool
2670 GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
2671#define vkDestroyRenderPass glad_vkDestroyRenderPass
2672 GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
2673#define vkDestroySampler glad_vkDestroySampler
2674 GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
2675#define vkDestroySemaphore glad_vkDestroySemaphore
2676 GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
2677#define vkDestroyShaderModule glad_vkDestroyShaderModule
2678 GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
2679#define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
2680 GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
2681#define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
2682 GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
2683#define vkDeviceWaitIdle glad_vkDeviceWaitIdle
2684 GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
2685#define vkEndCommandBuffer glad_vkEndCommandBuffer
2686 GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
2687#define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
2688 GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
2689#define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
2690 GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
2691#define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
2692 GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
2693#define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
2694 GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
2695#define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
2696 GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
2697#define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
2698 GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
2699#define vkFreeCommandBuffers glad_vkFreeCommandBuffers
2700 GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
2701#define vkFreeDescriptorSets glad_vkFreeDescriptorSets
2702 GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
2703#define vkFreeMemory glad_vkFreeMemory
2704 GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
2705#define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
2706 GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
2707#define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
2708 GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
2709#define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
2710 GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
2711#define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
2712 GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
2713#define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
2714 GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
2715#define vkGetDeviceQueue glad_vkGetDeviceQueue
2716 GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
2717#define vkGetEventStatus glad_vkGetEventStatus
2718 GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
2719#define vkGetFenceStatus glad_vkGetFenceStatus
2720 GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
2721#define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
2722 GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
2723#define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
2724 GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
2725#define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
2726 GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
2727#define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
2728 GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
2729#define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
2730 GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
2731#define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
2732 GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
2733#define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
2734 GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
2735#define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
2736 GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
2737#define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
2738 GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
2739#define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
2740 GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
2741#define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
2742 GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
2743#define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
2744 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
2745#define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
2746 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
2747#define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
2748 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
2749#define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
2750 GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
2751#define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
2752 GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
2753#define vkGetPipelineCacheData glad_vkGetPipelineCacheData
2754 GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
2755#define vkGetQueryPoolResults glad_vkGetQueryPoolResults
2756 GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
2757#define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
2758 GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
2759#define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
2760 GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
2761#define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
2762 GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
2763#define vkMapMemory glad_vkMapMemory
2764 GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
2765#define vkMergePipelineCaches glad_vkMergePipelineCaches
2766 GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
2767#define vkQueueBindSparse glad_vkQueueBindSparse
2768 GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
2769#define vkQueuePresentKHR glad_vkQueuePresentKHR
2770 GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
2771#define vkQueueSubmit glad_vkQueueSubmit
2772 GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
2773#define vkQueueWaitIdle glad_vkQueueWaitIdle
2774 GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
2775#define vkResetCommandBuffer glad_vkResetCommandBuffer
2776 GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
2777#define vkResetCommandPool glad_vkResetCommandPool
2778 GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
2779#define vkResetDescriptorPool glad_vkResetDescriptorPool
2780 GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
2781#define vkResetEvent glad_vkResetEvent
2782 GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
2783#define vkResetFences glad_vkResetFences
2784 GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
2785#define vkSetEvent glad_vkSetEvent
2786 GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
2787#define vkUnmapMemory glad_vkUnmapMemory
2788 GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
2789#define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
2790 GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
2791#define vkWaitForFences glad_vkWaitForFences
2792
2793
2794 GLAD_API_CALL int gladLoadVulkanUserPtr(VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void* userptr);
2795 GLAD_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
Note: See TracBrowser for help on using the repository browser.