vulkan.h revision 65ab552c18df3e94c5d275294a20dd4d20dda119
1dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall#ifndef __vulkan_h_
2dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall#define __vulkan_h_ 1
304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallextern "C" {
604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** Copyright (c) 2015 The Khronos Group Inc.
1004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
1104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** Permission is hereby granted, free of charge, to any person obtaining a
1204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** copy of this software and/or associated documentation files (the
1304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** "Materials"), to deal in the Materials without restriction, including
1404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** without limitation the rights to use, copy, modify, merge, publish,
1504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** distribute, sublicense, and/or sell copies of the Materials, and to
1604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** permit persons to whom the Materials are furnished to do so, subject to
1704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** the following conditions:
1804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
1904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** The above copyright notice and this permission notice shall be included
2004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** in all copies or substantial portions of the Materials.
2104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
2604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
3204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** This header is generated from the Khronos Vulkan XML API Registry.
3304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
3404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
3504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_VERSION_1_0 1
3804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include "vk_platform.h"
3904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_MAKE_VERSION(major, minor, patch) \
4104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    ((major << 22) | (minor << 12) | patch)
4204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// Vulkan API version supported by this file
4465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 198, 0)
455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
47a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
48a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall
4904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
54a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#else
573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
5804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
59a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall
6004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkFlags;
63a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef uint32_t VkBool32;
645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint64_t VkDeviceSize;
655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkSampleMask;
6604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkInstance)
6804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkPhysicalDevice)
6904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkDevice)
7004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkQueue)
713fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
723fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_HANDLE(VkCommandBuffer)
733fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
743fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
753fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
763fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
773fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
783fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
793fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
803fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
813fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
823fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShader)
833fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
843fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
853fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
863fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
873fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
883fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
893fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
903fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
913fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
923fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
9304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_LOD_CLAMP_NONE                 1000.0f
955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_MIP_LEVELS           (~0U)
965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_ARRAY_LAYERS         (~0U)
975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_WHOLE_SIZE                     (~0ULL)
985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_ATTACHMENT_UNUSED              (~0U)
995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_TRUE                           1
1005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_FALSE                          0
1015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_QUEUE_FAMILY_IGNORED           (~0U)
1025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_SUBPASS_EXTERNAL               (~0U)
10365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
10465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_UUID_SIZE                      16
1055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
10765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_EXTENSION_NAME_SIZE        256
10865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_DESCRIPTION_SIZE           256
1095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
11204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SUCCESS = 0,
113a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_NOT_READY = 1,
114a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_TIMEOUT = 2,
115a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_SET = 3,
116a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_RESET = 4,
117a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_INCOMPLETE = 5,
1185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
12004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ERROR_INITIALIZATION_FAILED = -3,
1215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_DEVICE_LOST = -4,
1225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_MEMORY_MAP_FAILED = -5,
1235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_LAYER_NOT_PRESENT = -6,
1245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
125606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_FEATURE_NOT_PRESENT = -8,
126606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
1275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_INCOMPATIBLE_DRIVER,
12804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
1293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_INCOMPATIBLE_DRIVER + 1),
13004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
13104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
13204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
13404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
135c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
136c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
137c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
138c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
139c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 5,
140c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
141c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
142c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
143c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
145c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
146c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
147c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
148c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
149c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
150c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
151c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 17,
152c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 18,
153c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 19,
154c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 20,
155c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 21,
156c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 22,
157c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 23,
15865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 24,
159c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 25,
160c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 26,
161c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 27,
162c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 28,
163c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 29,
164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 30,
165c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 31,
166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 32,
167c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 33,
168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 34,
169c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 35,
170c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 36,
171c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 37,
172c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 38,
173c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 39,
1743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 40,
1753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO = 41,
1763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
178c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
179c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
180c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
181c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 47,
182c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 48,
18304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
184c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
1853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
18604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
18704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
18804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION = 0,
1913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION,
1963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
1973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION + 1),
1983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
20003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
20103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef enum {
2023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
2033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
2063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
2073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
20804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
21004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
21104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_UNORM = 1,
21204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_USCALED = 2,
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_UNORM = 3,
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_USCALED = 4,
21504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_UNORM = 5,
21604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_USCALED = 6,
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_UNORM = 7,
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_USCALED = 8,
21904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
22004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
22104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
22204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
22404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
22504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
22604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
22704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
22804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
22904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
23004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
23104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
23204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
23304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
23404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
23504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
23604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
23704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
23804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
23904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
24004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 30,
24104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 31,
24204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 32,
24304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 33,
24404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 34,
24504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 35,
24604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 36,
24704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UNORM = 37,
24804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SNORM = 38,
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_USCALED = 39,
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SSCALED = 40,
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UINT = 41,
25204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SINT = 42,
25304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UNORM = 43,
25404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SNORM = 44,
25504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_USCALED = 45,
25604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SSCALED = 46,
25704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UINT = 47,
25804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SINT = 48,
25904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SFLOAT = 49,
26004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UNORM = 50,
26104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SNORM = 51,
26204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_USCALED = 52,
26304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SSCALED = 53,
26404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UINT = 54,
26504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SINT = 55,
26604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SFLOAT = 56,
26704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UNORM = 57,
26804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SNORM = 58,
26904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_USCALED = 59,
27004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 60,
27104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UINT = 61,
27204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SINT = 62,
27304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 63,
27404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 64,
27504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 65,
27604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 66,
27704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 67,
27804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 68,
27904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 69,
28004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 70,
28104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_UINT = 71,
28204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SINT = 72,
28304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SFLOAT = 73,
28404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_UINT = 74,
28504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SINT = 75,
28604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SFLOAT = 76,
28704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_UINT = 77,
28804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SINT = 78,
28904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 79,
29004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 80,
29104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 81,
29204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 82,
29304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64_SFLOAT = 83,
29404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64_SFLOAT = 84,
29504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 85,
29604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 86,
29704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R11G11B10_UFLOAT = 87,
29804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R9G9B9E5_UFLOAT = 88,
29904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM = 89,
3005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_D24_UNORM_X8 = 90,
30104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT = 91,
30204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_S8_UINT = 92,
30304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 93,
30404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 94,
30504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
30604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_UNORM = 96,
30704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_SRGB = 97,
30804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_UNORM = 98,
30904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_SRGB = 99,
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_UNORM = 100,
31104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_SRGB = 101,
31204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_UNORM = 102,
31304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_SRGB = 103,
31404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_UNORM = 104,
31504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_SNORM = 105,
31604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_UNORM = 106,
31704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_SNORM = 107,
31804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_UFLOAT = 108,
31904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_SFLOAT = 109,
32004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_UNORM = 110,
32104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_SRGB = 111,
32204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
32304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
32404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
32504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
32604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
32704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
32804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_UNORM = 118,
32904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_SNORM = 119,
33004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_UNORM = 120,
33104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_SNORM = 121,
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_UNORM = 122,
33304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_SRGB = 123,
33404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_UNORM = 124,
33504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_SRGB = 125,
33604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_UNORM = 126,
33704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_SRGB = 127,
33804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_UNORM = 128,
33904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_SRGB = 129,
34004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_UNORM = 130,
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_SRGB = 131,
34204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_UNORM = 132,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_SRGB = 133,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_UNORM = 134,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_SRGB = 135,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_UNORM = 136,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_SRGB = 137,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_UNORM = 138,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_SRGB = 139,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_UNORM = 140,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_SRGB = 141,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_UNORM = 142,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_SRGB = 143,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_UNORM = 144,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_SRGB = 145,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_UNORM = 146,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_SRGB = 147,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_UNORM = 148,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_SRGB = 149,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B4G4R4A4_UNORM = 150,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G5R5A1_UNORM = 151,
36204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_UNORM = 152,
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_USCALED = 153,
36404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UNORM = 154,
36504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SNORM = 155,
36604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_USCALED = 156,
36704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 157,
36804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UINT = 158,
36904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SINT = 159,
37004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SRGB = 160,
37104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 161,
37204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 162,
37304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 163,
37404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 164,
37504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 165,
37604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 166,
37704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 167,
37804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UNORM = 168,
37904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SNORM = 169,
38004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_USCALED = 170,
38104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SSCALED = 171,
38204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UINT = 172,
38304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SINT = 173,
38404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
38504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
3863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
38704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
38804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
38904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
39004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
39104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
39204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
39304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
39404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
39504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
3963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
39704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
39804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
39904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
40004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
401c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
402c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
403c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
404c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
4053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
40604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
40704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
40804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
40904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
41004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
41104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
41204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
41304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
41404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
41504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
41604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
4173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
41804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
41904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
42004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
42104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
42204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
42304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
424a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
42504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
426a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
4273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
42804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
42904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
43004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
43104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
43204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
43304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
43404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
43504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
4363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
43704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
43804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
43904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
44004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
4415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
4425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
4435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
4445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
4455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
4465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
4473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
4483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
4495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
4505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
4515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
4523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
4535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
4545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
45504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
45604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
45704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
45804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
45904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
46004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
46104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
46204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
46304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
46404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
46504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
4663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
46704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
46804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
46904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
47004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
47165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
47265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
47365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
47465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
47565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
47665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
47765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
47865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
47965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
48065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
48165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
48265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
48304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
48404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
48565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
48665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
48765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
48865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
48965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
49065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
49165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
49204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
49304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
49404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
49504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
49604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
49804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
49904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
50404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH = 10,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
50604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH,
5073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
50804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
50904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
51104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
51265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
51365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
51465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
51565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
51665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
51765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
51865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
51965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
52104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
5223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
5233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
5243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
5253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
5263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
52704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
52804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
52904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
53004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
53104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
53304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
5343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
5373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
5413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
54504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
5493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
5503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
5523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
5533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
5553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
5563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
55804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
56004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
5663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
5703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
57204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
5793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
58304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
58465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
58565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
58665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
58765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
58865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
58965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
59065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
59165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
59265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
59365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
59465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
59565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
59665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
59765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
59865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
59965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
60065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
60165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
60265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
60365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
60465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
60565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
60665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
60765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
6173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
62104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
6225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
6235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
6245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
6255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
6265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
6275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
6285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
6295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
6305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
6315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
6325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
6345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
6355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
6365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
6375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
63823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
63923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
64023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
64123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
6423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
64323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
64423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
64604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
64723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BASE = 0,
64823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
64923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
65023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
65123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
6523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
65323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
65423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
65604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
657c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
658c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
659c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
660c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
661c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
662c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
663c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
6643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
66523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
66623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
66704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
66804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
66904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
67504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
6773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
68004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
68104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
68504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
68604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
68704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
68804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
68904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
69004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
69104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
69204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
69304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
69404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
6953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
7053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
70904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
7143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
719c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
720c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
721c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
722c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
7233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
72704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
7283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
7293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
7303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
7313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
7323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
7333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
7343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
73504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
73604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
74004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
7413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
74504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
74665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
74765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
74865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
74965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
75065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
75165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
75265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
754a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
7673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
7683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
7733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
7743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
7785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
7855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
7865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
7875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
7885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
7895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
7905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
7915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
7925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
7935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
7945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
7955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
7965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
7975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
7985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
7995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
80504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
80604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
80765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
808b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
813d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
814d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
815d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
816d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
817d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
822d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
825a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
826a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
82804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
82904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
830a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
831a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
832a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
833a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
834a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
835a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
836a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
837b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
838b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
839b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
84004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
850a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
853ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
854ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
855ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
856ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
857ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
858ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
859ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
860ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
861ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
862ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
863ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
86704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
86804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
87204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
877a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
878a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
879a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
880a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
881a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
882a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
883a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
8843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
88604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
88704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
88804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
88904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
89204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
89304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
895a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
8965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
897a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkImageAspectFlags;
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderCreateFlags;
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
902a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
903a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
904a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
905a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
906a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
907a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
908c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
909a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
910a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
911a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
912a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
913a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
914a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
915a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
916a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
917a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkPipelineCreateFlagBits;
918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineCreateFlags;
919a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
920a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
921a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
922a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineTesselationStateCreateFlags;
923a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
9243fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
925c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
926c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef enum {
927c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
928c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
929c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
930c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x3,
931c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
932c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
933a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
934a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
935a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
936a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
937a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
93865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
93965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
94065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
94165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
94265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
94365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
944a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
945a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
94604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
947a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
948a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
95004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
951fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
952fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
953fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
954fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
955a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
956a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
957fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
958fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef enum {
9595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
96204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
96304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
96404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
969ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
970ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
97404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
97904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
9805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
98104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
98204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
98404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
98704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
98804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
98904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryOutputFlagBits;
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryOutputFlags;
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
99804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
100204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryInputFlagBits;
100504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryInputFlags;
100604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
100704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1008dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1009dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1010dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1011dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
1012dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef enum {
10133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
10143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
10153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
10163fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
10213fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
10253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
10263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
10273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
10283fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
102904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
10333fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
103404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1039c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x3,
10405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
104204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
104465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
104504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10483fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void* (VKAPI *PFN_vkAllocationFunction)(
104903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
105003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             size,
105103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             alignment,
10523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkSystemAllocationScope allocationScope);
105303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
10543fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void* (VKAPI *PFN_vkReallocationFunction)(
105503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
105603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pOriginal,
105703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             size,
105803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             alignment,
10593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkSystemAllocationScope allocationScope);
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
106204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
10633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    void*                           pMemory);
106404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10653fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkInternalAllocationNotification)(
106603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
106703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t                           size,
10683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkInternalAllocationType              allocationType,
10693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkSystemAllocationScope               allocationScope);
107003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
107103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkInternalFreeNotification)(
107203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
107303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t                           size,
10743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkInternalAllocationType              allocationType,
10753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkSystemAllocationScope               allocationScope);
107603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
10775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkVoidFunction)(void);
10785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
10805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const char*                                 pApplicationName;
10833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    applicationVersion;
10845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
108904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
109004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
109104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1092a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstanceCreateFlags                       flags;
10933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkApplicationInfo*                    pApplicationInfo;
109403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
109603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
109804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
110004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
110103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*                                       pUserData;
11023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkAllocationFunction                    pfnAllocation;
11033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkReallocationFunction                  pfnReallocation;
110403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkFreeFunction                          pfnFree;
11053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkInternalAllocationNotification        pfnInternalAllocation;
110603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkInternalFreeNotification              pfnInternalFree;
11073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
110803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
110903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef struct {
111004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
111104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
111204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
111304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
111404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
111604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
11173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBool32                                    dualSrcBlend;
111804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1120ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
112104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
112204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
1126fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    alphaToOne;
1127fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    multiViewport;
1128fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    samplerAnisotropy;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
113265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBool32                                    occlusionQueryPrecise;
113304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
1134dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    vertexPipelineStoresAndAtomics;
1135dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    fragmentStoresAndAtomics;
1136dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    shaderTessellationAndGeometryPointSize;
11375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
113804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
113904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
1140d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    shaderStorageImageReadWithoutFormat;
1141d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    shaderStorageImageWriteWithoutFormat;
114204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
115004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
115265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBool32                                    shaderResourceMinLod;
11535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
115404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
115504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
115604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
116104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
1162d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    variableMultisampleRate;
116304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
116404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
116604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
116704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
116904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
117004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
117104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
11725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
11785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent3D                                  maxExtent;
11795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxMipLevels;
1180a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    maxArrayLayers;
11815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
11825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                maxResourceSize;
118304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
118404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension1D;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension2D;
118804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension3D;
118904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimensionCube;
119004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageArrayLayers;
11915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
1192b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    maxTexelBufferElements;
1193fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxUniformBufferRange;
1194fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxStorageBufferRange;
119504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
119704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferImageGranularity;
11985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                sparseAddressSpaceSize;
119904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxBoundDescriptorSets;
120004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSamplers;
120104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorUniformBuffers;
120204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageBuffers;
120304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSampledImages;
120404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageImages;
120504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
120604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
12075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
120804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
12095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
121004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
121404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
12173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxTessellationGenerationLevel;
1218ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1219ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1220ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1221ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1222ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1223ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1224ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
122504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1231fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
12323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxFragmentDualSrcAttachments;
123304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
1249dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    size_t                                      minMemoryMapAlignment;
1250dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minTexelBufferOffsetAlignment;
1251dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minUniformBufferOffsetAlignment;
1252dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minStorageBufferOffsetAlignment;
1253fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
125404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1255fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
125604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferColorSamples;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferDepthSamples;
126504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferStencilSamples;
126604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
126704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageColorSamples;
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageDepthSamples;
1269c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    uint32_t                                    maxSampledImageStencilSamples;
127004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageIntegerSamples;
127104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageImageSamples;
127204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
1273a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       timestampPeriod;
127404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
127504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
127604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1277fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
127804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
127904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
128104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
128203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBool32                                    strictLines;
128365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyOffsetAlignment;
128465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyRowPitchAlignment;
128504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
128604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
128704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
12885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
1289b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32                                    residencyStandard2DMultisampleBlockShape;
12905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
129604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
129704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
129865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    vendorID;
129965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    deviceID;
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
130165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
130265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_SIZE];
13035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
13045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
130604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
130904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1310acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
131165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkExtent3D                                  minImageTransferGranularity;
13125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
131304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
131704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
132304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
132904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
13325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1334a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceQueueCreateFlags                    flags;
133504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
133603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queuePriorityCount;
1337fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
133804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
133904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1343a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceCreateFlags                         flags;
1344ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
134504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
134603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
134704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
134803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
134904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
135104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
135204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
135465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
135965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME_SIZE];
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
13613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    implementationVersion;
136265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        description[VK_MAX_DESCRIPTION_SIZE];
136304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
136404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkStructureType                             sType;
136703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const void*                                 pNext;
136803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    waitSemaphoreCount;
1369a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
137003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount;
13713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers;
137203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    signalSemaphoreCount;
1373a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1374a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1375a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
1376a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef struct {
137704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
137804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
137904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
13813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
13863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1398a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
139904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1404b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSparseImageFormatProperties               formatProperties;
140565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    imageMipTailStartLod;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1412b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                resourceOffset;
1413b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
14143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
141604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1417a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1418a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1419a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1420a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBuffer                                    buffer;
1421a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1422a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1424a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1425a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1426a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1427a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
143004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1432a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
143504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
14473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1450a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1451a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1452a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1453a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1454a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1455a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBind*              pBinds;
145604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1461a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1462a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1463a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1464a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1465a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1467a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1468a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkStructureType                             sType;
1475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const void*                                 pNext;
147604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
147704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
147804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1494a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkQueryPoolCreateFlags                      flags;
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
149665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entryCount;
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
149904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1503a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferCreateFlags                         flags;
150404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
150504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
150703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1514a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferViewCreateFlags                     flags;
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1524a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageCreateFlags                          flags;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1529a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
153403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
15365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          r;
154865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          g;
154965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          b;
155065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          a;
155165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
155204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
15545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
155504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
15563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    levelCount;
15575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
15583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
155904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1564a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageViewCreateFlags                      flags;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
156865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentMapping                          components;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1575a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderModuleCreateFlags                   flags;
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
1577a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    const uint32_t*                             pCode;
157804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1583a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderCreateFlags                         flags;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              module;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName;
1586a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderCreateInfo;
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1592a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCacheCreateFlags                  flags;
1593b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      initialDataSize;
1594b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const void*                                 pInitialData;
159504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
159604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
159865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    constantID;
159904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
1600b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      size;
160104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
160204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
160404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
1605b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSpecializationMapEntry*             pMapEntries;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
160704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
160804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
160904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
161004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
161104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1613a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateFlags            flags;
161404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader;
161504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
161604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
161704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
161804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
1620b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    stride;
162165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkVertexInputRate                           inputRate;
162204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
162304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
162404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
162504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1628b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    offset;
162904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
163004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
163104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1634a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
163503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
163703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
163904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1644a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineInputAssemblyStateCreateFlags     flags;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1652a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineTesselationStateCreateFlags       flags;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
165404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
165504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
165604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       x;
165865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       y;
16595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
168104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1683a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineViewportStateCreateFlags          flags;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
169204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
16933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineRasterizationStateCreateFlags     flags;
1694ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
169504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
169665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkPolygonMode                               polygonMode;
1697c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VkCullModeFlags                             cullMode;
169804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
1700a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor;
17015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
1702a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor;
17035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
17043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
170504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
170604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1709a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineMultisampleStateCreateFlags       flags;
17103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    rasterizationSamples;
171104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
17135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1714acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1715acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
171704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
171804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
171965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 failOp;
172065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 passOp;
172165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 depthFailOp;
172265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCompareOp                                 compareOp;
172365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask;
172465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask;
172565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1731a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDepthStencilStateCreateFlags      flags;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
17355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
173704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
17395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
17405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
174104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
174565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcColorBlendFactor;
174665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstColorBlendFactor;
174765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   colorBlendOp;
174865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcAlphaBlendFactor;
174965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstAlphaBlendFactor;
175065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   alphaBlendOp;
175165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkColorComponentFlags                       colorWriteMask;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1757a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineColorBlendStateCreateFlags        flags;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
1762b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    float                                       blendConstants[4];
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
176404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
176504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
176604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1768a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDynamicStateCreateFlags           flags;
17695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
17745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1776a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCreateFlags                       flags;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
17833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
179304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
1799a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
180004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
180104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
180304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
180504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
180703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset;
180803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size;
180904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
181004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
181204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
181304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1814a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineLayoutCreateFlags                 flags;
181503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
181604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
181704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
181804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
181904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
182204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
182304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1824a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSamplerCreateFlags                        flags;
182523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    magFilter;
182623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    minFilter;
182723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerMipmapMode                         mipmapMode;
182823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeU;
182923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeV;
183023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeW;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
18385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1851a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDescriptorSetLayoutCreateFlags            flags;
185203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindingCount;
185303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkDescriptorSetLayoutBinding*         pBindings;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
185504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
185803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
185965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
186004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
186104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1864fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
18655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
186665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    poolSizeCount;
186765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    const VkDescriptorPoolSize*                 pPoolSizes;
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1871fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1872fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1873fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
187403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
1875fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
18763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
1877fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
1878fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef struct {
1879a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1880a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1881a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1882a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1883a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
1884a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef struct {
18855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
189004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
18933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
18943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
18953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
189603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
189704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1898fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1899fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1900fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
19093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
19103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
19113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
191203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
191404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFramebufferCreateFlags                    flags;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
19215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1928a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkAttachmentDescriptionFlags                flags;
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
194304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
1946a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
194703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    inputAttachmentCount;
19485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
194903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    colorAttachmentCount;
19505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
19515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
1952c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    const VkAttachmentReference*                pDepthStencilAttachment;
195303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    preserveAttachmentCount;
19545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
195504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
195604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
195804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
19593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstSubpass;
196004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
19613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
1964dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
196604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1970a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkRenderPassCreateFlags                     flags;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
197604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
197704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolCreateFlags                    flags;
1983a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex;
19843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
198504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
198704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool                               commandPool;
19903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferLevel                        level;
199103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bufferCount;
19923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
199304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
199404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
199504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
199604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferUsageFlags                   flags;
199804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
200004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
20013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
200204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
200304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
200404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
20053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset;
2006b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
200704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
200804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
200904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
201065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageAspectFlags                          aspectMask;
20115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
2012a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
201465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
20155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
201765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
201804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
201965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
202104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
202565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
202704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
202865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
20303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkExtent3D                                  dstExtent;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
203765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    imageSubresource;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef union {
20435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
20445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
20455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
204604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
204704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
20505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
20515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
20525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2053ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef union {
2054ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
2055ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
2056ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2057ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
2058ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef struct {
2059ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2060ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2061ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2062ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2063ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
2065a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2066a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
2068a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
206904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
207165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
207365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
208204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
208304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
208704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
209004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
209104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
209204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
209304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
20943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
209704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
209904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
210004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
21043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
210504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
210604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
211104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
211304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
211404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
212004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
212504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
212604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
21293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
213004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
213304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
213404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
213704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
213904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21423fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
21433fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
214404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2145606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2146606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2147606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2148606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
214903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2150606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
215104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
215204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
21533fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
21543fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
215503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
215803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2159606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2160b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
216104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
216204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
21633fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
21643fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
21653fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
21663fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
21673fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
21683fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2169606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
21703fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
21713fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2172606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2173606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
217403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
217503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2176a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
21773fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
21783fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
217904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
218004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
218104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
21823fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
21833fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
21843fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
21853fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
218604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
218704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
218804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
21893fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
21903fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2191a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
21923fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
21933fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
21943fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
21953fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
21963fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
21973fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2198606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
21993fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
22003fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
22013fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
22023fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
22033fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShader* pShader);
22043fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader, const VkAllocationCallbacks* pAllocator);
22053fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
22063fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2207a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
22083fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
22093fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22103fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22113fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
22123fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
22133fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
22143fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
22153fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
22163fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
22173fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
22183fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
22193fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2220fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
22213fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
222203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2223b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
22243fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
22253fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
22263fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
22273fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2228606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
22293fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
223065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
223165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
22323fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
223365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
22343fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
22353fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
22363fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
22373fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
22383fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
22393fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
22403fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
22413fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
22423fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
22433fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
224465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
224565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
224665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
22473fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
22483fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
22493fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
22503fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
22513fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
22523fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
22533fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
22543fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
22553fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
22563fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
22573fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
22583fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
22593fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
22603fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
22613fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
22623fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
22633fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22643fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22653fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
22663fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
22673fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
22683fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
22693fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
22703fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
227165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags);
227265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry);
22733fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
227465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry);
22753fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
22763fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
227765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
227865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
22793fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
22803fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
228404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
22853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
228704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
228903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
22903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
229204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2297606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
229804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2301606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2306606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceImageFormatProperties(
230704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
23125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
231404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2315606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
231604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2319606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
23225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2324606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
23393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
234104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
234303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
23443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
234504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
234803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
235403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
235803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
236303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2366606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2374a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2375b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
238304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23843fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateMemory(
238504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
23873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
23883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
238904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
23933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
239404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
240404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2417606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
24253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
24313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2434606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2439606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2444606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2450606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples,
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
245703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2460a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkQueueBindSparse(
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
246203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2463a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2464a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
24693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
24753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
24963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
25023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
25073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
25133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
25303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
25363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2543a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2545a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
25513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
25573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
25623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
25683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
25733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
25793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2581606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
25903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
25963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
26013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
26073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShader(
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderCreateInfo*                   pCreateInfo,
26123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader*                                   pShader);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShader(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShader                                    shader,
26183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
26233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
26293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2634a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
264603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
26483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
265403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
26563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
26623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
26673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
26733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
26783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
26843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
26893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
26953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
27003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
27063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2710fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2711fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27133fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateDescriptorSets(
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
27165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
272103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
272304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2726b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2728b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
27343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
273604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
27403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
27453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
274704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
27513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2753606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
275804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
27613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
27623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27743fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateCommandBuffers(
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
27773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2779fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hallvoid VKAPI vkFreeCommandBuffers(
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
278203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
27833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
27863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
27903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
27933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
27973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
28023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
28045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
28055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
28073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
28095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
28105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
28123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
28145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
28163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2817a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
28185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2819a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
28223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2823b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
28263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
28285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
28313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
283365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
28345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
28363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
283865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
28395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
28413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
284365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
28463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
285003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
28563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
28623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
28693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
28715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
28735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
28763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
28843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
288703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
28913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
289403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
28983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
29043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
290504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
29093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
29163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
29253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
293223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
29353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
29433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
29513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
29583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
2961b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
29653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
29733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
29765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2980ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
29813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2982ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2983ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2985a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
29883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
30023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
300404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
300504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
30073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
301004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
30123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
30163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3019dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
30203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
30243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
302665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry,
302704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
302804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
302904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
30303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
30353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
303904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
30413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30426f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3043a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
304465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
304504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
30473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
304904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
30513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3053a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
305504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
30573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
306003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
306103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
306204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
306304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
306404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
30653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
306604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
306765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
30703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
307165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
307204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
307304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
30743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
307504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
307604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
30773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    commandBuffersCount,
30793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
308004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
308104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
30821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_surface 1
30833fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
30841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3085a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_SURFACE_REVISION       20
30861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
30871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
3088a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_ERROR_SURFACE_LOST_KHR         ((VkResult)(int)0xc0000400)
30891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30911356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_KHR = 0,
30931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
30941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
30951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_KHR = 3,
30961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_KHR = 4,
30971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_KHR = 5,
30981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_KHR = 6,
30991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_KHR = 7,
31001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_KHR = 8,
31011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_BEGIN_RANGE = VK_SURFACE_TRANSFORM_NONE_KHR,
31021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_END_RANGE = VK_SURFACE_TRANSFORM_INHERIT_KHR,
31033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SURFACE_TRANSFORM_RANGE_SIZE = (VK_SURFACE_TRANSFORM_INHERIT_KHR - VK_SURFACE_TRANSFORM_NONE_KHR + 1),
31041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
31051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformKHR;
31061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31071356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
31091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
31121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
31131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
31141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31151356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
31171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
31181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
311903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
31201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
312103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
31223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
31231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
31241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
31251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31271356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
31291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
31301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
31311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
31321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
31331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
31341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
31351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
31371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
31381356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3140a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
3141a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3142a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3143a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3144a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3145a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3146a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3147a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
31481356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
31501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageCount;
31511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  currentExtent;
31521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minImageExtent;
31531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxImageExtent;
31541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
31551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       currentTransform;
3156a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagsKHR                    supportedCompositeAlpha;
31571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageArraySize;
31581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           supportedUsageFlags;
3159b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
31601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31611356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    format;
31631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             colorSpace;
31641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
31651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3166b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3167b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkDestroySurfaceKHR)(VkInstance  instance, VkSurfaceKHR  surface);
3168b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3169b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3170b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3171b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3172b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3173b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#ifdef VK_PROTOTYPES
3174b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hallvoid VKAPI vkDestroySurfaceKHR(
3175b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkInstance                                   instance,
3176b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                 surface);
3177b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3178b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
3179b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3180b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3181b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3182b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3183b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3184b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3185b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3186b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3187b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3188b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3189b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceFormatsKHR(
3190b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3191b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3192b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3193b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3194b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3195b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfacePresentModesKHR(
3196b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3197b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3198b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3199b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3200b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3201b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3202b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define vk_ext_khr_swapchain 1
32033fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3204b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3205b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_REVISION     62
3206b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
3207b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
3208b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
3209b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
32103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_IMAGE_LAYOUT_PRESENT_SRC_KHR   ((VkImageLayout)(int)0xc0000802)
3211b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
3212b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
3213b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
32141356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface;
32181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
32191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    imageFormat;
32201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             imageColorSpace;
32211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageExtent;
32221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           imageUsageFlags;
32231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       preTransform;
3224a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagBitsKHR                 compositeAlpha;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    imageArraySize;
32261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSharingMode                               sharingMode;
322703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
32281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             pQueueFamilyIndices;
32291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR                            presentMode;
32301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                              oldSwapchain;
32311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    clipped;
32321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
32331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32341356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
3237b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    waitSemaphoreCount;
3238b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
32391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    swapchainCount;
324003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkSwapchainKHR*                       pSwapchains;
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             imageIndices;
32421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
32431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32451356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSwapchainKHR)(VkDevice  device, const VkSwapchainCreateInfoKHR*  pCreateInfo, VkSwapchainKHR*  pSwapchain);
32461356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef void (VKAPI *PFN_vkDestroySwapchainKHR)(VkDevice  device, VkSwapchainKHR  swapchain);
324703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint32_t*  pSwapchainImageCount, VkImage*  pSwapchainImages);
32481356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkAcquireNextImageKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint64_t  timeout, VkSemaphore  semaphore, VkFence  fence, uint32_t*  pImageIndex);
32491356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkQueuePresentKHR)(VkQueue  queue, VkPresentInfoKHR*  pPresentInfo);
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateSwapchainKHR(
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*              pCreateInfo,
32551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR*                              pSwapchain);
32561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hallvoid VKAPI vkDestroySwapchainKHR(
32581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain);
32601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32611356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSwapchainImagesKHR(
32621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
326403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                    pSwapchainImageCount,
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImage*                                     pSwapchainImages);
32661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32671356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkAcquireNextImageKHR(
32681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
32701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint64_t                                     timeout,
32711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSemaphore                                  semaphore,
32721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFence                                      fence,
32731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pImageIndex);
32741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkQueuePresentKHR(
32761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkQueue                                      queue,
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentInfoKHR*                            pPresentInfo);
32781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display 1
32813fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
32823fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
32831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3284a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_DISPLAY_REVISION       17
32851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
32861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
32871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
3288a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
32891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32911356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
32921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
32931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
32951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
32961356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
32971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32981356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display;
330003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const char*                                 displayName;
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
33021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalResolution;
33031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
33041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    planeReorderPossible;
3305a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistentContent;
33061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
33071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33081356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  visibleRegion;
3310a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    refreshRate;
3311a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
33121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33131356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
3315a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
33171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
33201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
3321a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
33231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33241356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
33261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minSrcPosition;
33271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxSrcPosition;
33281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minSrcExtent;
33291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxSrcExtent;
33301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minDstPosition;
33311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxDstPosition;
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minDstExtent;
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxDstExtent;
3334a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
33351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33361356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
3337b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDisplayKHR                                currentDisplay;
3338b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    currentStackIndex;
3339b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3340b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3341b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef struct {
33421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
33431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
33441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
33451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex;
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeStackIndex;
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       transform;
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    float                                       globalAlpha;
33491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 alphaMode;
33501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageSize;
3351a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
33521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
335403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3355a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
3356a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayKHR* pProperties);
335703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
33581356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
3359a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3360a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkSurfaceKHR* pSurface);
33611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33631356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
336503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
33661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
33671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3368a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3369a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3370a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3371a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3372a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3373a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneSupportedDisplaysKHR(
3374a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3375a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3376a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayKHR*                               pProperties);
3377a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
33781356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetDisplayModePropertiesKHR(
33791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
338103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
338203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
33831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33841356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateDisplayModeKHR(
33851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
33871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
33881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
33891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3390a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneCapabilitiesKHR(
33911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
3392a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeCreateInfoKHR                  mode,
33931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3394a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3395a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3396a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateDisplayPlaneSurfaceKHR(
3397a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3398a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
3399a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
34001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display_swapchain 1
3403a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 6
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
34051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
34061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
34081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
34091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
34111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
34121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
34131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplaySwapchainCreateInfoKHR;
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34161356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
34171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
34181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
34191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    srcRect;
34201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    dstRect;
3421a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistent;
34221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
34231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3426a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3427a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define vk_ext_khr_xlib_surface 1
34281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
34291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3430a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_REVISION  3
3431a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
3432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NAME "vk_ext_khr_xlib_surface"
34331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3434a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
343565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
34361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3438a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateXlibSurfaceKHR(
34391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Display*                                    dpy,
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      window,
34421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3443a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3444a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXlibPresentationSupportKHR(
3445a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3446a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3447a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
344865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
34491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3450a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
34511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3453a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_xcb_surface 1
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
34551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_REVISION   3
34571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
34581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NAME "VK_EXT_KHR_xcb_surface"
34591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3460a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
3461a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
34621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34641356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateXcbSurfaceKHR(
34651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_connection_t*                           connection,
34671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                window,
34681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXcbPresentationSupportKHR(
3471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
34751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
34771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3479a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_wayland_surface 1
34801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
34811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3482a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 2
34831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
34841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_EXT_KHR_wayland_surface"
34851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34861356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
3487a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
34881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWaylandSurfaceKHR(
34911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_display*                          display,
34931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_surface*                          surface,
34941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3495a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3496a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3498a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3499a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
35001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3504a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_mir_surface 1
35051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
35061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3507a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_REVISION   2
35081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
35091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_mir_surface"
35101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35111356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
3512a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
35131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35151356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateMirSurfaceKHR(
35161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirConnection*                              connection,
35181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirSurface*                                 mirSurface,
35191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3520a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3521a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceMirPresentationSupportKHR(
3522a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3523a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3524a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
35251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3529a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_android_surface 1
35301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
35311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_REVISION 1
35331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_EXT_KHR_android_surface"
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
35371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35381356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, VkSurfaceKHR* pSurface);
35391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35411356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateAndroidSurfaceKHR(
35421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    ANativeWindow*                              window,
35441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
35451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3549a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_win32_surface 1
35501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
35511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_REVISION 2
35531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
35541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_EXT_KHR_win32_surface"
35551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35561356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
3557a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
35581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35601356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWin32SurfaceKHR(
35611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HINSTANCE                                   hinstance,
35631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HWND                                        hwnd,
35641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3565a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3566a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWin32PresentationSupportKHR(
3567a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3568a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
35691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
35711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
357204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
357304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
357404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
357504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
357604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3577