vulkan.h revision a9e5703e380d9d7f096d177adb792621a1e8d4ba
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
44a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 203, 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
10493fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void* (VKAPI *PFN_vkAllocationFunction)(
10503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
10533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
105403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
10553fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void* (VKAPI *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
106204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
10633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10663fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkInternalAllocationNotification)(
10673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
10703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
107103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
107203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkInternalFreeNotification)(
10733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
10763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
107703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
10785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *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;
120604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
12085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
120904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
12105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
12183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxTessellationGenerationLevel;
1219ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1220ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1221ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1222ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1223ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1224ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1225ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1232fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
12333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    maxFragmentDualSrcAttachments;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
1250dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    size_t                                      minMemoryMapAlignment;
1251dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minTexelBufferOffsetAlignment;
1252dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minUniformBufferOffsetAlignment;
1253dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDeviceSize                                minStorageBufferOffsetAlignment;
1254fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
125504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1256fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
1264091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferColorSampleCounts;
1265091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferDepthSampleCounts;
1266091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferStencilSampleCounts;
1267091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          framebufferNoAttachmentsSampleCounts;
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
1269091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageColorSampleCounts;
1270091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageIntegerSampleCounts;
1271091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageDepthSampleCounts;
1272091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          sampledImageStencilSampleCounts;
1273091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlags                          storageImageSampleCounts;
127404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
1275a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       timestampPeriod;
127604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
127704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
127804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1279fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
128104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
128304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
128403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBool32                                    strictLines;
1285091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkBool32                                    standardSampleLocations;
128665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyOffsetAlignment;
128765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkDeviceSize                                optimalBufferCopyRowPitchAlignment;
128804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
128904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
12915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
1292b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32                                    residencyStandard2DMultisampleBlockShape;
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
129904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
130165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    vendorID;
130265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    deviceID;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
130465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
130565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_SIZE];
13065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
13075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
130804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
130904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
131204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1313acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
131465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkExtent3D                                  minImageTransferGranularity;
13155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
131904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
132304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
132904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
133304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
13355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1337a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceQueueCreateFlags                    flags;
133804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
133903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queuePriorityCount;
1340fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
134404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
134504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1346a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDeviceCreateFlags                         flags;
1347ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
134804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
134903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledLayerNameCount;
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
135103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    enabledExtensionNameCount;
135204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
135304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
135404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
135765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
135804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
135904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
136265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME_SIZE];
136304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
13643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    implementationVersion;
136565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    char                                        description[VK_MAX_DESCRIPTION_SIZE];
136604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
136704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
136903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkStructureType                             sType;
137003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const void*                                 pNext;
137103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    waitSemaphoreCount;
1372a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
137303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount;
13743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers;
137503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    signalSemaphoreCount;
1376a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1377a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1378a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
13793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
13843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
13893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
139904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
14013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkImageAspectFlags                          aspectMask;
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
140504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1407b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSparseImageFormatProperties               formatProperties;
140865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    imageMipTailStartLod;
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1415b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                resourceOffset;
1416b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
14173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
141904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1420a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1421a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBuffer                                    buffer;
1424a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1425a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1426a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1427a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1430a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1431a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseMemoryBind*                   pBinds;
1432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
14353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkImageAspectFlags                          aspectMask;
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
14503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory;
14513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset;
145204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
1453a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1454a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImage                                     image;
1457a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bindCount;
1458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBind*              pBinds;
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1464a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1465a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1467a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1468a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1471a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1477a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkStructureType                             sType;
1478a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const void*                                 pNext;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
149604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkQueryPoolCreateFlags                      flags;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
149965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entryCount;
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
150404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
150504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1506a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferCreateFlags                         flags;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
151003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1517a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBufferViewCreateFlags                     flags;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1527a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageCreateFlags                          flags;
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1532a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
1533091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples;
153404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
153703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
15395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
155065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          r;
155165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          g;
155265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          b;
155365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentSwizzle                          a;
155465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
155504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
15575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
15593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    levelCount;
15605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
15613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1567a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkImageViewCreateFlags                      flags;
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
157165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkComponentMapping                          components;
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
157704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1578a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkShaderModuleCreateFlags                   flags;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
1580a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    const uint32_t*                             pCode;
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1586a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCacheCreateFlags                  flags;
1587b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      initialDataSize;
1588b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const void*                                 pInitialData;
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
159265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    constantID;
159304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
1594b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    size_t                                      size;
159504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
159604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
1599b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSpecializationMapEntry*             pMapEntries;
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
160104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
160204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1607a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateFlags            flags;
16083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkShaderStageFlagBits                       stage;
16093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkShaderModule                              module;
16103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    const char*                                 pName;
161104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
161304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
161504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
1616b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    stride;
161765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkVertexInputRate                           inputRate;
161804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
162104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
162204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
162304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1624b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    offset;
162504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
162904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1630a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
163103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
163303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
163404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1640a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineInputAssemblyStateCreateFlags     flags;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
164404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1648a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineTesselationStateCreateFlags       flags;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
165004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
165365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       x;
165465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    float                                       y;
16555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
16625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
16675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
16725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
167704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
167804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1679a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineViewportStateCreateFlags          flags;
168004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
168504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
16893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineRasterizationStateCreateFlags     flags;
1690ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
169265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkPolygonMode                               polygonMode;
1693c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VkCullModeFlags                             cullMode;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
1696a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor;
16975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
1698a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor;
16995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
17003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
170104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
170304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1705a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineMultisampleStateCreateFlags       flags;
1706091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       rasterizationSamples;
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
17095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1710acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1711acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
171565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 failOp;
171665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 passOp;
171765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkStencilOp                                 depthFailOp;
171865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCompareOp                                 compareOp;
171965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask;
172065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask;
172165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
172304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
172504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1727a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDepthStencilStateCreateFlags      flags;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
17315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
17355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
17365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
173704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
174165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcColorBlendFactor;
174265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstColorBlendFactor;
174365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   colorBlendOp;
174465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               srcAlphaBlendFactor;
174565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendFactor                               dstAlphaBlendFactor;
174665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkBlendOp                                   alphaBlendOp;
174765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkColorComponentFlags                       colorWriteMask;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
174904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1753a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineColorBlendStateCreateFlags        flags;
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
1758b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    float                                       blendConstants[4];
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1764a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineDynamicStateCreateFlags           flags;
17655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
17705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
1772a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineCreateFlags                       flags;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
177404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
177504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
177604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
17793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
1795a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
180004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
180303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset;
180403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size;
180504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
180804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
180904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1810a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineLayoutCreateFlags                 flags;
181103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
181204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
181304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
181504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
181604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
181804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
181904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1820a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSamplerCreateFlags                        flags;
182123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    magFilter;
182223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    minFilter;
182323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerMipmapMode                         mipmapMode;
182423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeU;
182523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeV;
182623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkSamplerAddressMode                        addressModeW;
182704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
182804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
182904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
183004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
18345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
1838091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    uint32_t                                    binding;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1848a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDescriptorSetLayoutCreateFlags            flags;
184903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindingCount;
18503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    const VkDescriptorSetLayoutBinding*         pBinding;
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
185503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
185665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1861fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
18625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
186365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    poolSizeCount;
186465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    const VkDescriptorPoolSize*                 pPoolSizes;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
186604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
1868fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1869fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1870fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
187103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    setLayoutCount;
1872fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
18733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
1874fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
18753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
1876a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1877a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1878a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1879a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1880a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
18813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
18825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
188804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
188904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
18903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
18913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
18923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
189303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1895fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1896fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1897fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
189804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
189904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
19063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDescriptorSet                             dstSet;
19073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstBinding;
19083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstArrayElement;
190903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorCount;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1915a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFramebufferCreateFlags                    flags;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
19185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
1925a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkAttachmentDescriptionFlags                flags;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
1927091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples;
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
1943a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
194403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    inputAttachmentCount;
19455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
194603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    colorAttachmentCount;
19475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
19485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
1949c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    const VkAttachmentReference*                pDepthStencilAttachment;
195003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    preserveAttachmentCount;
19515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
195204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
195304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
195504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
19563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstSubpass;
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
19583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask;
19593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
19603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
1961dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
196604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1967a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkRenderPassCreateFlags                     flags;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
197004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
197704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolCreateFlags                    flags;
1980a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex;
19813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
198204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
198404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
198504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool                               commandPool;
19873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferLevel                        level;
198803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bufferCount;
19893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
199004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferBeginInfo {
199204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
199304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
19943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferUsageFlags                   flags;
199504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
199704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
19983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
199904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
200104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
20023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset;
2003b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size;
200404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
200504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
200765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageAspectFlags                          aspectMask;
20085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
2009a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
201165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
20125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
201465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
201504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
201665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
201804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
201904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
202265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
202565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
20273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkExtent3D                                  dstExtent;
202804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
202904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
203465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    imageSubresource;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
20405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
20415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
20425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
204304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
20465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
20475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
20485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
20495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2051ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
2052ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
2053ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2054ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2056ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2057ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2058ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2059ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2060ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2062a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2063a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
20643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    layerCount;
2065a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
206865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    srcSubresource;
206904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
207065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkImageSubresourceLayers                    dstSubresource;
20713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkOffset3D                                  dstOffset;
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
207304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassBeginInfo {
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
208304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
208404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
208704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
20883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
20893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
209004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
20913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
209204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
209304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
209404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
209904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
210004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
21013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
210404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
210504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
210604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
211204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
211304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
211404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
21163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageMemoryBarrier {
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
212004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
21213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
21223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
212504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
21263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    dstQueueFamilyIndex;
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
213004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryBarrier {
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
213304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
21343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               srcAccessMask;
21353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkAccessFlags                               dstAccessMask;
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
213704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21393fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
21403fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2142606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2143606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2144a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2145606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
214603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2147606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
214804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
214904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
21503fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
21513fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
215203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
215403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
215503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2156606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2157b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
215804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
215904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
21603fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
21613fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
21623fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
21633fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
21643fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
21653fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2166606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
21673fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
21683fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2169606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2170606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
217103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2172091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2173a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
21743fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
21753fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
217604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
217704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
217804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
21793fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
21803fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
21813fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
21823fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
218304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
218404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
218504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
21863fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
21873fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2188a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
21893fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
21903fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
21913fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
21923fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
21933fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
21943fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2195606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
21963fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
21973fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
21983fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
21993fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
22003fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
22013fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2202a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
22033fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
22043fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22053fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22063fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
22073fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
22083fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
22093fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
22103fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
22113fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
22123fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
22133fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
22143fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2215fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
22163fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
221703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2218b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
22193fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
22203fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
22213fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
22223fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2223606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
22243fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
222565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
222665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
22273fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
222865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
22293fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
22303fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
22313fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
22323fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
22333fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
22343fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
22353fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
22363fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
22373fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
22383fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
223965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
224065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
224165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
22423fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
22433fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
22443fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
22453fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
22463fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
22473fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
22483fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
22493fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
22503fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
22513fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
22523fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
22533fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
22543fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
22553fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
22563fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
22573fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
22583fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22593fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22603fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
22613fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
22623fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
22633fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
22643fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
22653fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
226665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags);
226765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry);
22683fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
226965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry);
22703fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
22713fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
227265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
227365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
22743fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
22753fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
227604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
227804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
22803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
228403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
22853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
228704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
228904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2292606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2296606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2301a9e5703e380d9d7f096d177adb792621a1e8d4baJesse HallVkResult VKAPI vkGetPhysicalDeviceImageFormatProperties(
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
230604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
23075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2310606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2314606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
231504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
231603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
23175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2319606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
232104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
232404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
23343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
233803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
23393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
234204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
234303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
234504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
234804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
234903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
235303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2361606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
236804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2369a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2370b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
237804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23793fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateMemory(
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
23823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
23833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
23883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
238904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
23923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
239404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2412606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
24203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
24263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2429606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2434606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2439606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
244203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2445606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2449091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
245203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2455a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkQueueBindSparse(
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
245703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2459a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
24643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
24703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
24913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
24973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
25023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
25083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
25253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
25313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2538a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2540a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
25463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
25523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
25573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
25633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
25683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
25743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2576606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
25853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
25913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
25963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
26023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
26073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
26133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2618a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
263003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
26323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
263803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
26403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
26463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
26513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
26573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
26623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
26683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
26733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
26793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
26843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
26903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2694fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2695fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26973fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateDescriptorSets(
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
27005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
270503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2710b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2712b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
27183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
27243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
272604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
27293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
27353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2737606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
27453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
27463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
274704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
275304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
27563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27583fbc856120217247c72fb5ed88500000f3881c45Jesse HallVkResult VKAPI vkAllocateCommandBuffers(
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
27613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2763fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hallvoid VKAPI vkFreeCommandBuffers(
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
276603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
27673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
27703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
27743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
27773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
27813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
27863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
27885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
27895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
27913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
27935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
27945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
27963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
27975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
27985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
28003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2801a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
28025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2803a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
280404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
28063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2807b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
28103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
28125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
28145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
28153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
281765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
28185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
28203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
282265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
28235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
28245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
28253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
282765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
28303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
283403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
28403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
28463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
28533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
28555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
28575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
28603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
28683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
287103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
28753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
287803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
28823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
28883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
28933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
28953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
29003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
290504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
29093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
291623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
29193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
29273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
29353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
29423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
2945b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
29493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
29573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
29605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2964ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
29653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2966ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2967ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2969a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
29723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
29813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
29863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
29913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
29953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
29963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
30003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3003dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
30043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const void* const*                          ppMemoryBarriers);
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
30083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
301065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry,
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
30143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
301665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
30193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
302104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
302404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
30253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30266f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3027a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
302865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    entry);
302904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
303004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
30313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
30353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3037a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
303904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
30413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
304403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
304503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
304604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
304704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
30493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
305165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
305204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
30543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
305704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
30583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
306004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
30613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    commandBuffersCount,
30633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
306404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3066091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
30673fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
30681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_REVISION           22
30703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NUMBER   1
30713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
3072a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_ERROR_SURFACE_LOST_KHR         ((VkResult)(int)0xc0000400)
30731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformKHR {
30761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_KHR = 0,
30771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
30781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
30791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_KHR = 3,
30801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_KHR = 4,
30811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_KHR = 5,
30821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_KHR = 6,
30831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_KHR = 7,
30841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_KHR = 8,
30851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_BEGIN_RANGE = VK_SURFACE_TRANSFORM_NONE_KHR,
30861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_END_RANGE = VK_SURFACE_TRANSFORM_INHERIT_KHR,
30873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SURFACE_TRANSFORM_RANGE_SIZE = (VK_SURFACE_TRANSFORM_INHERIT_KHR - VK_SURFACE_TRANSFORM_NONE_KHR + 1),
30881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
30891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformKHR;
30901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
30921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
30931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
30961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
30971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
30981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
31001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
31011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
31021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
310303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
31041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
310503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
31063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
31071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
31081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
31091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
31121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
31131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
31141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
31151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
31161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
31171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
31181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
31191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
31201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
31211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
31221356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
31231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3125a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3126a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3127a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3128a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3129a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3130a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3131a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
31323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
31331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
31341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageCount;
31351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  currentExtent;
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minImageExtent;
31371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxImageExtent;
31381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       currentTransform;
3140a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagsKHR                    supportedCompositeAlpha;
31411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageArraySize;
31421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           supportedUsageFlags;
3143b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
31441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
31461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    format;
31471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             colorSpace;
31481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
31491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3150b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3151b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef void (VKAPI *PFN_vkDestroySurfaceKHR)(VkInstance  instance, VkSurfaceKHR  surface);
3152b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3153b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3154b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3155b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3156b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3157b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#ifdef VK_PROTOTYPES
3158b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hallvoid VKAPI vkDestroySurfaceKHR(
3159b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkInstance                                   instance,
3160b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                 surface);
3161b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3162b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
3163b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3164b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3165b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3166b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3167b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3168b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3169b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3170b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3171b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3172b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3173b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfaceFormatsKHR(
3174b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3175b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3176b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3177b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3178b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3179b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse HallVkResult VKAPI vkGetPhysicalDeviceSurfacePresentModesKHR(
3180b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3181b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3182b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3183b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3184b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3185b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3186091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
31873fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3188b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3189a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall#define VK_KHR_SWAPCHAIN_REVISION         65
31903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
31913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3192b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
3193b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
31943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_IMAGE_LAYOUT_PRESENT_SRC_KHR   ((VkImageLayout)(int)0xc0000802)
3195b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
3196b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
3197b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
31983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
31991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3200a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
32011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface;
32021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
32031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    imageFormat;
32041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             imageColorSpace;
32051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageExtent;
32061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           imageUsageFlags;
32071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       preTransform;
3208a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkCompositeAlphaFlagBitsKHR                 compositeAlpha;
32091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    imageArraySize;
32101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSharingMode                               sharingMode;
321103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    queueFamilyIndexCount;
32121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             pQueueFamilyIndices;
32131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR                            presentMode;
32141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                              oldSwapchain;
32151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    clipped;
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
32191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3220a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
3221b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    waitSemaphoreCount;
3222b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
32231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    swapchainCount;
322403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const VkSwapchainKHR*                       pSwapchains;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             imageIndices;
3226a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VkResult*                                   pResults;
32271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
32281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32301356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSwapchainKHR)(VkDevice  device, const VkSwapchainCreateInfoKHR*  pCreateInfo, VkSwapchainKHR*  pSwapchain);
32311356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef void (VKAPI *PFN_vkDestroySwapchainKHR)(VkDevice  device, VkSwapchainKHR  swapchain);
323203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint32_t*  pSwapchainImageCount, VkImage*  pSwapchainImages);
32331356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkAcquireNextImageKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint64_t  timeout, VkSemaphore  semaphore, VkFence  fence, uint32_t*  pImageIndex);
32341356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkQueuePresentKHR)(VkQueue  queue, VkPresentInfoKHR*  pPresentInfo);
32351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateSwapchainKHR(
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*              pCreateInfo,
32401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR*                              pSwapchain);
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hallvoid VKAPI vkDestroySwapchainKHR(
32431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain);
32451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32461356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSwapchainImagesKHR(
32471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
324903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                    pSwapchainImageCount,
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImage*                                     pSwapchainImages);
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkAcquireNextImageKHR(
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
32541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
32551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint64_t                                     timeout,
32561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSemaphore                                  semaphore,
32571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFence                                      fence,
32581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pImageIndex);
32591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32601356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkQueuePresentKHR(
32611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkQueue                                      queue,
32621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentInfoKHR*                            pPresentInfo);
32631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3265091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
32663fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
32673fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
32681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_REVISION           18
32703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NUMBER   3
32713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
32721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
3273a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
32741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
32781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
32811356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
32821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
32841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display;
328503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    const char*                                 displayName;
32861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
32871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalResolution;
32881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
32891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    planeReorderPossible;
3290a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistentContent;
32911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
32921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  visibleRegion;
3295a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    refreshRate;
3296a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
32971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
3300a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
33021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
33041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3305a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
3306a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeParametersKHR                  parameters;
33071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
33081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
33101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
33111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minSrcPosition;
33121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxSrcPosition;
33131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minSrcExtent;
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxSrcExtent;
33151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minDstPosition;
33161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxDstPosition;
33171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minDstExtent;
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxDstExtent;
3319a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
33201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3322b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDisplayKHR                                currentDisplay;
3323b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    currentStackIndex;
3324b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3325b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
33263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
33271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3328a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
33291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
33301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex;
33311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeStackIndex;
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       transform;
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    float                                       globalAlpha;
33341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 alphaMode;
33351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageSize;
3336a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
33371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
333903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3340a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
3341a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayKHR* pProperties);
334203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
33431356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
3344a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3345a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkSurfaceKHR* pSurface);
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
33491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
335003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
33511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
33521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3353a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3354a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3355a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3356a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3357a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3358a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneSupportedDisplaysKHR(
3359a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3360a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3361a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayKHR*                               pProperties);
3362a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
33631356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetDisplayModePropertiesKHR(
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
336603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
336703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
33681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33691356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateDisplayModeKHR(
33701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
33711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
33721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
33731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
33741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3375a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkGetDisplayPlaneCapabilitiesKHR(
33761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
3377a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayModeCreateInfoKHR                  mode,
33781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3379a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3380a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3381a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateDisplayPlaneSurfaceKHR(
3382a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3383a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
3384a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
33851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3387091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
33883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 7
33893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
33903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
33911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
33921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
33931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
33941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySwapchainCreateInfoKHR {
33961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3397a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
33981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
33991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplaySwapchainCreateInfoKHR;
34001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
3403a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    const void*                                 pNext;
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    srcRect;
34051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    dstRect;
3406a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkBool32                                    persistent;
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
34081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3411a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3412091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
34131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XLIB_SURFACE_REVISION      4
34163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
3417091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
34181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3419a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
342065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
34211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
3423a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkResult VKAPI vkCreateXlibSurfaceKHR(
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Display*                                    dpy,
34261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      window,
34271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3429a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXlibPresentationSupportKHR(
3430a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3431a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3432a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
343365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
34341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3435a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
34361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3438091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
34391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
34401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_REVISION       4
34423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
34433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
34441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3445a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
3446a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
34471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34491356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateXcbSurfaceKHR(
34501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_connection_t*                           connection,
34521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                window,
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3454a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3455a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceXcbPresentationSupportKHR(
3456a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3457a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3458a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3459a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
34601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
34621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3464091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
34651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
34661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_REVISION   3
34683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
34693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
34701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34711356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
3472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
34731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34751356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWaylandSurfaceKHR(
34761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_display*                          display,
34781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_surface*                          surface,
34791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3480a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3481a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3482a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3483a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3484a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
34851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
34871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3489091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
34911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_REVISION       3
34933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
34943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
34951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34961356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
3497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
34981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35001356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateMirSurfaceKHR(
35011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirConnection*                              connection,
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirSurface*                                 mirSurface,
35041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3505a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3506a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceMirPresentationSupportKHR(
3507a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3508a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3509a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
35101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
35121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3514091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
35151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
35161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_REVISION   2
35183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
35193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
35201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
35211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
35221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35231356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, VkSurfaceKHR* pSurface);
35241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35261356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateAndroidSurfaceKHR(
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    ANativeWindow*                              window,
35291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
35301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
35321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3534091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_REVISION     3
35383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
35393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35411356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
3542a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
35431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
35451356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWin32SurfaceKHR(
35461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HINSTANCE                                   hinstance,
35481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HWND                                        hwnd,
35491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3550a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3551a64292517b1876c4bbe5d3e62c577812f40bd922Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceWin32PresentationSupportKHR(
3552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3553a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
35541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
35561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
355704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
355804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
355904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
356004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
356104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3562