vulkan.h revision e1b12783fff0b8e2defcc94c54fac8d737e6b996
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
44e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 204, 0)
455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
47a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
48a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall
4904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
54a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#else
573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
5804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
59a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall
6004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkFlags;
63a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef uint32_t VkBool32;
645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint64_t VkDeviceSize;
655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkSampleMask;
6604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkInstance)
6804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkPhysicalDevice)
6904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkDevice)
7004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkQueue)
713fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
723fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_HANDLE(VkCommandBuffer)
733fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
743fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
753fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
763fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
773fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
783fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
793fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
803fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
813fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
823fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
833fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
843fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
853fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
863fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
873fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
883fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
893fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
903fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
913fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
9204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_LOD_CLAMP_NONE                 1000.0f
945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_MIP_LEVELS           (~0U)
955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_ARRAY_LAYERS         (~0U)
965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_WHOLE_SIZE                     (~0ULL)
975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_ATTACHMENT_UNUSED              (~0U)
985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_TRUE                           1
995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_FALSE                          0
1005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_QUEUE_FAMILY_IGNORED           (~0U)
1015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_SUBPASS_EXTERNAL               (~0U)
10265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
10365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_UUID_SIZE                      16
1045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
10665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_EXTENSION_NAME_SIZE        256
10765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_DESCRIPTION_SIZE           256
1085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkResult {
11104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SUCCESS = 0,
112a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_NOT_READY = 1,
113a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_TIMEOUT = 2,
114a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_SET = 3,
115a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_RESET = 4,
116a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_INCOMPLETE = 5,
1175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
11904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ERROR_INITIALIZATION_FAILED = -3,
1205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_DEVICE_LOST = -4,
1215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_MEMORY_MAP_FAILED = -5,
1225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_LAYER_NOT_PRESENT = -6,
1235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
124606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_FEATURE_NOT_PRESENT = -8,
125606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
126091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_ERROR_TOO_MANY_OBJECTS = -10,
127a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
128a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
12904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
130a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
13104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
13204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
13304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStructureType {
13504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
136c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
137c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
138c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
139c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
140c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 5,
141c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
142c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
143c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
144c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
146c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
147c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
148c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
149c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
150c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
151c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
1693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 34,
1703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
1753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO = 40,
1763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 41,
1773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 42,
1783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 43,
1793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 44,
1803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 45,
1813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 46,
1823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 47,
18304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
184c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
1853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
18604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
18704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
18804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
1903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
1963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
1973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
1983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
20003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
2013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
2023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
2033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
2063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
2073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
20804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
21004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
21104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_UNORM = 1,
21204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_USCALED = 2,
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_UNORM = 3,
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_USCALED = 4,
21504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_UNORM = 5,
21604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_USCALED = 6,
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_UNORM = 7,
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_USCALED = 8,
21904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
22004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
22104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
22204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
22404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
22504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
22604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
22704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
22804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
22904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
23004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
23104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
23204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
23304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
23404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
23504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
23604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
23704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
23804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
23904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
24004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 30,
24104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 31,
24204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 32,
24304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 33,
24404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 34,
24504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 35,
24604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 36,
24704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UNORM = 37,
24804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SNORM = 38,
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_USCALED = 39,
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SSCALED = 40,
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UINT = 41,
25204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SINT = 42,
25304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UNORM = 43,
25404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SNORM = 44,
25504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_USCALED = 45,
25604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SSCALED = 46,
25704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UINT = 47,
25804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SINT = 48,
25904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SFLOAT = 49,
26004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UNORM = 50,
26104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SNORM = 51,
26204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_USCALED = 52,
26304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SSCALED = 53,
26404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UINT = 54,
26504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SINT = 55,
26604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SFLOAT = 56,
26704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UNORM = 57,
26804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SNORM = 58,
26904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_USCALED = 59,
27004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 60,
27104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UINT = 61,
27204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SINT = 62,
27304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 63,
27404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 64,
27504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 65,
27604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 66,
27704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 67,
27804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 68,
27904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 69,
28004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 70,
28104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_UINT = 71,
28204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SINT = 72,
28304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SFLOAT = 73,
28404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_UINT = 74,
28504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SINT = 75,
28604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SFLOAT = 76,
28704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_UINT = 77,
28804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SINT = 78,
28904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 79,
29004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 80,
29104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 81,
29204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 82,
29304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64_SFLOAT = 83,
29404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64_SFLOAT = 84,
29504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 85,
29604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 86,
29704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R11G11B10_UFLOAT = 87,
29804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R9G9B9E5_UFLOAT = 88,
29904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM = 89,
3005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_D24_UNORM_X8 = 90,
30104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT = 91,
30204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_S8_UINT = 92,
30304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 93,
30404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 94,
30504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
30604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_UNORM = 96,
30704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_SRGB = 97,
30804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_UNORM = 98,
30904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_SRGB = 99,
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_UNORM = 100,
31104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_SRGB = 101,
31204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_UNORM = 102,
31304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_SRGB = 103,
31404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_UNORM = 104,
31504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_SNORM = 105,
31604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_UNORM = 106,
31704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_SNORM = 107,
31804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_UFLOAT = 108,
31904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_SFLOAT = 109,
32004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_UNORM = 110,
32104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_SRGB = 111,
32204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
32304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
32404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
32504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
32604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
32704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
32804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_UNORM = 118,
32904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_SNORM = 119,
33004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_UNORM = 120,
33104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_SNORM = 121,
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_UNORM = 122,
33304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_SRGB = 123,
33404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_UNORM = 124,
33504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_SRGB = 125,
33604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_UNORM = 126,
33704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_SRGB = 127,
33804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_UNORM = 128,
33904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_SRGB = 129,
34004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_UNORM = 130,
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_SRGB = 131,
34204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_UNORM = 132,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_SRGB = 133,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_UNORM = 134,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_SRGB = 135,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_UNORM = 136,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_SRGB = 137,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_UNORM = 138,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_SRGB = 139,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_UNORM = 140,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_SRGB = 141,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_UNORM = 142,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_SRGB = 143,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_UNORM = 144,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_SRGB = 145,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_UNORM = 146,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_SRGB = 147,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_UNORM = 148,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_SRGB = 149,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B4G4R4A4_UNORM = 150,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G5R5A1_UNORM = 151,
36204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_UNORM = 152,
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_USCALED = 153,
36404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UNORM = 154,
36504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SNORM = 155,
36604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_USCALED = 156,
36704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 157,
36804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UINT = 158,
36904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SINT = 159,
37004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SRGB = 160,
37104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 161,
37204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 162,
37304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 163,
37404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 164,
37504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 165,
37604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 166,
37704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 167,
37804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UNORM = 168,
37904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SNORM = 169,
38004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_USCALED = 170,
38104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SSCALED = 171,
38204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UINT = 172,
38304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SINT = 173,
38404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
38504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
3863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
38704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
38804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
38904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
39104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
39204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
39304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
39404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
39504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
3963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
39704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
39804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
39904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
401c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
402c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
403c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
404c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
4053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
40604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
40704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
40804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
41004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
41104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
41204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
41304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
41404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
41504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
41604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
4173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
41804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
41904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
42004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
42204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
42304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
424a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
42504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
426a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
4273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
42804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
42904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
43004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
43204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
43304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
43404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
43504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
4363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
43704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
43804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
43904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
4415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
4425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
4435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
4445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
4455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
4465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
4473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
4483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
4495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
4505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
4515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
4523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
4535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
4545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
45504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
45704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
45804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
45904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
46004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
46104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
46204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
46304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
46404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
46504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
4663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
46704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
46804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
46904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
47165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
47265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
47365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
47465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
47565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
47665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
47765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
47865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
47965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
48065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
48165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
48265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
48304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
48565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
48665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
48765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
48865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
48965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
49065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
49165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
49204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
49404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
49504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
49604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
49804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
49904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
504091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
506091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
507091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
50804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
50904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
51265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
51365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
51465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
51565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
51665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
51765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
51865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
51965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
5223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
5233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
5243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
5253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
5263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
52704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
52804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
52904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
53104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
53304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
5343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
5373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
5413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
5493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
5503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
5523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
5533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
5553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
5563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
55804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
5663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
5703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
57204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
5793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
58465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
58565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
58665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
58765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
58865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
58965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
59065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
59165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
59265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
59365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
59465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
59565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
59665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
59765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
59865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
59965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
60065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
60165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
60265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
60365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
60465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
60565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
60665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
60765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
6173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
6225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
6235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
6245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
6255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
6265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
6275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
6285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
6295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
6305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
6315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
6325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
6345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
6355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
6365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
6373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
63823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
63923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
64023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
64123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
6423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
64323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
64423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
64723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BASE = 0,
64823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
64923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
65023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
65123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
6523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
65323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
65423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
657c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
658c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
659c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
660c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
661c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
662c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
663c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
6643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
66523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
66623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
66704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
66904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
67504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
6773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
68004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
68504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
68604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
68704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
68804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
68904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
69004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
69104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
69204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
69304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
69404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
6953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
7053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
7143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
719c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
720c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
721c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
722c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
7233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
7283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
7293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
7303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
7313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
7323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
7333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
7343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
73504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
74004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
7413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
74665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
74765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
74865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
74965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
75065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
75165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
75265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
754a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
7673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
7683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
7733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
7743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
7785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
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
7933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
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
8043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
80504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
80604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
80765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
808b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
813d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
814d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
815d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
816d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
817d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
822d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
825a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
826a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
82804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
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;
8353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
836a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
8373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
838b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
839b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
840b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
843091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
844091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
845091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
846091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
85404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
855a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
858ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
859ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
860ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
861ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
862ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
863ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
864ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
865ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
866ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
867ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
868ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
87704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
87904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
882a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
883a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
884a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
885a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
886a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
887a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
8883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
8893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
89204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
89304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
89704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
900a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
9015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
9033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
9063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
9073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
9083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
9093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
9103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
9113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
9123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
9133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
914a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
915a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
916a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
917a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
918a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
919a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
920c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
921a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
922a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
923a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
924a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
925a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineTesselationStateCreateFlags;
926a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
9273fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
928c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
9293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
930c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
931c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
932c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
933c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x3,
934c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
935c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
936a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
937a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
938a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
939a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
9403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
94165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
94265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
94365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
94465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
94565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
94665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
947a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
948a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
950a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
951a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
95204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
954fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
955fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
956fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
957fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
958a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
959a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
960fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
9613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
9625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineStageFlagBits {
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
96904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
97004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
972ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
973ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
97404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
97804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
97904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
98004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
982091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00004000,
983091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00008000,
98404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
9883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
9893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
9903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
9913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
9923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
9933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
9943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
9953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
9963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
9973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
9983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
9993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
10003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
10013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
10023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
10033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
10043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
10053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
10063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
10073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
10083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1009dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1010dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1011dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1012dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
10133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
10143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
10153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
10163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
10173fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
10203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
10223fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
102304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
10253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
10263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
10273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
10283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
10293fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
103004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
10323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
10343fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
103504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
10375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1040c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x3,
10415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
104304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryControlFlagBits {
104565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
104804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1049e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
10503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
10533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
105403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1055e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
10563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
10583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
10603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
106104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1062e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
10633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1066e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
10673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
10703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
107103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1072e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
10733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
10763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
107703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1078e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
10795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
10815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const char*                                 pApplicationName;
10843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    applicationVersion;
10855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
109104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
109204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1093a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstanceCreateFlags                       flags;
10943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkApplicationInfo*                    pApplicationInfo;
109503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
109604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
109703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
109804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
110004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
110203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    void*                                       pUserData;
11033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkAllocationFunction                    pfnAllocation;
11043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkReallocationFunction                  pfnReallocation;
110503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkFreeFunction                          pfnFree;
11063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    PFN_vkInternalAllocationNotification        pfnInternalAllocation;
110703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    PFN_vkInternalFreeNotification              pfnInternalFree;
11083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
110903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
11103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
111104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
111204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
111304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
111404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
111604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
111704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
11183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBool32                                    dualSrcBlend;
111904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1121ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
112204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
1127fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    alphaToOne;
1128fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    multiViewport;
1129fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    samplerAnisotropy;
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
113204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
113365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBool32                                    occlusionQueryPrecise;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
1135dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    vertexPipelineStoresAndAtomics;
1136dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    fragmentStoresAndAtomics;
1137dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkBool32                                    shaderTessellationAndGeometryPointSize;
11385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
113904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
114004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
1141d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    shaderStorageImageReadWithoutFormat;
1142d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    shaderStorageImageWriteWithoutFormat;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
115004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
115365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBool32                                    shaderResourceMinLod;
11545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
115504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
115604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
116104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
116204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
1163d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VkBool32                                    variableMultisampleRate;
116404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
116704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
116804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
117004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
117104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
11735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
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
11863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
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;
1192b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    maxTexelBufferElements;
1193fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxUniformBufferRange;
1194fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxStorageBufferRange;
119504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
1197091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    uint32_t                                    maxSamplerAllocationCount;
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;
1206e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Hall    uint32_t                                    maxPerStageDescriptorInputAttachments;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
120804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
12095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
121004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
12115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
1214e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Hall    uint32_t                                    maxDescriptorSetInputAttachments;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
121804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
121904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
12203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxTessellationGenerationLevel;
1221ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1222ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1223ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1224ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1225ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1226ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1227ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
123204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
123304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1234fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
12353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxFragmentDualSrcAttachments;
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
125004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
125104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
1252dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    size_t                                      minMemoryMapAlignment;
1253dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minTexelBufferOffsetAlignment;
1254dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minUniformBufferOffsetAlignment;
1255dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minStorageBufferOffsetAlignment;
1256fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1258fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
126504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
1266091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferColorSampleCounts;
1267091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferDepthSampleCounts;
1268091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferStencilSampleCounts;
1269091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferNoAttachmentsSampleCounts;
127004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
1271091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageColorSampleCounts;
1272091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageIntegerSampleCounts;
1273091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageDepthSampleCounts;
1274091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageStencilSampleCounts;
1275091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          storageImageSampleCounts;
127604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
1277a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       timestampPeriod;
127804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
127904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1281fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
128304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
128504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
128603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBool32                                    strictLines;
1287091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkBool32                                    standardSampleLocations;
128865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyOffsetAlignment;
128965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyRowPitchAlignment;
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
129104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
1294b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32                                    residencyStandard2DMultisampleBlockShape;
12955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
130104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
130204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
130365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    vendorID;
130465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    deviceID;
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
130665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
130765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_SIZE];
13085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
13095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
131004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
131304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
131404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1315acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
131665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkExtent3D                                  minImageTransferGranularity;
13175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
132304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
133304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
133404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
133504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
13375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1339a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceQueueCreateFlags                    flags;
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
134103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queuePriorityCount;
1342fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
134304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
134404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
134604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
134704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1348a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceCreateFlags                         flags;
1349ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
135103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
135204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
135303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
135404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
135965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
136104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
136204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
136465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME_SIZE];
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
13663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    implementationVersion;
136765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        description[VK_MAX_DESCRIPTION_SIZE];
136804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
136904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
137103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkStructureType                             sType;
137203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const void*                                 pNext;
137303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    waitSemaphoreCount;
1374a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
137503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount;
13763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers;
137703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    signalSemaphoreCount;
1378a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1379a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1380a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
13813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
13863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
13913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
139904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
14033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkImageAspectFlags                          aspectMask;
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
140504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1409b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSparseImageFormatProperties               formatProperties;
141065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    imageMipTailStartLod;
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1417b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                resourceOffset;
1418b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
14193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
142104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1422a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1425a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBuffer                                    buffer;
1426a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1427a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1431a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1433a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1434a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
143504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
14373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkImageAspectFlags                          aspectMask;
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
145104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
14523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
145404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1455a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1459a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1460a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBind*              pBinds;
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
146404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1467a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1468a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1476a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1477a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1479a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkStructureType                             sType;
1480a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const void*                                 pNext;
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1499a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkQueryPoolCreateFlags                      flags;
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
150165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entryCount;
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
150304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
150404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1508a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferCreateFlags                         flags;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
151203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
151404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1519a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferViewCreateFlags                     flags;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1529a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageCreateFlags                          flags;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1534a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
1535091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
153903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
15415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
154904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
155265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          r;
155365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          g;
155465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          b;
155565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          a;
155665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
155704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
15595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
15613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    levelCount;
15625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
15633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1569a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageViewCreateFlags                      flags;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
157365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentMapping                          components;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
157804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1580a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderModuleCreateFlags                   flags;
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
1582a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    const uint32_t*                             pCode;
158304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1588a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCacheCreateFlags                  flags;
1589b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      initialDataSize;
1590b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const void*                                 pInitialData;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
159465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    constantID;
159504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
1596b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      size;
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
1601b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSpecializationMapEntry*             pMapEntries;
160204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
160404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
160704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
160804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1609a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateFlags            flags;
16103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkShaderStageFlagBits                       stage;
16113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkShaderModule                              module;
16123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    const char*                                 pName;
161304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
161404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
161504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
161704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
1618b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    stride;
161965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkVertexInputRate                           inputRate;
162004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
162104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
162304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
162404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
162504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1626b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    offset;
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
163004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1632a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
163303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
163404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
163503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
163704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1642a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineInputAssemblyStateCreateFlags     flags;
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
164404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1650a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineTesselationStateCreateFlags       flags;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
165565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       x;
165665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       y;
16575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
16645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
16695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
167904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
168004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1681a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineViewportStateCreateFlags          flags;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
16913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineRasterizationStateCreateFlags     flags;
1692ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
169465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkPolygonMode                               polygonMode;
1695c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VkCullModeFlags                             cullMode;
169604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
1698a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor;
16995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
1700a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor;
17015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
17023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
170304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
170504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1707a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineMultisampleStateCreateFlags       flags;
1708091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       rasterizationSamples;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
171004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
17115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1712acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1713acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
171404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
171504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
171765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 failOp;
171865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 passOp;
171965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 depthFailOp;
172065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCompareOp                                 compareOp;
172165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask;
172265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask;
172365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference;
172404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
172504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1729a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDepthStencilStateCreateFlags      flags;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
17335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
17375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
17385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
174365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcColorBlendFactor;
174465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstColorBlendFactor;
174565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   colorBlendOp;
174665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcAlphaBlendFactor;
174765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstAlphaBlendFactor;
174865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   alphaBlendOp;
174965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkColorComponentFlags                       colorWriteMask;
175004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1755a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineColorBlendStateCreateFlags        flags;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
1760b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    float                                       blendConstants[4];
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
176404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1766a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDynamicStateCreateFlags           flags;
17675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
17725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1774a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCreateFlags                       flags;
177504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
177604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
17813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
178304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
1797a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
180004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
180104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
180503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset;
180603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size;
180704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
180804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
181004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1812a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineLayoutCreateFlags                 flags;
181303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
181504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
181604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
181704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
181804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1822a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSamplerCreateFlags                        flags;
182323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    magFilter;
182423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    minFilter;
182523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerMipmapMode                         mipmapMode;
182623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeU;
182723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeV;
182823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeW;
182904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
183004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
18365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
1840091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    uint32_t                                    binding;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1850a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDescriptorSetLayoutCreateFlags            flags;
185103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindingCount;
18523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    const VkDescriptorSetLayoutBinding*         pBinding;
185304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
185703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
185865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
186104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1863fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
18645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
186565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    poolSizeCount;
186665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    const VkDescriptorPoolSize*                 pPoolSizes;
186704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
1870fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1871fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1872fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
187303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
1874fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
18753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
1876fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
18773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
1878a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1879a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1880a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1881a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1882a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
18833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
18845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
189004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
18923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
18933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
18943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
189503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
189604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1897fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1898fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1899fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
190004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
19083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
19093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
19103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
191103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
191204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1917a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFramebufferCreateFlags                    flags;
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
19205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
1927a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkAttachmentDescriptionFlags                flags;
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1929091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
194404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
1945a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
194603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    inputAttachmentCount;
19475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
194803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    colorAttachmentCount;
19495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
19505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
1951c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    const VkAttachmentReference*                pDepthStencilAttachment;
195203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    preserveAttachmentCount;
19535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
195404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
195504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
19583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstSubpass;
195904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
19603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask;
19613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
19623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
1963dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1969a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkRenderPassCreateFlags                     flags;
197004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
197604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
197704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolCreateFlags                    flags;
1982a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex;
19833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
198404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool                               commandPool;
19893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferLevel                        level;
199003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bufferCount;
19913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
199204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferBeginInfo {
199404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
199504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferUsageFlags                   flags;
199704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
199904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
20003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
200104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
200304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
20043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset;
2005b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
200604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
200704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
200965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageAspectFlags                          aspectMask;
20105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
2011a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
201365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
20145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
201665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
201704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
201865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
202104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
202465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
202765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
20293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkExtent3D                                  dstExtent;
203004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
203665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    imageSubresource;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
20425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
20435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
20445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
204504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
204604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
20485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
20495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
20505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
20515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2053ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
2054ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
2055ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2056ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2058ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2059ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2060ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2061ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2062ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2064a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2065a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
2067a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
206804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
207065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
207104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
207265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassBeginInfo {
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
208204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
208504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
208804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
20903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
20913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
209204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
20933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
209404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
209704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
210004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
21033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
210404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
210604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
211204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
211404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageMemoryBarrier {
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
21233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
21243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
212504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
212604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
21283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
213004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryBarrier {
213404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
21363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
21373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
213904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2141e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2142e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2143e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2144e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2145e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2146e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2147e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2148e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2149e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2150e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2151e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2152e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2153e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2154e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2155e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2156e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2157e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2158e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2159e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2160e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2161e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2162e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2163e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2164e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2165e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2166e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2167e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2168e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2169e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2170e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2171e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2172e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2173e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2174e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2175e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2176e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2177e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2178e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2179e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2180e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2181e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2182e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2183e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2184e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2185e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2186e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2187e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2188e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2189e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2190e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2191e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2192e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2193e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2194e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2195e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2196e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2197e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2198e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2199e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2200e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2201e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2202e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2203e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2204e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2205e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2206e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2207e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2208e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2209e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2210e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2211e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2212e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2213e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2214e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2215e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2216e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2217e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2218e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2219e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2220e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2221e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2222e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2223e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2224e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2225e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2226e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2227e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2228e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2229e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2230e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2231e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2232e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2233e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2234e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2235e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
2236e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
2237e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2238e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2239e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2240e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2241e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2242e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2243e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2244e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2245e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2246e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2247e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2248e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2249e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2250e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2251e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2252e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2253e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2254e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2255e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2256e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2257e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2258e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
2259e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2260e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2261e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2262e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2263e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2264e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2265e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2266e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2267e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2268e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags);
2269e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry);
2270e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
2271e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry);
2272e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2273e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
2274e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2275e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2276e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2277e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
227804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
2280e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
22823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
228404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
228603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
22873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2289e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
229204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2294e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2298e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2303e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
230704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
23095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2312e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
231504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2316e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
231704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
23195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2321e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
232404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2325e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2329e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2333e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
23363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2339e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
234003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
23413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
234204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2343e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
234503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
234604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2348e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
235103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2354e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
235503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2358e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
236003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
236104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2363e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
236804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2369e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2371a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2372b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2375e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2378e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
23843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
23853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2387e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
238804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
23903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
240504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2409e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2414e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2419e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
24223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
24283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2436e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2441e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2447e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2451091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
245403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2457e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
245903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2460a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2461a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2463e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
24663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2469e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
24723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2474e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2479e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2483e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2490e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
24933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2496e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
24993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2501e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
25043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2507e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
25103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2512e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2516e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2520e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2524e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
25273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
25333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2535e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2540a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2542a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2545e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
25483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2551e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
25543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2556e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
25593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2562e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
25653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2567e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
25703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2573e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
25763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2578e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2584e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
25873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2590e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
25933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2595e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
25983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2601e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
26043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2606e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
26093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2612e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
26153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2617e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2620a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2623e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2629e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
263203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
26343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2637e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
264003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
26423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2645e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
26483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2650e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
26533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2656e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
26593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2661e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
26643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2667e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
26703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2672e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
26753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2678e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
26813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2683e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
26863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2689e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
26923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2694e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2696fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2697fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2699e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
27025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2704e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
270703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2710e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2712b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2714b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2717e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
27203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2723e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
27263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2728e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
27313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2734e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
27373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2744e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
27473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
27483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2750e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2755e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2760e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
27633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2765e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
276604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
276803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
27693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2771e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
27723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2775e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
27763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2778e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
27793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
278104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2782e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
27833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2787e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
27883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
27905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
27915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
27933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
27955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
27965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2797e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
27983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
28005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2801e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
28023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2803a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
28045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2805a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2807e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
28083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2809b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2811e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
28123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
28145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2816e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
28173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
281965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
28205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2821e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
28223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
282465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
28255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2826e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
28273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
282965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2831e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
28323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
283404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
283603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2841e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
28423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2847e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
28483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2854e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
28553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
28575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
28595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2861e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
28623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2869e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
28703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
287303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2876e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
28773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
288003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2883e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
28843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2889e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
28903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2894e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
28953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
28973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2901e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
29023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2910e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
29113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
291823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2920e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
29213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2928e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
29293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2936e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
29373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2943e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
29443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
2947b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2950e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
29513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2958e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
29593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
29625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2966e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
29673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2968ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2969ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2971a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2973e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
29743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2982e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
29833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2987e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
29883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2992e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
29933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
299604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
29983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
29993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3001e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
30023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3005dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
30063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3009e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
30103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
301265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry,
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3015e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
30163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
301865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
301904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3020e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
30213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
302404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
302504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3026e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
30273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30286f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3029a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
303065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3032e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
30333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
303604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
30373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3039a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
304004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
304104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3042e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
30433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
304504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
304603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
304703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
304904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3050e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
30513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
305365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3055e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
30563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
305804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3059e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
30603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
306104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3062e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
30633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    commandBuffersCount,
30653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
306604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
306704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3068091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
30693fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
30701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_REVISION           22
30723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NUMBER   1
30733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
3074a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_ERROR_SURFACE_LOST_KHR         ((VkResult)(int)0xc0000400)
30751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformKHR {
30781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_KHR = 0,
30791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
30801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
30811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_KHR = 3,
30821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_KHR = 4,
30831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_KHR = 5,
30841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_KHR = 6,
30851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_KHR = 7,
30861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_KHR = 8,
30871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_BEGIN_RANGE = VK_SURFACE_TRANSFORM_NONE_KHR,
30881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_END_RANGE = VK_SURFACE_TRANSFORM_INHERIT_KHR,
30893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SURFACE_TRANSFORM_RANGE_SIZE = (VK_SURFACE_TRANSFORM_INHERIT_KHR - VK_SURFACE_TRANSFORM_NONE_KHR + 1),
30901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
30911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformKHR;
30921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
30941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
30951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
30981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
30991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
31001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
31021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
31031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
31041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
310503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
31061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
310703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
31083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
31091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
31101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
31111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
31141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
31151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
31161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
31171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
31181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
31191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
31201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
31211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
31221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
31231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
31241356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
31251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3127a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3128a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3129a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3130a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3131a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3132a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3133a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
31343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
31351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageCount;
31371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  currentExtent;
31381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minImageExtent;
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxImageExtent;
31401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
31411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       currentTransform;
3142a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagsKHR                    supportedCompositeAlpha;
31431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageArraySize;
31441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           supportedUsageFlags;
3145b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
31461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
31481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    format;
31491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             colorSpace;
31501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
31511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3152b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3153e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance  instance, VkSurfaceKHR  surface);
3154e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3155e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3156e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3157e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3158b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3159b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#ifdef VK_PROTOTYPES
3160e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3161b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkInstance                                   instance,
3162b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                 surface);
3163b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3164e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3165b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3166b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3167b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3168b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3169b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3170e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3171b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3172b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3173b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3174b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3175e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3176b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3177b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3178b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3179b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3180b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3181e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3182b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3183b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3184b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3185b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3186b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3187b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3188091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
31893fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3190b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3191a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall#define VK_KHR_SWAPCHAIN_REVISION         65
31923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
31933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3194b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
3195b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
31963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_IMAGE_LAYOUT_PRESENT_SRC_KHR   ((VkImageLayout)(int)0xc0000802)
3197b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
3198b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
3199b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
32003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
32011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3202a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
32031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface;
32041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
32051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    imageFormat;
32061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             imageColorSpace;
32071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageExtent;
32081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           imageUsageFlags;
32091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       preTransform;
3210a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagBitsKHR                 compositeAlpha;
32111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    imageArraySize;
32121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSharingMode                               sharingMode;
321303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
32141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             pQueueFamilyIndices;
32151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR                            presentMode;
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                              oldSwapchain;
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    clipped;
32181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
32191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
32211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3222a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
3223b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    waitSemaphoreCount;
3224b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    swapchainCount;
322603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkSwapchainKHR*                       pSwapchains;
32271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             imageIndices;
3228a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VkResult*                                   pResults;
32291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
32301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3232e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice  device, const VkSwapchainCreateInfoKHR*  pCreateInfo, VkSwapchainKHR*  pSwapchain);
3233e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice  device, VkSwapchainKHR  swapchain);
3234e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint32_t*  pSwapchainImageCount, VkImage*  pSwapchainImages);
3235e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint64_t  timeout, VkSemaphore  semaphore, VkFence  fence, uint32_t*  pImageIndex);
3236e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue  queue, VkPresentInfoKHR*  pPresentInfo);
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3239e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
32401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*              pCreateInfo,
32421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR*                              pSwapchain);
32431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3244e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
32451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain);
32471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3248e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
32491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
325103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                    pSwapchainImageCount,
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImage*                                     pSwapchainImages);
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3254e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
32551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
32571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint64_t                                     timeout,
32581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSemaphore                                  semaphore,
32591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFence                                      fence,
32601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pImageIndex);
32611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3262e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
32631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkQueue                                      queue,
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentInfoKHR*                            pPresentInfo);
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
32661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3267091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
32683fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
32693fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
32701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_REVISION           18
32723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NUMBER   3
32733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
32741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
3275a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
32761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
32811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
32821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
32831356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
32841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
32861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display;
328703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const char*                                 displayName;
32881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
32891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalResolution;
32901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
32911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    planeReorderPossible;
3292a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistentContent;
32931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
32961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  visibleRegion;
3297a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    refreshRate;
3298a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
3302a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
33041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
33061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3307a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
3308a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
33101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
33121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
33131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minSrcPosition;
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxSrcPosition;
33151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minSrcExtent;
33161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxSrcExtent;
33171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minDstPosition;
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxDstPosition;
33191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minDstExtent;
33201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxDstExtent;
3321a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3324b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDisplayKHR                                currentDisplay;
3325b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    currentStackIndex;
3326b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3327b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
33283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
33291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3330a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
33311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex;
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeStackIndex;
33341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       transform;
33351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    float                                       globalAlpha;
33361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 alphaMode;
33371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageSize;
3338a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
33391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3341e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3342e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
3343e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayKHR* pProperties);
3344e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
3345e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
3346e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3347e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkSurfaceKHR* pSurface);
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3350e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
33511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
335203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
33531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
33541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3355e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3356a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3357a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3358a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3359a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3360e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3361a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3362a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3363a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayKHR*                               pProperties);
3364a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3365e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
33661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
336803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
336903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
33701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3371e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
33721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
33741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
33751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
33761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
33781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
3379a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeCreateInfoKHR                  mode,
33801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3381a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3382a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3383e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3384a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3385a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
3386a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
33871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3389091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
33903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 7
33913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
33923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
33931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
33941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
33951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
33961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySwapchainCreateInfoKHR {
33981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3399a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
34001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
34011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplaySwapchainCreateInfoKHR;
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3405a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
34061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    srcRect;
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    dstRect;
3408a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistent;
34091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3413a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3414091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
34161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XLIB_SURFACE_REVISION      4
34183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
3419091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
34201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3421e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
3422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
34231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
34261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Display*                                    dpy,
34281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      window,
34291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3430a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3433a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3434a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
343565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
34361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3437a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
34381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3440091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
34421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_REVISION       4
34443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
34453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
34461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3447e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
3448e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
34491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3451e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
34521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_connection_t*                           connection,
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                window,
34551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3457e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3459a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3460a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3461a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
34621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
34641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3466091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
34671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
34681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_REVISION   3
34703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
34713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
34721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3473e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
3474e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
34751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3477e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
34781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_display*                          display,
34801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_surface*                          surface,
34811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3482a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3483e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3484a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3485a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3486a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
34871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
34891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3491091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
34921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
34931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_REVISION       3
34953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
34963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
34971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3498e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
3499e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
35001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3502e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirConnection*                              connection,
35051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirSurface*                                 mirSurface,
35061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3507a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3508e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3509a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3510a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3511a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
35121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
35141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3516091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
35171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
35181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_REVISION   2
35203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
35213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
35221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
35231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
35241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3525e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, VkSurfaceKHR* pSurface);
35261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3528e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
35291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    ANativeWindow*                              window,
35311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
35321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3536091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
35371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
35381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_REVISION     3
35403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
35413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
35421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3543e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
3544e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
35451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3547e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
35481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HINSTANCE                                   hinstance,
35501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HWND                                        hwnd,
35511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3553e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3554a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3555a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
35561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
35581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
355904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
356004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
356104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
356204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
356304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3564