vulkan.h revision e2948d83f352b9a093252a06757f76a88f5355d3
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/*
9e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall** Copyright (c) 2015-2016 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) \
41e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    (((major) << 22) | ((minor) << 12) | (patch))
4204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// Vulkan API version supported by this file
44e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 3)
455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
46e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
47e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
48e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
50a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
51f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
5504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
57a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
5904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#else
603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
6104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
62f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
6304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkFlags;
66a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef uint32_t VkBool32;
675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint64_t VkDeviceSize;
685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkSampleMask;
6904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkInstance)
7104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkPhysicalDevice)
7204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkDevice)
7304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkQueue)
743fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
753fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_HANDLE(VkCommandBuffer)
763fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
773fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
783fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
793fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
803fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
813fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
823fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
833fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
843fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
853fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
863fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
873fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
883fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
893fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
903fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
913fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
923fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
933fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
943fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
9504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_LOD_CLAMP_NONE                 1000.0f
975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_MIP_LEVELS           (~0U)
985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_ARRAY_LAYERS         (~0U)
995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_WHOLE_SIZE                     (~0ULL)
1005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_ATTACHMENT_UNUSED              (~0U)
1015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_TRUE                           1
1025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_FALSE                          0
1035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_QUEUE_FAMILY_IGNORED           (~0U)
1045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_SUBPASS_EXTERNAL               (~0U)
10565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
10665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_UUID_SIZE                      16
1075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
10965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_EXTENSION_NAME_SIZE        256
11065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_DESCRIPTION_SIZE           256
1115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
113543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineCacheHeaderVersion {
114543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
115543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
116543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
117543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
118543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
119543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineCacheHeaderVersion;
120543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
1213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkResult {
12204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SUCCESS = 0,
123a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_NOT_READY = 1,
124a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_TIMEOUT = 2,
125a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_SET = 3,
126a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_RESET = 4,
127a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_INCOMPLETE = 5,
1285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
13004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ERROR_INITIALIZATION_FAILED = -3,
1315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_DEVICE_LOST = -4,
1325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_MEMORY_MAP_FAILED = -5,
1335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_LAYER_NOT_PRESENT = -6,
1345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
135606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_FEATURE_NOT_PRESENT = -8,
136606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
137091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_ERROR_TOO_MANY_OBJECTS = -10,
138a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
139bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_SURFACE_LOST_KHR = -1000000000,
140563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
141bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_SUBOPTIMAL_KHR = 1000001003,
142bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
143bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
144543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
145a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
14604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
147a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
14804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
14904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
15004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStructureType {
15204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
153c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
154c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
155c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
156c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
157f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
158c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
159c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
160c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
161c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
163c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
165c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
167c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
186f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
192f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1933dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1943dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1953dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1963dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1983dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
2003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
201bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
202bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
203bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
204bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
205bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
206f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
207f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
208f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
209f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
210f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
211f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
212543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000,
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
214f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
215f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
21604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
2203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
2213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
2223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
2233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
2243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
2253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
2273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
2283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
2293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
23003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
2313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
2323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
2333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
2363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
2373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
23804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
24004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
241f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
242f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
243f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
244f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
245f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
246f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
247f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
248f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
25204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
25304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
25404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
25504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
25604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
25704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
25804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
25904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
26004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
26104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
26204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
26304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
26404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
26504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
26604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
26704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
26804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
26904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
270f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UNORM = 30,
271f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SNORM = 31,
272f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_USCALED = 32,
273f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 33,
274f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UINT = 34,
275f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SINT = 35,
276f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SRGB = 36,
277f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 37,
278f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 38,
279f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 39,
280f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 40,
281f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 41,
282f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 42,
283f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 43,
284f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 44,
285f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 45,
286f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 46,
287f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 47,
288f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 48,
289f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 49,
290f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 50,
291f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
292f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
293f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
294f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
295f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
296f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
297f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
298f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
299f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
300f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
301f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
302f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
303f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
304f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
305f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
306f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
307f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
308f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
309f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
310f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UNORM = 70,
311f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SNORM = 71,
312f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_USCALED = 72,
313f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SSCALED = 73,
314f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UINT = 74,
315f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SINT = 75,
316f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SFLOAT = 76,
317f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UNORM = 77,
318f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SNORM = 78,
319f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_USCALED = 79,
320f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SSCALED = 80,
321f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UINT = 81,
322f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SINT = 82,
323f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SFLOAT = 83,
324f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UNORM = 84,
325f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SNORM = 85,
326f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_USCALED = 86,
327f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 87,
328f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UINT = 88,
329f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SINT = 89,
330f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 90,
331f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 91,
332f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 92,
333f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 93,
334f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 94,
335f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 95,
336f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 96,
337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_UINT = 98,
339f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SINT = 99,
340f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SFLOAT = 100,
341f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_UINT = 101,
342f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SINT = 102,
343f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SFLOAT = 103,
344f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_UINT = 104,
345f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SINT = 105,
346f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 106,
347f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 107,
348f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 108,
349f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
350f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_UINT = 110,
351f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SINT = 111,
352f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SFLOAT = 112,
353f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_UINT = 113,
354f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SINT = 114,
355f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SFLOAT = 115,
356f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_UINT = 116,
357f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SINT = 117,
358f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 118,
359f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_UINT = 119,
360f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SINT = 120,
361f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
362f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
363f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
364f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM = 124,
365f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
366f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT = 126,
367f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_S8_UINT = 127,
368f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 128,
369f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 129,
370f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
371f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
372f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
373f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
374f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
375f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_UNORM_BLOCK = 135,
376f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_SRGB_BLOCK = 136,
377f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_UNORM_BLOCK = 137,
378f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_SRGB_BLOCK = 138,
379f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_UNORM_BLOCK = 139,
380f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_SNORM_BLOCK = 140,
381f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_UNORM_BLOCK = 141,
382f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_SNORM_BLOCK = 142,
383f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
384f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
385f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_UNORM_BLOCK = 145,
386f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_SRGB_BLOCK = 146,
387f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
388f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
389f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
390f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
391f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
392f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
394f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
395f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
396f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
397f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
398f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
399f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
400f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
401f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
402f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
403f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
404f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
409f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
410f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
411f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
412f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
415f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
416f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
417f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
422f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
423f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
42504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
427f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
42804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
42904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
43004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
43204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
43304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
43404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
43504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
43604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
4373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
43804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
43904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
44004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
442c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
443c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
444c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
445c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
4463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
44704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
44804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
44904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
45104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
45204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
45304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
45404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
45504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
45604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
45704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
4583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
45904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
46004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
46104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
46304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
46404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
465a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
46604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
467a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
4683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
46904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
47004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
47104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
47304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
47404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
47504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
47604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
4773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
47804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
47904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
48004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
4825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
4835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
4845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
4855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
4865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
4875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
4883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
4893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
4905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
491bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
4925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
4935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
4943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
4955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
4965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
49904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
50004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
50104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
50204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
50304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
50404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
50604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
50704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
5083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
50904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
51104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
51365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
51465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
51565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
51665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
51765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
51865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
51965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
52065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
52165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
52265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
52365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
52465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
52504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
52765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
52865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
52965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
53065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
53165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
53265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
53365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
53704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
546091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
548091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
549091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
55465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
55565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
55665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
55765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
55865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
55965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
56065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
56165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
5643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
5653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
5663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
5673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
5683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
5763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
5793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
5833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
58404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
58504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
58604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
58904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
59004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
5913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
5923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
5943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
5953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
59604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
5973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
5983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
59904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
6083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
6123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
61704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
6213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
62204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
62304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
62404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
62665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
62765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
62865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
62965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
63065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
63165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
63265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
63365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
63465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
63565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
63665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
63765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
63865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
63965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
64065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
64165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
64265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
64365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
64465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
64565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
64665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
64765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
64865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
64965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
65004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
65204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
65304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
65404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
65604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
65704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
65804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
6593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
66004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
66104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
66204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
6645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
6655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
6665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
6675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
6685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
6695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
6705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
6715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
6725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
6735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
6745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
6765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
6775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
6785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
6793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
68023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
68123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
68223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
68323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
6843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
68523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
68623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
68704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
6893dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
6903dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
6913dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
69223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
6933dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
69423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
69523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
698c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
699c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
700c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
701c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
702c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
703c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
704c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
7053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
70623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
70723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
7183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
72004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
72704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
72804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
73004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
73104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
73204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
73304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
73404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
73504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
7363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
74104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
74504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
7463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
74704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
74804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
74904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
7553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
760c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
761c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
762c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
763c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
7643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
76704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
7693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
7703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
7713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
7723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
7733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
7743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
7753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
77804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
7823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
78765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
78865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
78965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
79065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
79165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
79265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
79365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
795a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
79604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
79804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
80104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
80204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
80304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
80404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
80504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
80604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
8093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
81033faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
81304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
8153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
81704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
82204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
82504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
8275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
8365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
84965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
850b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
855d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
856d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
857d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
858d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
859d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
86004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
86104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
864d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
867a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
868a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
869543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
870543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
871543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
872543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
873543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
874543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
875543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
876543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
877543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
878543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
879543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
880543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
881543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
882543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
883543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
884543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
885543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
886543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
887543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
888543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
889543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
893a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
894a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
895a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
896a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
897a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
8983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
899a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
9003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
901b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
902b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
903b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
906091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
907091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
908091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
909091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
91304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
91404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
91504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
91704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
91904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
921ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
922ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
923ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
924ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
925ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
926ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
927ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
928ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
929ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
930ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
931ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
93204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
93404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
93604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
93704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
93804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
93904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
94004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
94104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
94204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
944a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
945a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
946a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
947a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
948a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
949a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
9503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
9513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
9523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
95304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
95404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
95504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
95604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
95704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
962a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
9635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
96404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
9653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
9683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
9693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
9703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
9713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
9723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
9733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
9743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
9753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
976a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
977a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
978a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
979a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
980a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
981a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
982c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
983a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
984a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
985a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
986a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
9873dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
988a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
9893fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
990c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
9913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
992c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
993c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
994c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
995c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x3,
996c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
997c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
998a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
999a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1000a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1001a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
10023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
100365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
100465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
100565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
100665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
100765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
100865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1009a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1010a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
101104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1012a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1013a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1016fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1017fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1018fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1019fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1020a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1021a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1022fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
10233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
10245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
10255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
10265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
102804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
10303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
10313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
10323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
10333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
10343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
10353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
10363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
10373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
10383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
10393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
10403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
10413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
10423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
10433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
10443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
10453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
10463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
10473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
10483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
10493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
10503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1051dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1052dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1053dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1054dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
10553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
10563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
10573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
10583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
10593fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
10623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
10643fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
10673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
10683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
10693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
10703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
10713fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
107204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1073f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1074f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1075f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1076f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1077f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
10783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
10793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
10803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
10813fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
108204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
10845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1086c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x3,
10875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
108904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1090e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
10913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
10933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
10943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
109503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1096e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
10973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
10983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
10993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
11013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1103e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
11043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
110604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1107e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
11083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
111203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1113e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
11143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
111803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1119e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
11205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1125563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1127563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1128563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
11295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
11305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1132563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1133563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1134563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1135563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1136563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1137563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1138563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1139563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
114004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
114104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1143563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1144563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1145563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1148563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
11493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
115003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
11513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1152563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1156563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1157563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1162563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1163563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1164563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1165563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1171563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1172563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1173563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1174563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1175563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1178563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1179563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1180563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1181563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1182563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1183563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1184563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1187563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1188563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1189563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1193563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1194563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1195563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1196563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1200563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1205563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1206563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
120804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1210563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
121404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1216563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1217563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1218563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
12195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
12205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1226563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1240563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1241563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1242563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1264563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1265563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1266563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1275563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1276563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1282563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1283563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1284563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1287563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1288563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1289563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1290563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1291563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1292563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1296563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1297563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1298563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1303563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1304563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1305563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1306563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1307563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1308563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1309563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1312563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1313563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1319563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1320563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1321563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1332563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
133604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
133704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
13445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
13455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
13635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
136404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
136804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
136904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
137304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
137404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1376563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1396563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1397563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1398563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1410563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1413563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1420563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1421563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1422563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1426a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1427a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
14283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
14333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
145304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
145404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1458563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1466563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1467563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1469a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1476a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
14773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1481a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1491563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1492563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1500563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1502a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1503a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1505563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1506563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1507563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1513a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1514a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1515a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1516a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1517a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1518a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1519a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1520a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1521a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1522a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1523a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1524a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1526563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1528563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1538563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1539563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1540563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1546563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1547563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
155104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1553563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1557563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1558563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1559563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1565563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1569563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1570563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1578563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1579563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1580563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1581563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1584563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1585563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1586563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1588563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1592563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1593563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1596563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1600563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1601563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1602563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1603563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
160465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1607563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
161304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1615563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1616563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1617563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1618563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1619563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1620563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
162304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
162404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1626563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1627563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1628563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1629563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
163104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1634563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1635563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1636563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1637563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1638563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
163904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1642563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1648563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1649563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1650563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1651563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1655563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1656563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
166204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
166304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1666563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1667563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
166804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
166904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1671563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1672563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1674563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
167504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
167604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
167804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
167904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1680a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
168103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
168303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
168504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1688563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1689563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1690563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1699563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
170104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1705563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1707563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1708563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
17095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
17105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1712563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1713563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
17145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
17155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1717563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1718563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
17195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
17205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
1722563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
1723563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
17245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
17255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
1727563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
1728563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
1729563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
1730563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
1731563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
1732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
1733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
1737563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1738563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1739563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
1740563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
1741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
1742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
1743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
1744563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
1745563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
1746563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
1747563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
1748563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
1749563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
17503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
1753563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
1754563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
1755563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
1756563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
1757563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
1758563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
1759563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
1760563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
1761563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
1766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
1767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
1768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
1769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
1770563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
1771563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1777563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
1778563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
1779563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
1781563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
1782563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
1783563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
1785563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
1786563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
1790563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
1791563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
1792563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
1793563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
1794563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
1795563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
1796563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
1797563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
1801563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
1802563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
1803563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
1804563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
1805563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
1806563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
1807563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
1808563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
180904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
181004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
1812563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
1813563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
1814563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
1815563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
1816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
18175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
18185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
1820563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
1821563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
1822563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
1824563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
1825563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
1826563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
1827563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
1828563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
1829563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
1830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
1831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
1832563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
1833563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
1834563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
1835563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
1836563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
1837563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
1838563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
1842563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
1845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
1846563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
1847563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
1848563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
1852563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1853563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
1854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
185504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
1858563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1859563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1860563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
1863563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
1864563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
186604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
1868563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
1869563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
1870563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
1871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
1872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
1873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
1874563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
1875563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
1876563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
1877563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
1878563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
1879563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
1880563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
1881563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
1882563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
1883563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
1884563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
1885563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
188704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
1891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
1892563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1893563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
189504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
1901563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
190765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
1910563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1911563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1912563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
1915563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
1919563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1920563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1921563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
1922563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
19243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
1925fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
19263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
1927563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
1928563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
1930a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1931a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
19323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
1933563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
1934563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1935563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
19365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
19375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1941563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
1942563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
1943563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
1944563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
1945563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
1946563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
1947563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
1948563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
194904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
195004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
1952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1954563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
1955563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
1956563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
1957563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
1958563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
1959563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
1960563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
196104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
1964563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1965563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1966563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
1967563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
1968563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
1969563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
1970563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
1971563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
1972563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
1976563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
1977563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
1978563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
1979563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
1980563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
1981563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
1983563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
1984563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
198504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
1988563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
1989563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
199004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
199104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
1993563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
1994563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
1995563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
1997563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
1998563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
1999563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2000563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2001563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2002563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
200304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
200404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2006563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2007563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2008563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2009563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2010563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2011563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2012563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
201304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2018563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2019563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2020563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2023563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2024563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2028563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2029563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2030563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2031563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
20323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2037563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2038563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2039563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
20403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20423dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2043563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2044563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2045563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2046563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2049563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2050563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
20513dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
20523dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
20533dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2054563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2056563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2057563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
20583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
205904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2061563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2062563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2063563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
206404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
206504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2067563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2068563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2069563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
207165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
20725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2074563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2075563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2076563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2077563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2078563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2082563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2083563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2084563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
208704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2089563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2090563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2091563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2092563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2094563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2098563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2104563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2105563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
21065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
21075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2109563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2110563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2111ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2112ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2116563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2117ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2118ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2120563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2121563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2123a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2127563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2128563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2129563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2130563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21333dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2134563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2135563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2136563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2137563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
21383dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
213904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2141563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2142563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2143563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2144563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2145563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2148563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2149563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
215004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
215104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21523dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2156563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2157563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2162563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
21633dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
21643dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
21653dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2171563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2172563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
21733dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
21743dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
21753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2178563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
21793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
218004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2182563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2183563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2184563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
21873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
218804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2193563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
21943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
219504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
219604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2197e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2198e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2199e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2200e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2201e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2202e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2203e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2204e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2205e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2206e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2207e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2208e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2209e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2210e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2211e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2212e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2213e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2214e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2215e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2216e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2217e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2218e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2219e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2220e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2221e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2222e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2223e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2224e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2225e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2226e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2227e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2228e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2229e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2230e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2231e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2232e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2233e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2234e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2235e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2236e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2237e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2238e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2239e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2240e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2241e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2242e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2243e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2244e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2245e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2246f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2247e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2248e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2249e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2250e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2251e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2252e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2253e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2254e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2255e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2256e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2257e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2258e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2259e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2260e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2261e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2262e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2263e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2264e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2265e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2266e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2267e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2268e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2269e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2270e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2271e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2272e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2273e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2274e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2275e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2276e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2277e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2278e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2279e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2280e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2281e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2282e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2283e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2284e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2286e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2287e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2288e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2289e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2290e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2291f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2292f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2293e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2294e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2295e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2296e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2297e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2298e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2299e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2300e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2301e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2302f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2303e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2304e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2305e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2306e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2307e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2308e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2309e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2310e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2311e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2312e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2313e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2314e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
2315e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2316e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2317e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2318e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2319e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2320e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2321e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
23223dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
23233dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
23243dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
23253dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2326f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
23273dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2328f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2329f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2330e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2331e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2332e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
23333dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2335563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2336e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
23383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
233904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2341e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
234203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
23433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2345e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
234604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
234804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2350e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2354e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
235604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2359e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
236104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
236304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
23655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2368e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2372e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
237403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
23755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
237804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
238304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2385e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
238804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2389e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
23923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
239404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
239603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
23973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2399e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
240103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
240504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
240703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
240904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2410e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
241103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
241204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2414e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
241603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2419e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2427a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2428b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2434e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2437e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
24403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
24413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2443e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2448e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2456e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2460e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2465e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
24673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
24683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
246904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2470e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2475e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
24783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2481e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
24843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
24853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2492e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2497e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
250003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2503e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2507091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
251003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2513e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
251503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2516a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2517a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2519e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
25223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2525e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
25283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2535e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2539e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2546e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
25493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2552e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
25553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2557e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
25603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2563e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
25663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2568e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2572e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2576e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2580e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
25833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2586e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
25893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2591e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2594f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2596a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2598a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2601e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
26043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2607e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
26103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2612e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
26153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2618e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
26213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2623e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
26263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2629e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
26323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2634e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2640e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
26433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2646e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
26493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2651e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
26543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2657e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
26603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2662e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
26653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2668e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
26713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2673e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2676a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2679e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2685e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
268803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
26903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2693e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
269603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
26983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2701e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
27043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2706e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
27093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2712e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
27153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2717e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
27203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2723e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
27263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2728e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
27313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2734e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
27373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
27423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2745e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
27483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2750e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2752fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2753fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2755e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
27585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2760e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
276303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2766e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2768b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2770b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2773e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
27763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2779e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
27823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2784e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
27873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2790e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
27933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2795e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2800e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
280104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
28033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
28043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2806e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
280704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2811e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2816e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
28193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2821e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
282403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
28253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2827e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
28283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2831e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
28323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2834e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
28353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2838e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
28393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2843e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
28443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2845f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
28465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
28475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
28485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2849e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
28503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2851f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
28525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
28535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
28545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2855e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
28563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
28585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2859e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
28603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2861a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
28625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2863a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2865e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
28663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2867b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2869e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
28703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
28725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2874e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
28753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
287765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
28785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2879e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
28803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
288265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
28835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2884e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
28853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
28865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
288765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2889e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
28903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
289403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2899e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
29003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2905e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
29063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2907f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2912e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
29133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
29155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
29165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
29175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2919e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
29203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
29225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
29235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
29255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2927e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
29283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
293103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2934e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
29353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
293803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2941e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
29423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2947e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
29483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2952e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
29533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2959e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
29603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2968e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
29693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
297623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2978e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
29793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
29813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
29823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2986e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
29873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
29903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2994e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
29953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3001e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
30023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3005b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3008e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
30093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
301504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3016e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
30173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
301904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
30205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
302104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3024e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
30253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3026ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3027ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
302804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3029a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
303004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3031e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
30323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
303704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
303904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3040e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
30413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
304404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3045e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
30463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
304904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3050e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
30513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
30563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30573dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
30583dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
30593dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
30603dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
30613dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
306204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3063e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
30643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
30663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3067dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
30683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
30693dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
30703dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
30713dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
30723dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
30733dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
307404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3075e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
30763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
307704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
30783dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
307904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
308004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3081e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
30823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
308304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
30843dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
308504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3086e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
30873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
308804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3089f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
309004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
309104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3092e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
30933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30946f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3095a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
30963dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
309704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3098e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
30993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
310004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3101f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
310204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
31033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3105a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
310604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
310704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3108e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
31093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
311104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
311203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
311303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3114f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
311504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3116e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
31173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
311965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
312004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3121e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
31223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
312404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3125e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
31263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
312704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3128e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
31293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31303dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
31313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
313204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
313304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3134091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
31353fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
313733faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
31383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
31421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
31431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
31453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
31461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
31471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
31481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
31501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
31511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
31521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
315303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
31541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
315503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
31563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
31571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
31581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
31591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3162f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
31639ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
31649ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
31659ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
31669ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
31679ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
31689ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
31699ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
31701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
31711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
31721356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
31731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3175a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3176a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3177a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3178a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3179a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3180a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3181a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
31823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3183563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3184563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3187563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3188563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3189563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3193b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
31941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3196563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
31981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
31991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3200b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3201f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3202e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3203e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3204e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3205e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3206b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3207563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3208e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3209f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3210f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
32110e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3212b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3213e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3214b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3215b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3216b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3217b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3218b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3219e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3220b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3221b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3222b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3223b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3224e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3225b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3226b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3227b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3228b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3229b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3230e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3231b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3232b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3233b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3234b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3235b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3236b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3237091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
32383fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3239b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3240543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     67
32413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3242b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3243f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3244f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
32453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
32761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3278f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3279f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3280f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3281f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3282f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
32831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3284563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3286f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3287f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
32880e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3289f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
32901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3291e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3292f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3293f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
32940e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
32951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3296e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3297f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3298f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3299f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3300f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3302e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3303f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3304f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3305f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3306f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3307f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3308f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
33091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3310e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3311f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3312f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
33131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3315091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
33163fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
33173fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3319543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
33203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
33211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3324f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3325f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3326f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3327f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
33281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
33299ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
33301356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
3331f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
33411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
33421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3346a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
33511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
33521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
33581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
33591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3370a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
33711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3374563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3375b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3376b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
33773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3380563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3381563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3382563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3388a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
33891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3391e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
33933dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3394e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
33950e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
33969ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
33970e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
33981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3399563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
34011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
340203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
34031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3405e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3406a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3407a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3408a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3409a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3410e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3411a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
34123dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3415a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3416e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
34171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
34181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
341903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
342003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
34211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
34231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
34251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
34260e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
34271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
34281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3429e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
34301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
34319ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
34321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3433a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3434a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3435e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3436a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3437a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
34380e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3439a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
34401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3442091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3443543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
34443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
34451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
34521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34559ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
34569ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3457563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
34589ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
34599ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
34609ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
34619ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
34629ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
34639ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
34649ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
34651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3466a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3467091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
34681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
34691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3470543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3471091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
34721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3473f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3474f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3475f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3481f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3482f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3483f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3484f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3485e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
34861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3487563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3488e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
34891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3490f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
34910e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
34921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3493a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3494e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3495a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3496a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
349865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
34991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3500a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
35011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3503091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
35041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
35051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3506543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
35073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
35081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3509f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3510f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3511f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3512563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3514563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3515563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3517f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3518f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3519f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3520f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3521e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
35221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3523563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3524e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
35251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3526f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
35270e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3529a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3531a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3532a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3533a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3534a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
35371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3539091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
35411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3542543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
35433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
35441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3545f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3546f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3547f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3552563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3553f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3554f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3555f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3556f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3557e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
35581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3559563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3560e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
35611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3562f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
35630e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3565a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3566e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3567a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3568a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3569a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
35701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
35721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3574091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
35751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
35761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3577543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
35783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
35791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3580f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3581f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3582f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3584563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3585563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3586563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3588f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3589f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3590f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3591f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3592e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
35931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3594563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3595e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
35961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3597f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
35980e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3600a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3601e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3602a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3603a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3604a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
36051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
36071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3609091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
36101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
36111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
361233faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
36133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
36141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3615f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3616f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3617f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3618563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3619563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3620563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
3621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    ANativeWindow*                    window;
3622f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3623f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3624f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3625f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3627563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3628e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
36291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3630f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
36310e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
36331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
36351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3637091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
36381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
36391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3640543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
36413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
36421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3643f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3644f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3645f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3647563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3648563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3649563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3650563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3651f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3652f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3653f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3654f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3655e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
36561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3657563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3658e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
36591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3660f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
36610e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3663a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3664e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3665a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3666a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
36671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
36691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3670e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
3671e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
3672e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3673e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  1
3674e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
3675e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3676e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3677e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
3678e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
3679e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
3680e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
3681e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
3682e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
3683e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
3684e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
3685e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
3686e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
3687e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
3688e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
3689e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
3690e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
3691e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
3692e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
3693e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
3694e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
3695e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
3696e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
3697e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
3698e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
3699e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
3700e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
3701e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
3702e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
3703e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
3704e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
3705e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
3706e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
3707e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
3708e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3709e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportErrorEXT {
3710e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
3711e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
3712e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportErrorEXT;
3713e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3714e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3715e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
3716e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3717e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3718e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
3719e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3720e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3721e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
3722e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
3723e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3724e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
3725e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
3726e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
3727e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
3728e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
3729e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
3730e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
3731e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
3732e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
3733e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3734e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3735e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
3736e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
3737e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
3738e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
3739e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
3740e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
3741e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
3742e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3743e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3744e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
3745e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
3746e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
3747e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3748e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
3749e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
3750e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
3751e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
3752e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3753e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
3754e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3755e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
3756e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
3757e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
3758e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3759e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3760e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
3761e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
3762e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
3763e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
3764e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
3765e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
3766e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
3767e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
3768e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
3769e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
3770e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
377104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
377204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
377304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
377404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
377504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3776