vulkan.h revision c7467b74d3411eb7b9fde67368fad1052eb51c8d
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
44c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 194, 0)
455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
47a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
48a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall
4904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_DEFINE_HANDLE(obj) typedef struct obj##_T* obj;
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__)
55a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall        #define VK_DEFINE_NONDISP_HANDLE(obj) typedef struct obj##_T *obj;
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#else
57a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall        #define VK_DEFINE_NONDISP_HANDLE(obj) typedef uint64_t obj;
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)
71a366a5186ea941c5653cbdb8df18dc19318912b6Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSemaphore)
7204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkCmdBuffer)
7304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkFence)
7404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDeviceMemory)
7504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkBuffer)
7604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkImage)
7704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkEvent)
7804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkQueryPool)
7904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkBufferView)
8004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkImageView)
8104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkShaderModule)
8204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkShader)
8304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipelineCache)
8404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipelineLayout)
8504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkRenderPass)
8604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipeline)
8704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorSetLayout)
8804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkSampler)
8904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorPool)
9004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorSet)
9104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkFramebuffer)
9204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkCmdPool)
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)
1035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME       256
1045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_UUID_LENGTH                    16
1055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
1075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_EXTENSION_NAME             256
1085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_DESCRIPTION                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,
1295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_RESULT_NUM = (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,
158c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTER_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,
174c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 40,
175c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 41,
176c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_CMD_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,
185c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_NUM = (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 {
19003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_FUNCTION = 0,
19103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_OBJECT = 1,
19203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_CACHE = 2,
19303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_DEVICE = 3,
19403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_INSTANCE = 4,
19503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_SCOPE_FUNCTION,
19603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_END_RANGE = VK_SYSTEM_ALLOC_SCOPE_INSTANCE,
19703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_NUM = (VK_SYSTEM_ALLOC_SCOPE_INSTANCE - VK_SYSTEM_ALLOC_SCOPE_FUNCTION + 1),
19803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_SYSTEM_ALLOC_SCOPE_MAX_ENUM = 0x7FFFFFFF
19903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall} VkSystemAllocScope;
20003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
20103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef enum {
20203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_INTERNAL_ALLOC_TYPE_EXECUTABLE = 0,
20303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_INTERNAL_ALLOC_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOC_TYPE_EXECUTABLE,
20403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_INTERNAL_ALLOC_TYPE_END_RANGE = VK_INTERNAL_ALLOC_TYPE_EXECUTABLE,
20503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_INTERNAL_ALLOC_TYPE_NUM = (VK_INTERNAL_ALLOC_TYPE_EXECUTABLE - VK_INTERNAL_ALLOC_TYPE_EXECUTABLE + 1),
20603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_INTERNAL_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
20703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall} VkInternalAllocType;
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,
38604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_NUM = (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,
39604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_NUM = (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,
405c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_NUM = (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,
41704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_NUM = (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,
427a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_NUM = (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,
43604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_NUM = (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,
4475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL = 6,
4485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_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,
4525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_NUM = (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,
46604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_NUM = (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 {
471c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_IDENTITY = 0,
472c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_ZERO = 1,
473c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_ONE = 2,
474c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_R = 3,
475c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_G = 4,
476c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_B = 5,
477c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_A = 6,
478c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_IDENTITY,
47904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
480c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_IDENTITY + 1),
48104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
48204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelSwizzle;
48304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
48404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
48504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_VERTEX = 0,
48604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_INSTANCE = 1,
48704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_STEP_RATE_VERTEX,
48804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_END_RANGE = VK_VERTEX_INPUT_STEP_RATE_INSTANCE,
48904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_NUM = (VK_VERTEX_INPUT_STEP_RATE_INSTANCE - VK_VERTEX_INPUT_STEP_RATE_VERTEX + 1),
49004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_MAX_ENUM = 0x7FFFFFFF
49104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputStepRate;
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,
50004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJ = 6,
50104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJ = 7,
50204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_ADJ = 8,
50304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJ = 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,
50704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_NUM = (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 {
512c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_FILL_MODE_SOLID = 0,
51304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_WIREFRAME = 1,
514c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_FILL_MODE_POINTS = 2,
515c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_SOLID,
516c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_FILL_MODE_END_RANGE = VK_FILL_MODE_POINTS,
517c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_FILL_MODE_NUM = (VK_FILL_MODE_POINTS - VK_FILL_MODE_SOLID + 1),
51804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
51904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFillMode;
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
52104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
52204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CCW = 0,
52304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CW = 1,
52404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
52504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CW,
52604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_NUM = (VK_FRONT_FACE_CW - VK_FRONT_FACE_CCW + 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,
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS_EQUAL = 3,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
53704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER_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,
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NUM = (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,
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_CLAMP = 3,
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_CLAMP = 4,
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_WRAP = 6,
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_WRAP = 7,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
55504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DEC_WRAP,
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_NUM = (VK_STENCIL_OP_DEC_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,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOOP = 5,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_EQUIV = 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,
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NUM = (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 {
58404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ZERO = 0,
58504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE = 1,
58604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_COLOR = 2,
58704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_COLOR = 3,
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_COLOR = 4,
58904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_COLOR = 5,
59004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA = 6,
59104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_ALPHA = 7,
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_ALPHA = 8,
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_ALPHA = 9,
59404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_COLOR = 10,
59504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_COLOR = 11,
59604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_ALPHA = 12,
59704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_ALPHA = 13,
59804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA_SATURATE = 14,
59904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_COLOR = 15,
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_COLOR = 16,
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_ALPHA = 17,
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_ALPHA = 18,
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_BEGIN_RANGE = VK_BLEND_ZERO,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_END_RANGE = VK_BLEND_ONE_MINUS_SRC1_ALPHA,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_NUM = (VK_BLEND_ONE_MINUS_SRC1_ALPHA - VK_BLEND_ZERO + 1),
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_MAX_ENUM = 0x7FFFFFFF
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlend;
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,
61704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_NUM = (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,
6335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_NUM = (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,
64223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NUM = (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,
65223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NUM = (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,
664c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_NUM = (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,
67704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_NUM = (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,
69504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_NUM = (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,
70504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_NUM = (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,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_NUM = (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,
723c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_NUM = (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 {
72804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_PRIMARY = 0,
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_SECONDARY = 1,
73004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_BEGIN_RANGE = VK_CMD_BUFFER_LEVEL_PRIMARY,
73104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_END_RANGE = VK_CMD_BUFFER_LEVEL_SECONDARY,
73204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_NUM = (VK_CMD_BUFFER_LEVEL_SECONDARY - VK_CMD_BUFFER_LEVEL_PRIMARY + 1),
73304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
73404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferLevel;
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,
74104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_NUM = (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 {
74604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_INLINE = 0,
74704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1,
74804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
74904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS,
75004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_NUM = (VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassContents;
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,
7675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_SOURCE_BIT = 0x00000400,
7685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_DESTINATION_BIT = 0x00000800,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
77304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
77404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_DESTINATION_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,
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_DMA_BIT = 0x00000004,
808b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
81304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_DEVICE_ONLY = 0,
81404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000001,
81504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT = 0x00000002,
81604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT = 0x00000004,
817acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000008,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_MEMORY_HEAP_HOST_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 Hall
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
844a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VK_SPARSE_MEMORY_BIND_REPLICATE_BLOCK_BIT = 0x00000001,
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindFlagBits;
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
854a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
85504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
857ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
858ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
859ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
860ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
861ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
862ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
863ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
864ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
865ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
866ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
867ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
86804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
87204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
87704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
87904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
881a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
882a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
883a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
884a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
885a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
886a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
887a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
88804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
88904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
89204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
89304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
89704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
899a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
9005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
901a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkImageAspectFlags;
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderCreateFlags;
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
906a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
907a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
908a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
909a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
910a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
911a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
912c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
913a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
914a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
915a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
916a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
917a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
919a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
920a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
921a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkPipelineCreateFlagBits;
922a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineCreateFlags;
923a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
924a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
925a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
926a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineTesselationStateCreateFlags;
927a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
928a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineRasterStateCreateFlags;
929c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
930c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef enum {
931c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
932c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
933c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
934c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x3,
935c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
936c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
937a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
938a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
939a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
940a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
941a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
94204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_R_BIT = 0x00000001,
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_G_BIT = 0x00000002,
94404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_B_BIT = 0x00000004,
94504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_A_BIT = 0x00000008,
94604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelFlagBits;
94704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkChannelFlags;
948a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
949a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
95004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
951a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
952a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
95304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
95404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
955fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
956fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
957fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
958fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
959a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
960a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
961fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
962fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef enum {
9635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
96904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
97004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
973ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
974ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
97804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
97904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
98004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
98104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
9845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
98704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
98804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
98904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryOutputFlagBits;
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryOutputFlags;
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
99804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
100204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
100504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
100604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
100704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
100804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryInputFlagBits;
100904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryInputFlags;
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
101104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1012dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1013dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1014dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1015dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
1016dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef enum {
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateFlagBits;
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolCreateFlags;
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolResetFlagBits;
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolResetFlags;
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1028a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1029a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1030a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1031a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkCmdBufferUsageFlagBits;
1032a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef VkFlags VkCmdBufferUsageFlags;
103304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
103604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferResetFlagBits;
103704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdBufferResetFlags;
103804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1043c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x3,
10445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
104804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
104904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
105004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
105104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
105204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void* (VKAPI *PFN_vkAllocFunction)(
105303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
105403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             size,
105503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             alignment,
105603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSystemAllocScope allocScope);
105703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
105803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void* (VKAPI *PFN_vkReallocFunction)(
105903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
106003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pOriginal,
106103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             size,
106203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t             alignment,
106303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSystemAllocScope allocScope);
106404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
106604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
106704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pMem);
106804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkInternalAllocNotification)(
107003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
107103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t                           size,
107203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInternalAllocType              allocType,
107303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSystemAllocScope               allocScope);
107403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
107503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkInternalFreeNotification)(
107603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*              pUserData,
107703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    size_t                           size,
107803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInternalAllocType              allocType,
107903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSystemAllocScope               allocScope);
108003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
10815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkVoidFunction)(void);
10825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
10845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pAppName;
10875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    appVersion;
10885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
109304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1096a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstanceCreateFlags                       flags;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkApplicationInfo*                    pAppInfo;
109803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
110003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
110104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
110404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
110503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*                                       pUserData;
110603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkAllocFunction                         pfnAlloc;
110703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkReallocFunction                       pfnRealloc;
110803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkFreeFunction                          pfnFree;
110903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkInternalAllocNotification             pfnInternalAlloc;
111003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkInternalFreeNotification              pfnInternalFree;
111103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall} VkAllocCallbacks;
111203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
111303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef struct {
111404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
111604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
111704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
111804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
111904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
112004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
112104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    dualSourceBlend;
112204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1124ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
112704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
112804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
1130fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    alphaToOne;
1131fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    multiViewport;
1132fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    samplerAnisotropy;
113304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
113504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
11365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    occlusionQueryNonConservative;
113704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
1138dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    vertexPipelineStoresAndAtomics;
1139dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    fragmentStoresAndAtomics;
1140dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    shaderTessellationAndGeometryPointSize;
11415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
114204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
115004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
115304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
115404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceMinLOD;
11555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
115604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
116104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
116204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
116304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
116404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
116604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
116704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
116804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
117004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
117104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
117204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
11735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
11795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent3D                                  maxExtent;
11805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxMipLevels;
1181a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    maxArrayLayers;
11825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
11835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                maxResourceSize;
118404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension1D;
118804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension2D;
118904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension3D;
119004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimensionCube;
119104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageArrayLayers;
11925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
1193b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    maxTexelBufferElements;
1194fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxUniformBufferRange;
1195fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxStorageBufferRange;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
119704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
119804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferImageGranularity;
11995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                sparseAddressSpaceSize;
120004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxBoundDescriptorSets;
120104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSamplers;
120204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorUniformBuffers;
120304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageBuffers;
120404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSampledImages;
120504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageImages;
120604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
12085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
120904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
12105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
1218ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationGenLevel;
1219ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1220ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1221ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1222ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1223ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1224ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1225ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1232fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
1233fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentDualSourceAttachments;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
1250dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    size_t                                      minMemoryMapAlignment;
1251dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minTexelBufferOffsetAlignment;
1252dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minUniformBufferOffsetAlignment;
1253dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minStorageBufferOffsetAlignment;
1254fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
125504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1256fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferColorSamples;
126504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferDepthSamples;
126604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferStencilSamples;
126704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageColorSamples;
126904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageDepthSamples;
1270c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    uint32_t                                    maxSampledImageStencilSamples;
127104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageIntegerSamples;
127204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageImageSamples;
127304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
1274a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       timestampPeriod;
127504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
127604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
127704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1278fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
127904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
128104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
128303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBool32                                    strictLines;
1284dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                recommendedBufferCopyOffsetAlignment;
1285dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                recommendedBufferCopyRowPitchAlignment;
128604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
128704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
128804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
12895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
1290b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32                                    residencyStandard2DMultisampleBlockShape;
12915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResident;
12945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
129804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
129904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vendorId;
130104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    deviceId;
130204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_LENGTH];
13055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
13065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
130804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1312acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
13135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
131404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
131704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
131904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
132304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
132904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
13335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1335a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceQueueCreateFlags                    flags;
133604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
133703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queuePriorityCount;
1338fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
133904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
134304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1344a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceCreateFlags                         flags;
1345ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
134604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
134703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
134804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
134903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
135104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
135204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
135304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        extName[VK_MAX_EXTENSION_NAME];
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
135804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME];
136104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
136204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    implVersion;
136304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        description[VK_MAX_DESCRIPTION];
136404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
136604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkStructureType                             sType;
136803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const void*                                 pNext;
136903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    waitSemaphoreCount;
1370a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
137103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount;
1372a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkCmdBuffer*                          pCommandBuffers;
137303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    signalSemaphoreCount;
1374a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1375a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1376a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
1377a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef struct {
137804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
137904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryAllocInfo;
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
138604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1399a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1405b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSparseImageFormatProperties               formatProperties;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    imageMipTailStartLOD;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1413b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                resourceOffset;
1414b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
1416b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                memOffset;
141704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1418a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1419a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1420a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1421a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBuffer                                    buffer;
1422a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1424a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1425a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1426a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1427a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1430a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
143104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1433a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
143704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
1449b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                memOffset;
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1451a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1452a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1453a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1454a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1455a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBind*              pBinds;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1462a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1463a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1464a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1465a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1467a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1468a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
1474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef struct {
1475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkStructureType                             sType;
1476a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const void*                                 pNext;
147704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
147804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1495a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkQueryPoolCreateFlags                      flags;
149604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slots;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
149904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
150304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1504a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferCreateFlags                         flags;
150504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
150803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1515a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferViewCreateFlags                     flags;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1525a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageCreateFlags                          flags;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1530a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
153404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
153503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
15375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            r;
154904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            g;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            b;
155104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            a;
155204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelMapping;
155304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
15555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
155604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
1557a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLevels;
15585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
1559a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1565a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageViewCreateFlags                      flags;
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelMapping                            channels;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1576a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderModuleCreateFlags                   flags;
157704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
1578a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    const uint32_t*                             pCode;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
158004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1584a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderCreateFlags                         flags;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              module;
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName;
1587a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderCreateInfo;
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCacheCreateFlags                  flags;
1594b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      initialDataSize;
1595b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const void*                                 pInitialData;
159604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      maxSize;
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    constantId;
160104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
1602b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      size;
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
160404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
1607b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSpecializationMapEntry*             pMapEntries;
160804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
160904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
161004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
161104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
161304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
161404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1615a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateFlags            flags;
161604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader;
161704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
161804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
162004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
162104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
1622b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    stride;
162304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkVertexInputStepRate                       stepRate;
162404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
162504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
162904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1630b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    offset;
163104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
163304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
163404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1636a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
163703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
163903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
164404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1646a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineInputAssemblyStateCreateFlags     flags;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
165004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1654a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineTesselationStateCreateFlags       flags;
165504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
165604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
165704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
165804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
16595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originX;
16605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originY;
16615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
168304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1685a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineViewportStateCreateFlags          flags;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
169204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1695a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineRasterStateCreateFlags            flags;
1696ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
169704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
169804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFillMode                                  fillMode;
1699c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VkCullModeFlags                             cullMode;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
17015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
1702a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor;
17035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
1704a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor;
17055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
170604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineRasterStateCreateInfo;
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
171004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1711a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineMultisampleStateCreateFlags       flags;
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rasterSamples;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
171404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
17155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1716acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1717acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
171804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
171904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
172004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
172104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilFailOp;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilPassOp;
172304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilDepthFailOp;
172404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 stencilCompareOp;
17255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask;
17265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask;
17275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1733a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDepthStencilStateCreateFlags      flags;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
17375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
17415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
17425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
174604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
174704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendColor;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendColor;
174904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpColor;
175004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendAlpha;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendAlpha;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpAlpha;
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelFlags                              channelWriteMask;
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1759a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineColorBlendStateCreateFlags        flags;
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
1764b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    float                                       blendConstants[4];
176504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
176604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
176704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
176804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1770a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDynamicStateCreateFlags           flags;
17715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
17765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1778a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCreateFlags                       flags;
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
178304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineRasterStateCreateInfo*      pRasterState;
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
179304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
180004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
1801a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
180304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
180504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
180704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
180804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
180903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset;
181003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
181204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
181304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
181504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1816a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineLayoutCreateFlags                 flags;
181703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
181804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
181904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
182204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
182304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
182404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
182504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1826a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSamplerCreateFlags                        flags;
182723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    magFilter;
182823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    minFilter;
182923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerMipmapMode                         mipmapMode;
183023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeU;
183123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeV;
183223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeW;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
18405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1853a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDescriptorSetLayoutCreateFlags            flags;
185403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindingCount;
185503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkDescriptorSetLayoutBinding*         pBindings;
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
186003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
186104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorTypeCount;
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1866fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
18675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
186803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    typeCount;
186903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkDescriptorTypeCount*                pTypeCounts;
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
187104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
187204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1873fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1874fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1875fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
187603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
1877fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
1878fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorSetAllocInfo;
1879fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
1880fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef struct {
1881a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1882a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1883a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1884a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1885a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
1886a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef struct {
18875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
189304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
189504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
189604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
189704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
189803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
189904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1900fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1901fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1902fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
190904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
191204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
191403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1920a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFramebufferCreateFlags                    flags;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
19235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1930a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkAttachmentDescriptionFlags                flags;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
194304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
194404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
194504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
1948a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
194903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    inputAttachmentCount;
19505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
195103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    colorAttachmentCount;
19525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
19535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
1954c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    const VkAttachmentReference*                pDepthStencilAttachment;
195503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    preserveAttachmentCount;
19565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
195804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
195904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
196004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
196104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destSubpass;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
1966dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags;
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
197004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1972a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkRenderPassCreateFlags                     flags;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
197604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
197704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
198204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
198404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolCreateFlags                        flags;
1985a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex;
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateInfo;
198704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
198904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
199004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
199104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool;
199204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferLevel                            level;
199303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bufferCount;
1994fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkCmdBufferAllocInfo;
199504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
199604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
199704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
199804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1999a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkCmdBufferUsageFlags                       flags;
200004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
20015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
200204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
200304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferBeginInfo;
200404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
200504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
200604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
200704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset;
2008b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
200904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
201004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
201104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
2012a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlags                          aspect;
20135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
2014a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
2015a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
20165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageSubresourceCopy;
20175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
20195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
20215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
202804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
202904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
20305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  destExtent;
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
20395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      imageSubresource;
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
204304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef union {
20455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
20465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
20475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
204804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
204904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
20525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
20535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
20545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2055ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef union {
2056ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
2057ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
2058ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2059ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
2060ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef struct {
2061ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2062ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2063ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2064ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2065ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
2067a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2068a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
2069a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
2070a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
207104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
20755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
208204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
208304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
208404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
208504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
208804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
209004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
209104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
209204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
209304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
209404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
209704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
209904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
210004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
210404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
210504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
210604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDispatchIndirectCmd;
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
211104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
211204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
211304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
211404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndexedIndirectCmd;
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
212004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndirectCmd;
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
212504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
212604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
213004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
213304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
213404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
213704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
213904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
214204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
214304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
214403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkInstance* pInstance);
214503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocCallbacks* pAllocator);
214604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2147606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2148606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2149606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2150606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
215103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2152606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
215304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
215404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
215503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDevice* pDevice);
215603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device, const VkAllocCallbacks* pAllocator);
215703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
216003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2161606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2162b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
216304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
216404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
216503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, const VkAllocCallbacks* pAllocator, VkDeviceMemory* pMem);
216603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem, const VkAllocCallbacks* pAllocator);
216704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
21685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
216904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
217004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
2171606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset);
217304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset);
2174606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2175606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
217603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
217703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2178a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
217903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFence* pFence);
218003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocCallbacks* pAllocator);
218104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
218204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
218304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
218403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSemaphore* pSemaphore);
218503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocCallbacks* pAllocator);
218603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkEvent* pEvent);
218703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocCallbacks* pAllocator);
218804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
218904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
219004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
219103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkQueryPool* pQueryPool);
219203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocCallbacks* pAllocator);
2193a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
219403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBuffer* pBuffer);
219503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocCallbacks* pAllocator);
219603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBufferView* pView);
219703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocCallbacks* pAllocator);
219803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImage* pImage);
219903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocCallbacks* pAllocator);
2200606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
220103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImageView* pView);
220203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocCallbacks* pAllocator);
220303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShaderModule* pShaderModule);
220403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocCallbacks* pAllocator);
220503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShader* pShader);
220603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader, const VkAllocCallbacks* pAllocator);
220703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
220803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocCallbacks* pAllocator);
2209a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
221004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
221103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines);
221203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines);
221303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocCallbacks* pAllocator);
221403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
221503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocCallbacks* pAllocator);
221603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSampler* pSampler);
221703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocCallbacks* pAllocator);
221803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
221903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocCallbacks* pAllocator);
222003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
222103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocCallbacks* pAllocator);
2222fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2223fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
222403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2225b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
222603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
222703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocCallbacks* pAllocator);
222803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkRenderPass* pRenderPass);
222903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocCallbacks* pAllocator);
2230606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
223103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkCmdPool* pCmdPool);
223203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool, const VkAllocCallbacks* pAllocator);
223304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
2234fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocCommandBuffers)(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
223503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t commandBufferCount, const VkCmdBuffer* pCommandBuffers);
223604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
223704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
223804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
223904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
22405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCmdBuffer cmdBuffer, uint32_t viewportCount, const VkViewport* pViewports);
22415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCmdBuffer cmdBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
22425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCmdBuffer cmdBuffer, float lineWidth);
2243a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCmdBuffer cmdBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2244b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCmdBuffer cmdBuffer, const float blendConstants[4]);
22455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCmdBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds);
22465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
22475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
22485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
224903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
225004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
225104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
22525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
22535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
225403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
225503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
225604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
225704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
225804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
225904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
226023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
226104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
226204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
226304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
2264b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize size, uint32_t data);
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2267a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
226804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
226904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
227004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
227104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCmdBuffer cmdBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
2272dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, VkDependencyFlags dependencyFlags, uint32_t memBarrierCount, const void* const* ppMemBarriers);
227304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
227404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
227504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
2276a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot);
2277a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkQueryResultFlags flags);
227803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
228004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
228404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
228504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
228703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
228904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
229103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
229203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
229804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2299606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2303606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
230704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2308606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceImageFormatProperties(
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
231204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
23145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
231504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
231604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2317606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2321606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
23245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2326606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
233904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
234103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
234204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
234304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
234503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
234603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
235003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
235603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
236003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
236104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
236503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2368606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2376a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2377b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
237804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
238304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
238504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocMemory(
238704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMemoryAllocInfo*                    pAllocInfo,
238903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory*                             pMem);
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
239403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDeviceMemory                              mem,
239503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
240404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
241204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2419606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2436606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2441606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2446606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2452606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples,
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
245903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2462a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkQueueBindSparse(
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
246403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2465a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
246904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
247103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
247703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
249803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
250403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
250903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
251503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
253004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
253203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
253803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2545a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2547a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
255303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
255903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
256403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
257003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
257503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
257604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
258103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2583606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
259203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
259803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
260303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
260903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShader(
261204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderCreateInfo*                   pCreateInfo,
261403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader*                                   pShader);
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShader(
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShader                                    shader,
262003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
262503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
263103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2636a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             destCache,
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
264803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
265003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
265603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
265803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
266403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
266903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
267503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
268003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
268603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
269103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
269703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
270203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
270803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2712fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2713fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocDescriptorSets(
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2717fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetAllocInfo*             pAllocInfo,
27185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
272303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2728b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2730b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
273404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
273603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
273704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
274203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
274703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
275303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2755606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
275804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdPoolCreateInfo*                  pCreateInfo,
276303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator,
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool*                                  pCmdPool);
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkCmdPool                                   cmdPool,
276903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkAllocCallbacks*                     pAllocator);
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool,
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolResetFlags                         flags);
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2776fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse HallVkResult VKAPI vkAllocCommandBuffers(
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2778fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBufferAllocInfo*                 pAllocInfo,
2779fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdBuffer*                                pCmdBuffers);
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2781fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hallvoid VKAPI vkFreeCommandBuffers(
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2783fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdPool                                   cmdPool,
278403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
2785fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBuffer*                          pCommandBuffers);
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBufferBeginInfo*                 pBeginInfo);
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferResetFlags                       flags);
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
280104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
280204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
28045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
28055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
28065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
28075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
28095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
28105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
28115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
28125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
28145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
28155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
28165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2819a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
28205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2821a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2825b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
28295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
28305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
28345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
28355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask);
28365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
28385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
28395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
28405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask);
28415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
28435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
28445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
28455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference);
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
285203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
28735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
28755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
288903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
289603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
293423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
2963b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
29785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2982ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2984ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2985ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2987a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
299604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
300204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
300404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
300504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
301004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
301504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
301604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
301804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
301904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
302004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
3021dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
302404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
302504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
302604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
302704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
302804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot,
302904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
303004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
303204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot);
303504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
303604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
303704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
304004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
304104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
30446f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3045a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
3046a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    uint32_t                                    slot);
304704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
304904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
305104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
305204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
3055a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
305704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
305804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
306004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
306104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
306203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
306303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
306404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
306604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
306704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
307004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
307104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
307204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
307304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
307404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
307504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
307604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
307704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
307804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
307904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
308004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    cmdBuffersCount,
308104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBuffer*                          pCmdBuffers);
308204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
308304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
30841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_surface 1
30851356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSurfaceKHR)
30861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3087a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_SURFACE_REVISION       20
30881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
30891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
3090a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_ERROR_SURFACE_LOST_KHR         ((VkResult)(int)0xc0000400)
30911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30931356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_KHR = 0,
30951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
30961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
30971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_KHR = 3,
30981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_KHR = 4,
30991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_KHR = 5,
31001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_KHR = 6,
31011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_KHR = 7,
31021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_KHR = 8,
31031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_BEGIN_RANGE = VK_SURFACE_TRANSFORM_NONE_KHR,
31041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_END_RANGE = VK_SURFACE_TRANSFORM_INHERIT_KHR,
31051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NUM = (VK_SURFACE_TRANSFORM_INHERIT_KHR - VK_SURFACE_TRANSFORM_NONE_KHR + 1),
31061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
31071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformKHR;
31081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31091356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
31111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_NUM = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
31141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
31151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
31161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31171356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
31191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
31201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
312103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
31221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
312303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
312403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_NUM = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
31251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
31261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
31271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31291356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
31311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
31321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
31331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
31341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
31351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
31371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
31381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
31401356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
31411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3142a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef enum {
3143a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3144a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3145a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3146a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3147a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3148a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3149a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
31501356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
31521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageCount;
31531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  currentExtent;
31541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minImageExtent;
31551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxImageExtent;
31561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
31571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       currentTransform;
3158a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagsKHR                    supportedCompositeAlpha;
31591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageArraySize;
31601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           supportedUsageFlags;
3161b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
31621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31631356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    format;
31651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             colorSpace;
31661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
31671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3168b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3169b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkDestroySurfaceKHR)(VkInstance  instance, VkSurfaceKHR  surface);
3170b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3171b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3172b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3173b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3174b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3175b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#ifdef VK_PROTOTYPES
3176b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hallvoid VKAPI vkDestroySurfaceKHR(
3177b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkInstance                                   instance,
3178b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                 surface);
3179b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3180b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
3181b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3182b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3183b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3184b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3185b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3186b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3187b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3188b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3189b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3190b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3191b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceFormatsKHR(
3192b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3193b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3194b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3195b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3196b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3197b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfacePresentModesKHR(
3198b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3199b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3200b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3201b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3202b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3203b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3204b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define vk_ext_khr_swapchain 1
3205b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSwapchainKHR)
3206b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3207b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_REVISION     62
3208b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
3209b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
3210b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
3211b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
3212b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_IMAGE_LAYOUT_PRESENT_SOURCE_KHR ((VkImageLayout)(int)0xc0000802)
3213b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
3214b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
3215b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface;
32201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
32211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    imageFormat;
32221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             imageColorSpace;
32231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageExtent;
32241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           imageUsageFlags;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       preTransform;
3226a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagBitsKHR                 compositeAlpha;
32271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    imageArraySize;
32281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSharingMode                               sharingMode;
322903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
32301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             pQueueFamilyIndices;
32311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR                            presentMode;
32321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                              oldSwapchain;
32331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    clipped;
32341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
32351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32361356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
3239b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    waitSemaphoreCount;
3240b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    swapchainCount;
324203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkSwapchainKHR*                       pSwapchains;
32431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             imageIndices;
32441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
32451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32471356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSwapchainKHR)(VkDevice  device, const VkSwapchainCreateInfoKHR*  pCreateInfo, VkSwapchainKHR*  pSwapchain);
32481356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef void (VKAPI *PFN_vkDestroySwapchainKHR)(VkDevice  device, VkSwapchainKHR  swapchain);
324903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint32_t*  pSwapchainImageCount, VkImage*  pSwapchainImages);
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkAcquireNextImageKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint64_t  timeout, VkSemaphore  semaphore, VkFence  fence, uint32_t*  pImageIndex);
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkQueuePresentKHR)(VkQueue  queue, VkPresentInfoKHR*  pPresentInfo);
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
32541356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateSwapchainKHR(
32551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*              pCreateInfo,
32571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR*                              pSwapchain);
32581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hallvoid VKAPI vkDestroySwapchainKHR(
32601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain);
32621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32631356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSwapchainImagesKHR(
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
326603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                    pSwapchainImageCount,
32671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImage*                                     pSwapchainImages);
32681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32691356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkAcquireNextImageKHR(
32701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
32721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint64_t                                     timeout,
32731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSemaphore                                  semaphore,
32741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFence                                      fence,
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pImageIndex);
32761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkQueuePresentKHR(
32781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkQueue                                      queue,
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentInfoKHR*                            pPresentInfo);
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
32811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display 1
32831356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkDisplayKHR)
32841356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkDisplayModeKHR)
32851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3286a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_DISPLAY_REVISION       17
32871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
32881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
32891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
3290a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
32911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32931356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
32951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
32961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
32971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
32981356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33001356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display;
330203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const char*                                 displayName;
33031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
33041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalResolution;
33051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
33061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    planeReorderPossible;
3307a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistentContent;
33081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
33091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33101356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  visibleRegion;
3312a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    refreshRate;
3313a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33151356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
3317a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
33191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33201356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
3323a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
33251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33261356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
33271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
33281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minSrcPosition;
33291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxSrcPosition;
33301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minSrcExtent;
33311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxSrcExtent;
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minDstPosition;
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxDstPosition;
33341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minDstExtent;
33351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxDstExtent;
3336a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
33371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33381356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
3339b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDisplayKHR                                currentDisplay;
3340b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    currentStackIndex;
3341b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3342b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3343b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef struct {
33441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
33451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex;
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeStackIndex;
33491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       transform;
33501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    float                                       globalAlpha;
33511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 alphaMode;
33521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageSize;
3353a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
33541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
335603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3357a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
3358a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayKHR* pProperties);
335903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
33601356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
3361a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3362a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkSurfaceKHR* pSurface);
33631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33651356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
33661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
336703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
33681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
33691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3370a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3371a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3372a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3373a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3374a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3375a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneSupportedDisplaysKHR(
3376a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3377a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3378a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayKHR*                               pProperties);
3379a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
33801356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetDisplayModePropertiesKHR(
33811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
338303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
338403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
33851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33861356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateDisplayModeKHR(
33871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
33891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
33901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
33911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3392a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneCapabilitiesKHR(
33931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
3394a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeCreateInfoKHR                  mode,
33951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3396a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3397a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3398a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateDisplayPlaneSurfaceKHR(
3399a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3400a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
3401a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display_swapchain 1
3405a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 6
34061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
34081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
34091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
34111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34121356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
34131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
34161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplaySwapchainCreateInfoKHR;
34171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34181356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
34191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
34201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
34211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    srcRect;
34221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    dstRect;
3423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistent;
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
34251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define vk_ext_khr_xlib_surface 1
34301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
34311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_REVISION  3
3433a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
3434a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NAME "vk_ext_khr_xlib_surface"
34351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3436a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
3437a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualId);
34381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3440a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateXlibSurfaceKHR(
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Display*                                    dpy,
34431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      window,
34441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3445a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3446a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXlibPresentationSupportKHR(
3447a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3448a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3449a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
3450a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VisualID                                    visualId);
34511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3452a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3455a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_xcb_surface 1
34561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
34571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_REVISION   3
34591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
34601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NAME "VK_EXT_KHR_xcb_surface"
34611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3462a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
3463a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
34641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34661356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateXcbSurfaceKHR(
34671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_connection_t*                           connection,
34691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                window,
34701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXcbPresentationSupportKHR(
3473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3476a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
34771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
34791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3481a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_wayland_surface 1
34821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
34831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3484a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 2
34851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
34861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_EXT_KHR_wayland_surface"
34871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34881356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
3489a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34921356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWaylandSurfaceKHR(
34931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_display*                          display,
34951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_surface*                          surface,
34961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3498a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3499a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3500a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3501a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
35041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3506a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_mir_surface 1
35071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
35081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3509a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_REVISION   2
35101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
35111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_mir_surface"
35121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35131356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
3514a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
35151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35171356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateMirSurfaceKHR(
35181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirConnection*                              connection,
35201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirSurface*                                 mirSurface,
35211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3522a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3523a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceMirPresentationSupportKHR(
3524a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3525a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3526a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
35291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3531a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_android_surface 1
35321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
35331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_REVISION 1
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_EXT_KHR_android_surface"
35371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
35381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
35391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, VkSurfaceKHR* pSurface);
35411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35431356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateAndroidSurfaceKHR(
35441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    ANativeWindow*                              window,
35461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
35491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3551a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_win32_surface 1
35521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
35531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3554a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_REVISION 2
35551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
35561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_EXT_KHR_win32_surface"
35571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35581356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
3559a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
35601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35621356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWin32SurfaceKHR(
35631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HINSTANCE                                   hinstance,
35651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HWND                                        hwnd,
35661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3567a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3568a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWin32PresentationSupportKHR(
3569a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3570a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
35711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
35731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
357404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
357504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
357604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
357704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
357804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3579