vulkan.h revision 14866bbeca1ebcda93f43a3352934889a9f37c2b
12676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VULKAN_H_
22676338dd692b7d1e1c276d82e6b0492db53ab2eJesse 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**
112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** Licensed under the Apache License, Version 2.0 (the "License");
122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** you may not use this file except in compliance with the License.
132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** You may obtain a copy of the License at
1404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall**     http://www.apache.org/licenses/LICENSE-2.0
1604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** Unless required by applicable law or agreed to in writing, software
182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** distributed under the License is distributed on an "AS IS" BASIS,
192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** See the License for the specific language governing permissions and
212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall** limitations under the License.
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** This header is generated from the Khronos Vulkan XML API Registry.
2604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
2804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_VERSION_1_0 1
3104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include "vk_platform.h"
3204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_MAKE_VERSION(major, minor, patch) \
34e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    (((major) << 22) | ((minor) << 12) | (patch))
3504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0)
382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall// Vulkan 1.0 version number
402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)
415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
42e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
43e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
44e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall// Version of this file
46289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_HEADER_VERSION 38
472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
49a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
50f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
5104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
5404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
56289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
5756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || 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
62289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
63f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
6404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkFlags;
67a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef uint32_t VkBool32;
685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint64_t VkDeviceSize;
695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkSampleMask;
7004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkInstance)
7204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkPhysicalDevice)
7304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkDevice)
7404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkQueue)
753fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
763fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_HANDLE(VkCommandBuffer)
773fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
783fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
793fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
803fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
813fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
823fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
833fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
843fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
853fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
863fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
873fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
883fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
893fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
903fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
913fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
923fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
933fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
943fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
953fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
9604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_LOD_CLAMP_NONE                 1000.0f
985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_MIP_LEVELS           (~0U)
995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_ARRAY_LAYERS         (~0U)
1005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_WHOLE_SIZE                     (~0ULL)
1015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_ATTACHMENT_UNUSED              (~0U)
1025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_TRUE                           1
1035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_FALSE                          0
1045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_QUEUE_FAMILY_IGNORED           (~0U)
1055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_SUBPASS_EXTERNAL               (~0U)
10665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
10765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_UUID_SIZE                      16
1085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
11065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_EXTENSION_NAME_SIZE        256
11165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall#define VK_MAX_DESCRIPTION_SIZE           256
1125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
114543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineCacheHeaderVersion {
115543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
116543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
117543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
118543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
119543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
120543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineCacheHeaderVersion;
121543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
1223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkResult {
12304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SUCCESS = 0,
124a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_NOT_READY = 1,
125a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_TIMEOUT = 2,
126a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_SET = 3,
127a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_RESET = 4,
128a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_INCOMPLETE = 5,
1295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
13104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ERROR_INITIALIZATION_FAILED = -3,
1325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_DEVICE_LOST = -4,
1335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_MEMORY_MAP_FAILED = -5,
1345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_LAYER_NOT_PRESENT = -6,
1355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
136606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_FEATURE_NOT_PRESENT = -8,
137606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
138091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_ERROR_TOO_MANY_OBJECTS = -10,
139a9e5703e380d9d7f096d177adb792621a1e8d4baJesse Hall    VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
14056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_ERROR_FRAGMENTED_POOL = -12,
141bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_SURFACE_LOST_KHR = -1000000000,
142563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
143bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_SUBOPTIMAL_KHR = 1000001003,
144bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
145bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
146543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
1472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ERROR_INVALID_SHADER_NV = -1000012000,
14856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
14904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
15056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
15104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
15204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
15304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStructureType {
15504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
156c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
157c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
158c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
159c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
160f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
161c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
162c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
163c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
167c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
169c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
170c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
171c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
189f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
195f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1963dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1983dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
2003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
2013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
2023dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
2033dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
204bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
205bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
206bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
207bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
208bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
209f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
210f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
211f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
212f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
213f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
214f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
2152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
2162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
2172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
2182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
2192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
22056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
22156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
22256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
223cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
224289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
225289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
226289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
227289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
2291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
2301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
2311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
2321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
2331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
2341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
2351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
2361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
2371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
238289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
239289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
240289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
241289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
242289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
243289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
244289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
24514866bbeca1ebcda93f43a3352934889a9f37c2bIan Elliott    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
24604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
247f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
248f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
2533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
2543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
2553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
2563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
2573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
2583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
2603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
2613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
2623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
26303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
2643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
2653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
2663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
2683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
2693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
2703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
27104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
27304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
274f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
275f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
276f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
277f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
278f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
279f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
280f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
281f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
28204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
28304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
28404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
28504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
28604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
28704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
28804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
28904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
29004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
29104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
29204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
29304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
29404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
29504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
29604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
29704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
29804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
29904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
30004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
30104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
30204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
303f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UNORM = 30,
304f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SNORM = 31,
305f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_USCALED = 32,
306f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 33,
307f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UINT = 34,
308f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SINT = 35,
309f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SRGB = 36,
310f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 37,
311f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 38,
312f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 39,
313f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 40,
314f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 41,
315f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 42,
316f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 43,
317f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 44,
318f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 45,
319f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 46,
320f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 47,
321f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 48,
322f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 49,
323f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 50,
324f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
325f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
326f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
327f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
328f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
329f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
330f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
331f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
332f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
333f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
334f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
335f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
336f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
339f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
340f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
341f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
342f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
343f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UNORM = 70,
344f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SNORM = 71,
345f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_USCALED = 72,
346f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SSCALED = 73,
347f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UINT = 74,
348f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SINT = 75,
349f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SFLOAT = 76,
350f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UNORM = 77,
351f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SNORM = 78,
352f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_USCALED = 79,
353f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SSCALED = 80,
354f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UINT = 81,
355f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SINT = 82,
356f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SFLOAT = 83,
357f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UNORM = 84,
358f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SNORM = 85,
359f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_USCALED = 86,
360f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 87,
361f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UINT = 88,
362f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SINT = 89,
363f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 90,
364f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 91,
365f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 92,
366f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 93,
367f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 94,
368f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 95,
369f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 96,
370f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
371f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_UINT = 98,
372f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SINT = 99,
373f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SFLOAT = 100,
374f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_UINT = 101,
375f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SINT = 102,
376f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SFLOAT = 103,
377f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_UINT = 104,
378f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SINT = 105,
379f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 106,
380f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 107,
381f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 108,
382f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
383f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_UINT = 110,
384f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SINT = 111,
385f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SFLOAT = 112,
386f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_UINT = 113,
387f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SINT = 114,
388f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SFLOAT = 115,
389f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_UINT = 116,
390f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SINT = 117,
391f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 118,
392f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_UINT = 119,
393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SINT = 120,
394f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
395f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
396f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
397f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM = 124,
398f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
399f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT = 126,
400f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_S8_UINT = 127,
401f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 128,
402f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 129,
403f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
404f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_UNORM_BLOCK = 135,
409f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_SRGB_BLOCK = 136,
410f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_UNORM_BLOCK = 137,
411f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_SRGB_BLOCK = 138,
412f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_UNORM_BLOCK = 139,
413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_SNORM_BLOCK = 140,
414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_UNORM_BLOCK = 141,
415f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_SNORM_BLOCK = 142,
416f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
417f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_UNORM_BLOCK = 145,
419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_SRGB_BLOCK = 146,
420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
422f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
423f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
425f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
427f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
428f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
429f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
430f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
431f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
432f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
433f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
434f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
435f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
436f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
437f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
438f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
439f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
440f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
441f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
442f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
443f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
444f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
445f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
446f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
447f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
448f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
449f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
450f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
451f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
452f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
453f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
454f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
455f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
456f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
457f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
460289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
46604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
467f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
468f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
46904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
47004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
47104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
47304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
47404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
47504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
47604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
47704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
4783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
47904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
48004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
48104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
483c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
484c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
485c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
486c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
4873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
48804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
48904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
49004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
49204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
49304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
49404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
49504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
49604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
49804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
4993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
50004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
50104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
50204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
50404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
506a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
50704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
508a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
5093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
51104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
51204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
51404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
51504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
51604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
51704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
5183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
51904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
52104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
5235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
5245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
5255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
5265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
5275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
5285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
5293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
5303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
5315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
532bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
5335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
5345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
5353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
5365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
5375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
54504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
5493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
55465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
55565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
55665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
55765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
55865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
55965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
56065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
56165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
56265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
56365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
56465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
56565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
56865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
56965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
57065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
57165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
57265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
57365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
57465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
587091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
589091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
590091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
59104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
59565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
59665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
59765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
59865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
59965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
60065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
60165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
60265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
6053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
6063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
6073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
6093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
6173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
6203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
62104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
62204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
62304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
6243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
62504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
62604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
62704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
62904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
63004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
63104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
6323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
6333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
63404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
6353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
6363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
6383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
6393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
64004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
64404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
64604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
64704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
64804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
6493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
65004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
65104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
65204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
6533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
65404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
65604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
65704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
65804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
65904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
66004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
66104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
6623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
66304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
66404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
66504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
66765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
66865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
66965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
67065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
67165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
67265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
67365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
67465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
67565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
67665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
67765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
67865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
67965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
68065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
68165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
68265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
68365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
68465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
68565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
68665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
68765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
68865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
68965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
69065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
69104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
69304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
69404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
69504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
7003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
7055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
7065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
7075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
7085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
7095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
7105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
7115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
7125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
7135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
7145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
7155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
7163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
7175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
7185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
7195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
7203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
72123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
72223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
7232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FILTER_CUBIC_IMG = 1000015000,
72423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
72523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
7263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
72723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
72823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
7313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
7323dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
7333dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
73423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
7353dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
73623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
73723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
740c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
741c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
742c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
743c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
744c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
745c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
74823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
74923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
75004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
7603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
76704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
76804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
77304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
77404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
7783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
7883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
78904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
79004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
79304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
79504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
79604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
7973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
79804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
802c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
803c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
804c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
805c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
8063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
80804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
8113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
8123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
8133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
8143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
8153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
8163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
8173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
82204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
8243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
82504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
82604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
82965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
83065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
83165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
83265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
83365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
83465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
83565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
837a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
83804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
84004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
8513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
85233faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
8532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
8542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
85504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
85704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
8593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
86104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
86304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
8672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
86804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
8725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
8825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
89665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
897b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
8982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
903d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
904d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
905d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
906d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
907d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
9082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
90904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
913d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
9142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
91504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
917a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
919543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
920543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
921543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
922543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
923543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
924543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
925543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
926543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
927543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
928543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
929543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
930543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
931543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
932543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
933543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
934543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
935543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
936543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
937543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
938289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
9392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
940543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
941543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
94204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
945a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
946a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
947a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
948a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
9492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
950a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
9513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
952a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
9533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
954b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
955b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
956b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
9572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
960091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
961091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
962091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
9632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
964091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
9692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
97004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
974a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
977ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
978ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
979ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
980ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
981ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
982ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
983ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
984ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
985ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
986ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
987ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
9882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
98904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
9972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
99804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
1002a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1003a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1004a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
10052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1006a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
1007a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
1008a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
10093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
10103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
10113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
101204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
101304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
101504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
101604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
10192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
1022a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
10235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
10253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
10283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
10293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
10303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
10312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
10333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
10343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
10353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
10363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
1037a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1038a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1039a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1040a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1041a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1042a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
10432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1044a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
10452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1046a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
1047a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1048a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
10493dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
1050a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
10513fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1052c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
10533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
1054c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
1055c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1056c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
10572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
10582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1059c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
1060c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
1061a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1062a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1063a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1064a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
10653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
106665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
106765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
106865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
106965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
10702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
107165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
107265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1073a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1074a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
107504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1076a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1077a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
107804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1080fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
10812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1082fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1083fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1084fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1085a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1086a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1087fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
10883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
10895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
10902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
10925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
109304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
10963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
10973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
10983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
10993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
11003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
11013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
11023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
11033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
11043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
11053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
11063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
11073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
11083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
11093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
11103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
11113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
11123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1113289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1114289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
11152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
11173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
11183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
11193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1120dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
11212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1122dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1123dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1124dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
11253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
11263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
11273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
11282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
11303fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
11333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
11342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
11363fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
113704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
11393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
11403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
11413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
11422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
11443fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1146f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1147f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
11482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1149f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1150f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1151f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
11523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
11533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
11542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
11563fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
11595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
11605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
11612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
11622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
11645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1166e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
11673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
11703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
117103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1172e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
11733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
11753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
11773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
117804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1179e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
11803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
118204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1183e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
11843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
118803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1189e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
11903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
119403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1195e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
11965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1200563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
12055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
12065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1208563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1209563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1210563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1214563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1215563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
12253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
122603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
12273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1228563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1229563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1240563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1241563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1242563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1264563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1265563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1266563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1275563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1276563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1282563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
128304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1287563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1288563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
128904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1292563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
12955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
12965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1298563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1306563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1307563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1308563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1309563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1312563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1313563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1319563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1320563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1321563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1332563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1358563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1374563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1375563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1376563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1380563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1381563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1382563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1389563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1390563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1391563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1396563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1397563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1398563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1402563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1408563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1409563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1410563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1415563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
14205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
14215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
14223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1428563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
143204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
14395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1442563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
145604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
146504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
146604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
147804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1493563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1494563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1500563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1502a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1503a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
15043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1505563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1506563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1507563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1508563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
15093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1512563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1514563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1515563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1520563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1521563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1522563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1526563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1528563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1535563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1540563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1541563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1545a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1546a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1551a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1557a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1572563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1578a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1579a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1581563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1589a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1590a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1591a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1592a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1594a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1595a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1596a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1597a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1598a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1599a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1600a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1602563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1603563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1604563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
161104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1614563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1615563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1616563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
161704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
161804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1620563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1623563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1624563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1625563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1629563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1634563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1635563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1636563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
163704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1640563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1641563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1642563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1645563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1650563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1651563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1652563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1653563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1654563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1655563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1656563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1662563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1663563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1664563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
166504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
166604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1668563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1669563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1670563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1671563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1672563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
167304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
167404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1676563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1677563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1678563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1679563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
168065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
168104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1683563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1684563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1686563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1687563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1693563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1694563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1695563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
169904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1705563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1710563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1711563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1712563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1713563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1714563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
171504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1718563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1719563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1720563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
172104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1724563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1725563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1726563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1727563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1731563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1734563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1735563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1736563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1737563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1747563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1748563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1749563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1750563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1756a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
175703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
175903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1764563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
176904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1772563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1773563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1774563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
177604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1779563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1781563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1782563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1783563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
17855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
17865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1788563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1789563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
17905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
17915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1793563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1794563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
17955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
17965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
1798563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
1799563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
18005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
18015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
1803563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
1804563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
1805563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
1806563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
1807563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
1808563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
1809563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
181004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
1813563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1814563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1815563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
1816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
1817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
1818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
1819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
1820563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
1821563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
1822563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
1824563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
1825563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
18263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
182704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
1829563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
1830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
1831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
1832563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
1833563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
1834563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
1835563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
1836563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
1837563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
1841563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
1842563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
1843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
1844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
1845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
1846563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
1847563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
1851563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1852563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1853563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
1854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
1855563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
1856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
1857563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
1858563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
1859563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
1860563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
1866563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
1867563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
1868563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
1869563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
1870563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
1871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
1872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
1873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
187404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
187504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
1877563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
1878563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
1879563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
1880563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
1881563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
1882563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
1883563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
1884563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
188504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
1888563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
1891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
1892563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
18935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
18945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
1896563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
1901563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
1902563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
1903563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
1904563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
1907563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
1908563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
1909563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
1910563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
1911563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
1912563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
1918563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1919563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1920563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
1921563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
1922563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
1924563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
1928563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
1930563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
1934563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1935563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1936563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
1937563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
1938563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
1944563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
1945563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
1946563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
1947563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
1948563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
1949563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
1950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
1951563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
1952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
1953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
1954563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
1955563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
1956563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
1957563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
1958563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
1959563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
1960563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
1961563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
1965563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
1966563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
1967563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
1968563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1969563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
197004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
1973563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
1974563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
1975563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
1976563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
1977563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
1981563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
198365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
198404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
1986563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1987563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1988563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
1989563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
1990563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
1991563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
199204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
199304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
1995563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1997563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
1998563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
1999563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
20003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
2001fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
20023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
2003563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
2004563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
2005563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
2006a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
2007a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
20083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
2009563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
2010563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
2011563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
20125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
20135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
2015563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
2018563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
2019563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
2020563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
2023563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
2024563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
2028563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2029563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2030563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
2031563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
2032563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
2033563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
2034563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
2040563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2041563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2042563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
2043563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
2044563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
2045563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
2046563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
204904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
2052563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
2053563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
2054563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
2056563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
2057563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
2058563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
2059563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
2060563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
206104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
206204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
2064563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
2065563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
2069563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
2071563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
2072563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
2073563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
2074563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
2075563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2076563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2077563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2078563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2082563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2083563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2084563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2086563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2087563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2088563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
209004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2092563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2094563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2095563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2096563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2097563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2098563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2104563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2105563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2106563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2107563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
21083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2111563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2112563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2113563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
21163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21183dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2119563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2120563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2121563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2125563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
21273dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
21283dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
21293dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2130563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2131563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2132563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2133563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
21343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2137563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2138563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2139563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2143563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2144563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2145563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
214765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
21485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2150563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2151563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2152563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
215504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
215604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
216204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
216304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2165563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
217104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2174563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2175563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
217704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
217804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2180563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2181563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
21825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
21835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2187ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2188ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2193ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2194ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2196563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2199a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
220004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2205563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2206563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
220704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
220804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22093dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2210563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
22143dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
221504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2217563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2218563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
222604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22283dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2229563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
22393dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
22403dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22413dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2242563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
22493dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
22503dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
22553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
225604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
22633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
226404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2266563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
22703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
227104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2273e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2274e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2275e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2276e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2277e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2278e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2279e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2280e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2281e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2282e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2283e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2284e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2286e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2287e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2288e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2289e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2290e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2291e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2292e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2293e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2294e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2295e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2296e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2297e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2298e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2299e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2300e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2301e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2302e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2303e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2304e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2305e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2306e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2307e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2308e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2309e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2310e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2311e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2312e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2313e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2314e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2315e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2316e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2317e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2318e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2319e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2320e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2321e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2322f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse 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);
2323e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2324e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2325e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2326e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2327e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2328e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2329e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2330e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2331e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2332e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2333e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2334e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2335e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2336e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2337e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2338e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2339e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2340e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2341e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2342e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2343e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2344e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2345e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2346e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2347e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2348e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2349e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2350e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2351e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2352e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2353e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2354e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2355e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2356e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2357e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2358e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2359e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2360e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2361e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2362e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2363e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2364e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2365e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2366e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2367f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2368f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2369e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2370e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2371e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2372e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2373e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2374e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2375e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2376e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse 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);
2377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2378f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2379e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2380e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2382e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2383e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2384e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2385e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2386e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2387e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2388e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2389e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
239056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2391e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2393e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2394e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2396e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2397e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
23983dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
23993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
24003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
24013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2402f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
24033dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2404f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2406e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2407e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2408e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
24093dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2411563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2412e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
24143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2417e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
241803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
24193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2421e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2426e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2430e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2435e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
24415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2444e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2448e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
24515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2453e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2457e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2461e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2465e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
24683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
246904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2471e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
247203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
24733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2475e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
247703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2480e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
248303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2486e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
248703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2490e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
249203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2495e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2501e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2503a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2504b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2507e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2510e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2513e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
25163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
25173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2519e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2524e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
253004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2532e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2536e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
25393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2541e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
25443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2546e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2551e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
25543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2557e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
25603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2563e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2568e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2573e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
257603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2579e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2583091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
258603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2589e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
259103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2592a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2595e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
25983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2601e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
26043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2606e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2611e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
261204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2615e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2622e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
26253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2628e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
26313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2633e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
26363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2639e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
26423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2644e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2648e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2652e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2656e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
26593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2662e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
26653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2667e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2670f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2672a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2674a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2677e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
26803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2683e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
26863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2688e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
26913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2694e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
26973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2699e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
27023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2705e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
27083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2710e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2716e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
27193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2722e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
272304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
27253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2727e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
27303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2733e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
273404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
27363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2738e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
273904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
27413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2744e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
27473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2749e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
275004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2752a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
275304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2755e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
275804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2761e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
276403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
27663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2769e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
277203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
27743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2777e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
27803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
278104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2782e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
27853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2788e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
27913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2793e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
27963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2799e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
28023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2804e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
28073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
280904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2810e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
28133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2815e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
28183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2821e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
28243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2826e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2828fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2829fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2831e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
28345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2836e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
283903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2842e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2844b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2846b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2849e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
28523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2855e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
28583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2860e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
28633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2866e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
28693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2871e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2876e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
28793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
28803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2882e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2887e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2892e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
28953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2897e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
290003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
29013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2903e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
29043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2907e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
29083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2910e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
29113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2914e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
29153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2919e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
29203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2921f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
29225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
29235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
29245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2925e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
29263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2927f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
29285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
29295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
29305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2931e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
29323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
29345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2935e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
29363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2937a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
29385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2939a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2941e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
29423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2943b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2945e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
29463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
29485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2950e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
29513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
295365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
29545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2955e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
29563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
295865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
29595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2960e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
29613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
296365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2965e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
29663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
297003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2975e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
29763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2981e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
29823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2983f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2988e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
29893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
29915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
29925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
29935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2995e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
29963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
29985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
29995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
30015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
300204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3003e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
30043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
300703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3010e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
30113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
301403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
301504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
301604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3017e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
30183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
302004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
302104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3023e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
30243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
302604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
302704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3028e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
30293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
30313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
303204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3035e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
30363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
304104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3044e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
30453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
304704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
305104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
305223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3054e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
30553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
30573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
306004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
306104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3062e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
30633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
306404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
306704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3070e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
30713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
307404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
307556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*                                 pData);
307604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3077e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
30783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3081b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
308204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
308304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3084e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
30853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
308604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
308704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
308804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
308904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
309004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
309104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3092e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
30933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
309404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
309504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
30965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
309704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
309804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
309904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3100e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
31013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3102ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3103ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
310404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3105a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
310604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3107e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
31083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
310904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
311004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
311304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
311404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
311504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3116e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
31173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
311904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
312004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3121e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
31223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
312404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
312504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3126e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
31273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
312904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
313004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
31313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
31323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
31333dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
31343dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
31353dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
31363dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
31373dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
313804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3139e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
31403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
314104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
31423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3143dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
31443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
31453dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
31463dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
31473dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
31483dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
31493dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
315004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3151e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
31523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
315304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
31543dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
315504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
315604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3157e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
31583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
315904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
31603dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
316104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3162e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
31633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
316404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3165f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
316604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
316704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3168e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
31693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31706f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3171a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
31723dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
317304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3174e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
31753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
317604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3177f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
317804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
31793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3181a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
318204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
318304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3184e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
31853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
318604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
318704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
318803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
318903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3190f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
319104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3192e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
31933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
319404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
319565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
319604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3197e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
31983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
319965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
320004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3201e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
32023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
320304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3204e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
32053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32063dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
32073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
320804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
320904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3210091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
32113fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
32121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
321333faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
32143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
32152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
32192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
32202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
32232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
32241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
32271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
32281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
32291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
323003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
32312e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VK_PRESENT_MODE_FRONT_BUFFERED_DEMAND_REFRESH_KHR = 1000111000,
32322e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VK_PRESENT_MODE_FRONT_BUFFERED_CONTINUOUS_REFRESH_KHR = 1000111001,
32332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
32342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
32352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
32362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3241f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
32429ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
32439ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
32449ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
32459ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
32469ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
32479ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
32489ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
32491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
32502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3255a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3256a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3257a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3258a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
32592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3260a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3261a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3262a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
32633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3264563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3265563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3266563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3274b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3281b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3282f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3283e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3284e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3286e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3287b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3288563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3289e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3290f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3291f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
32920e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3293b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3294e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3295b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3296b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3297b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3298b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3299b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3300e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3301b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3302b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3303b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3304b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3305e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3306b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3307b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3308b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3309b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3310b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3311e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3312b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3313b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3314b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3315b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3316b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3317b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3318091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
33193fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3320b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
33212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
33223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3323b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3324f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3325f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
33263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3332563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
33451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
33561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
33571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3359f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3360f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3361f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3362f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3363f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3365563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3366e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3367f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3368f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
33690e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3370f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
33711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3372e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3373f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3374f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
33750e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
33761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3378f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3379f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3380f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3381f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
33821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3383e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3384f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3385f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3386f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3387f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3388f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3389f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
33901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3391e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3392f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3393f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
33941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3396091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
33973fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
33983fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
33991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3400543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
34013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
34092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
34111356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
34122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
3413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3420563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3421563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3422563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
34231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3428a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
34291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
34331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
34341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
34401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3452a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3457b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3458b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
34593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3466563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3467563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3470a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
34711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3473e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3474e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
34753dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3476e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
34772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
34789ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
34790e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
34801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3481563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3482e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
34831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
348403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
34851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
34861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3488a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3489a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3490a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3491a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3492e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3493a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
34943dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3495f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3496f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3497a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3498e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
34991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
350103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
350203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3504e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
35051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
35071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
35080e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
35101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
35121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35139ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
35141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3515a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3516a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3518a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3519a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
35200e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3521a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
35221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3524091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3525543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
35263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3529563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3530563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3531563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35379ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
35389ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3539563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
35409ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
35419ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
35429ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
35439ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
35449ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35459ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
35469ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3548a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3549091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
35501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
35511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3552543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3553091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
35541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3555f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3556f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3557f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3558563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3559563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3563f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3564f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3565f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3566f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3567e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
35681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3569563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3570e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
35711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3572f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
35730e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3575a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3576e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3577a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3578a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3579a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
358065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
35811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3582a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
35831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3585091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
35861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
35871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3588543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
35893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
35901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3591f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3592f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3593f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3596563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3597563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3598563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3599f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3600f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3601f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3602f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3603e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
36041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3605563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3606e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
36071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3608f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
36090e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3611a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3612e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3613a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3614a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3615a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3616a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
36171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
36191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3621091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
36221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
36231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3624543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
36253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
36261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3627f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3628f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3629f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3634563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3635f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3636f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3637f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3638f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3639e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
36401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3641563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3642e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
36431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3644f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
36450e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3647a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3648e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3649a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3650a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3651a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
36521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
36541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3656091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
36571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
36581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3659543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
36603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
36611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3662f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3663f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3664f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3666563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3667563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3668563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3669563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3670f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3671f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3672f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3673f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3674e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
36751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3676563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3677e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
36781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3679f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
36800e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3682a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3683e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3684a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3685a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3686a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
36871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
36891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3691091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
36921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
36931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
369433faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
36953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
36961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3697f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3698f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3699f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3700563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3701563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
3703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    ANativeWindow*                    window;
3704f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3705f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3706f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3707f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
37081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3709563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3710e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
37111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3712f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
37130e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
37151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
37171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3719091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
37201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
37211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3722543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
37233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
37241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3725f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3726f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3727f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3728563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3729563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3730563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3731563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3733f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3734f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3735f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3736f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3737e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
37381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3739563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3740e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
37411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3742f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
37430e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3745a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3746e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3747a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3748a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
37491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
37511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_sampler_mirror_clamp_to_edge 1
37532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
37542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
37552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
37561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_get_physical_device_properties2 1
37581194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
37591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
37601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceFeatures2KHR {
37621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType             sType;
37631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                       pNext;
37641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures    features;
37651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceFeatures2KHR;
37661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37671194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceProperties2KHR {
37681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType               sType;
37691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                         pNext;
37701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties    properties;
37711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceProperties2KHR;
37721194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkFormatProperties2KHR {
37741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
37751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                 pNext;
37761194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties    formatProperties;
37771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkFormatProperties2KHR;
37781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkImageFormatProperties2KHR {
37801194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
37811194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
37821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties    imageFormatProperties;
37831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkImageFormatProperties2KHR;
37841194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceImageFormatInfo2KHR {
37861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
37871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*           pNext;
37881194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat              format;
37891194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType           type;
37901194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling         tiling;
37911194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags     usage;
37921194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageCreateFlags    flags;
37931194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceImageFormatInfo2KHR;
37941194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37951194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkQueueFamilyProperties2KHR {
37961194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
37971194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
37981194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties    queueFamilyProperties;
37991194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkQueueFamilyProperties2KHR;
38001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceMemoryProperties2KHR {
38021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                     sType;
38031194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                               pNext;
38041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties    memoryProperties;
38051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceMemoryProperties2KHR;
38061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkSparseImageFormatProperties2KHR {
38081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                  sType;
38091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                            pNext;
38101194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties    properties;
38111194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkSparseImageFormatProperties2KHR;
38121194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38131194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
38141194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType          sType;
38151194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*              pNext;
38161194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                 format;
38171194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType              type;
38181194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSampleCountFlagBits    samples;
38191194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags        usage;
38201194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling            tiling;
38211194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceSparseImageFormatInfo2KHR;
38221194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38231194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38241194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
38251194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
38261194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
38271194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
38281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
38291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
38301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
38311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#ifndef VK_NO_PROTOTYPES
38331194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
38341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures2KHR*               pFeatures);
38361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38371194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
38381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties2KHR*             pProperties);
38401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38411194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
38421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38431194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                                    format,
38441194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties2KHR*                     pFormatProperties);
38451194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38461194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
38471194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38481194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
38491194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties2KHR*                pImageFormatProperties);
38501194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38511194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
38521194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38531194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pQueueFamilyPropertyCount,
38541194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
38551194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38561194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
38571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38581194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
38591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38601194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
38611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
38631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pPropertyCount,
38641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties2KHR*          pProperties);
38651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#endif
38661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
3867cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_incremental_present 1
3868cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
3869cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
3870cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3871cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkRectLayerKHR {
3872cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkOffset2D offset;
3873cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkExtent2D extent;
3874cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t layer;
3875cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkRectLayerKHR;
3876cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3877cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkPresentRegionKHR {
3878cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t rectangleCount;
3879cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const VkRectLayerKHR* pRectangles;
3880cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkPresentRegionKHR;
3881cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3882cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkPresentRegionsKHR {
3883cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkStructureType sType;
3884cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const void* pNext;
3885cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t swapchainCount;
3886cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const VkPresentRegionKHR* pRegions;
3887cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkPresentRegionsKHR;
38882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
38892e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#define VK_KHR_swapchain_front_buffered 1
38902e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#define VK_KHR_SWAPCHAIN_FRONT_BUFFERED_SPEC_VERSION 2
38912e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#define VK_KHR_SWAPCHAIN_FRONT_BUFFERED_EXTENSION_NAME "VK_KHR_swapchain_front_buffered"
38922e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
38932e12cb80a8a1e23fef253911febf1797c835d02fChris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
38942e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
38952e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#ifndef VK_NO_PROTOTYPES
38962e12cb80a8a1e23fef253911febf1797c835d02fChris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
38972e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkDevice                                    device,
38982e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkSwapchainKHR                              swapchain);
38992e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#endif
39002e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
3901e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
3902e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
3903e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3904289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  4
3905e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
39062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
3907e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3908e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3909e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
3910e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
3911e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
3912e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
3913e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
3914e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
3915e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
3916e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
3917e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
3918e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
3919e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
3920e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
3921e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
3922e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
3923e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
3924e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
3925e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
3926e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
3927e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
3928e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
3929e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
3930e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
3931e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
3932e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
3933e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
3934e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
3935e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
3936e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
3937e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
3938e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
3939289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
3940289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
3941289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
3942289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
39432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
3944289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
3945289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
39462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
3947e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
3948e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3949e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportErrorEXT {
3950e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
3951e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
39522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
39532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
39542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
39552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
3956e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportErrorEXT;
3957e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3958e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3959e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
3960e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3961e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3962e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
3963e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3964e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
39652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
3966e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
3967e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
3968e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3969e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
3970e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
3971e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
3972e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
3973e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
3974e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
3975e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
3976e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
3977e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
3978e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3979e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3980e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
3981e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
3982e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
3983e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
3984e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
3985e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
3986e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
3987e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3988e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3989e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
3990e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
3991e2948d83f352b9a093252a06757f76a88f5355d3Jesse 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);
3992e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3993e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
3994e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
3995e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
3996e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
3997e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3998e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
3999e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4000e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
4001e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4002e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
4003e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4004e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4005e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
4006e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4007e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4008e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4009e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4010e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4011e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4012e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4013e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
4014e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
4015e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
40162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_glsl_shader 1
40172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
40182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
40192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_filter_cubic 1
40222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
40232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
40242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_rasterization_order 1
40272676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
40282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
40292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef enum VkRasterizationOrderAMD {
40322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
40332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
40342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
40352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
40362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
40372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
40382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkRasterizationOrderAMD;
40392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
40412676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType            sType;
40422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                pNext;
40432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkRasterizationOrderAMD    rasterizationOrder;
40442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkPipelineRasterizationStateRasterizationOrderAMD;
40452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
404856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_trinary_minmax 1
404956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
405056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
405156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
405256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
405356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_explicit_vertex_parameter 1
405456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
405556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
405656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
405756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
40582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_debug_marker 1
40592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  3
40602676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
40612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectNameInfoEXT {
40632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
40642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
40652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
40662676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
40672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*                   pObjectName;
40682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectNameInfoEXT;
40692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectTagInfoEXT {
40712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
40722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
40732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
40742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
40752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      tagName;
40762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    size_t                        tagSize;
40772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pTag;
40782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectTagInfoEXT;
40792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40802676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerMarkerInfoEXT {
40812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType    sType;
40822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*        pNext;
40832676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*        pMarkerName;
40842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    float              color[4];
40852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerMarkerInfoEXT;
40862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
40892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
40902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
40912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
40922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
40932676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VK_NO_PROTOTYPES
40952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
40962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
40972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
40982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
41002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
41012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
41022676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
41042676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
41052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
41062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
41082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer);
41092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
41112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
41122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
41132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#endif
41142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
411556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_gcn_shader 1
411656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
411756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
411856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
411956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
412056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_dedicated_allocation 1
412156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
412256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
412356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
412456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationImageCreateInfoNV {
412556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
412656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
412756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
412856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationImageCreateInfoNV;
412956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
413056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationBufferCreateInfoNV {
413156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
413256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
413356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
413456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationBufferCreateInfoNV;
413556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
413656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
413756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
413856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
413956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkImage            image;
414056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBuffer           buffer;
414156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationMemoryAllocateInfoNV;
414256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
414356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
41444c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott#define VK_GOOGLE_display_timing 1
41454c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
41464c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
41474c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41484c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef struct VkRefreshCycleDurationGOOGLE {
41494c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    minRefreshDuration;
41504c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    maxRefreshDuration;
41514c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott} VkRefreshCycleDurationGOOGLE;
41524c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41534c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef struct VkPastPresentationTimingGOOGLE {
41544c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint32_t    presentID;
41554c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    desiredPresentTime;
41564c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    actualPresentTime;
41574c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    earliestPresentTime;
41584c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    presentMargin;
41594c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott} VkPastPresentationTimingGOOGLE;
41604c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41614c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef struct VkPresentTimeGOOGLE {
41624c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint32_t    presentID;
41634c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint64_t    desiredPresentTime;
41644c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott} VkPresentTimeGOOGLE;
41654c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41664c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef struct VkPresentTimesInfoGOOGLE {
41674c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkStructureType               sType;
41684c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    const void*                   pNext;
41694c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint32_t                      swapchainCount;
41704c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    const VkPresentTimeGOOGLE*    pTimes;
41714c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott} VkPresentTimesInfoGOOGLE;
41724c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41734c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41744c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
41754c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
41764c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41774c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott#ifndef VK_NO_PROTOTYPES
41784c8bb2a95d7849c79dea889f1be59281f4e374bfIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
41794c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkDevice                                    device,
41804c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkSwapchainKHR                              swapchain,
41814c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
41824c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
41834c8bb2a95d7849c79dea889f1be59281f4e374bfIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
41844c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkDevice                                    device,
41854c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkSwapchainKHR                              swapchain,
41864c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    uint32_t*                                   pPresentationTimingCount,
41874c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott    VkPastPresentationTimingGOOGLE*             pPresentationTimings);
41884c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott#endif
41894c8bb2a95d7849c79dea889f1be59281f4e374bfIan Elliott
419056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
4191289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_draw_indirect_count 1
4192289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
4193289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
4194289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4195289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4196289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4197289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4198289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4199289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
4200289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4201289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4202289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4203289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4204289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4205289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4206289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4207289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4208289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
4209289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4210289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4211289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4212289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4213289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4214289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4215289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4216289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4217289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4218289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_negative_viewport_height 1
4219289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
4220289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
4221289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4222289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4223289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_gpu_shader_half_float 1
4224289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
4225289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
4226289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4227289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_shader_ballot 1
4229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
4230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
4231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4233289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_format_pvrtc 1
4234289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
4235289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
4236289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4238289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_capabilities 1
4239289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4240289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
4241289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4242289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4243289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
4244289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
4245289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
4246289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
4247289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
4248289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4249289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryHandleTypeFlagBitsNV;
4250289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
4251289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4252289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryFeatureFlagBitsNV {
4253289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
4254289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
4255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
4256289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4257289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryFeatureFlagBitsNV;
4258289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryFeatureFlagsNV;
4259289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4260289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalImageFormatPropertiesNV {
4261289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageFormatProperties              imageFormatProperties;
4262289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
4263289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
4264289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
4265289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalImageFormatPropertiesNV;
4266289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4267289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4268289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
4269289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4270289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4271289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
4272289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4273289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkFormat                                    format,
4274289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageType                                 type,
4275289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageTiling                               tiling,
4276289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageUsageFlags                           usage,
4277289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageCreateFlags                          flags,
4278289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
4279289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
4280289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4281289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4282289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory 1
4283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
4284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
4285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalMemoryImageCreateInfoNV {
4287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryImageCreateInfoNV;
4291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryAllocateInfoNV {
4293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4295289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4296289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryAllocateInfoNV;
4297289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4298289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4299289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4300289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4301289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_win32 1
4302289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4303289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
4304289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4305289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkImportMemoryWin32HandleInfoNV {
4306289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4307289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4308289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleType;
4309289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE                               handle;
4310289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkImportMemoryWin32HandleInfoNV;
4311289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4312289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryWin32HandleInfoNV {
4313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType               sType;
4314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                   pNext;
4315289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const SECURITY_ATTRIBUTES*    pAttributes;
4316289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    DWORD                         dwAccess;
4317289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryWin32HandleInfoNV;
4318289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4319289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4320289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
4321289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4322289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4323289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
4324289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceMemory                              memory,
4326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           handleType,
4327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE*                                     pHandle);
4328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_win32_keyed_mutex 1
4333289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
4334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
4335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
4337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4339289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 acquireCount;
4340289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pAcquireSyncs;
4341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pAcquireKeys;
4342289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*          pAcquireTimeoutMilliseconds;
4343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 releaseCount;
4344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pReleaseSyncs;
4345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pReleaseKeys;
4346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkWin32KeyedMutexAcquireReleaseInfoNV;
4347289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_validation_flags 1
4352289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
4353289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
4354289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4355289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4356289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkValidationCheckEXT {
4357289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_ALL_EXT = 0,
4358289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4359289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4360289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
4361289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
4362289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationCheckEXT;
4363289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4364289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkValidationFlagsEXT {
4365289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4366289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4367289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 disabledValidationCheckCount;
4368289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkValidationCheckEXT*    pDisabledValidationChecks;
4369289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationFlagsEXT;
4370289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4371289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4372289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4373289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_device_generated_commands 1
4374289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
4375289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
4376289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4377289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
4378289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
4379289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4380289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4381289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsTokenTypeNVX {
4382289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
4383289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
4384289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
4385289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
4386289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
4387289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
4388289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
4389289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
4390289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
4391289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
4392289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
4393289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
4394289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenTypeNVX;
4395289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4396289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryTypeNVX {
4397289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
4398289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
4399289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
4400289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
4401289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
4402289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
4403289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
4404289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
4405289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
4406289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryTypeNVX;
4407289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4408289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4409289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
4410289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
4411289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
4412289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
4413289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
4414289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
4415289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutUsageFlagBitsNVX;
4416289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
4417289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4418289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryUsageFlagBitsNVX {
4419289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
4420289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
4421289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
4422289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryUsageFlagBitsNVX;
4423289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkObjectEntryUsageFlagsNVX;
4424289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4425289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsFeaturesNVX {
4426289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
4427289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
4428289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBool32           computeBindingPointSupport;
4429289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsFeaturesNVX;
4430289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4431289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsLimitsNVX {
4432289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
4433289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
4434289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxIndirectCommandsLayoutTokenCount;
4435289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxObjectEntryCounts;
4436289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceCountBufferOffsetAlignment;
4437289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceIndexBufferOffsetAlignment;
4438289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minCommandsTokenBufferOffsetAlignment;
4439289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsLimitsNVX;
4440289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4441289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsTokenNVX {
4442289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
4443289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                          buffer;
4444289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                      offset;
4445289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenNVX;
4446289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4447289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutTokenNVX {
4448289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
4449289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          bindingUnit;
4450289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          dynamicCount;
4451289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          divisor;
4452289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutTokenNVX;
4453289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4454289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutCreateInfoNVX {
4455289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                            sType;
4456289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                                pNext;
4457289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineBindPoint                        pipelineBindPoint;
4458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
4459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                   tokenCount;
4460289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
4461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutCreateInfoNVX;
4462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdProcessCommandsInfoNVX {
4464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4466289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                     objectTable;
4467289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
4468289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             indirectCommandsTokenCount;
4469289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
4470289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSequencesCount;
4471289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                      targetCommandBuffer;
4472289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesCountBuffer;
4473289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesCountOffset;
4474289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesIndexBuffer;
4475289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesIndexOffset;
4476289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdProcessCommandsInfoNVX;
4477289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4478289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdReserveSpaceForCommandsInfoNVX {
4479289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                sType;
4480289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                    pNext;
4481289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX               objectTable;
4482289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
4483289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                       maxSequencesCount;
4484289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdReserveSpaceForCommandsInfoNVX;
4485289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4486289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableCreateInfoNVX {
4487289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4488289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4489289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             objectCount;
4490289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
4491289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                      pObjectEntryCounts;
4492289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
4493289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxUniformBuffersPerDescriptor;
4494289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageBuffersPerDescriptor;
4495289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageImagesPerDescriptor;
4496289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSampledImagesPerDescriptor;
4497289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxPipelineLayouts;
4498289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableCreateInfoNVX;
4499289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4500289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableEntryNVX {
4501289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4502289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4503289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableEntryNVX;
4504289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4505289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePipelineEntryNVX {
4506289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4507289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4508289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipeline                    pipeline;
4509289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePipelineEntryNVX;
4510289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4511289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableDescriptorSetEntryNVX {
4512289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4513289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4514289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
4515289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDescriptorSet               descriptorSet;
4516289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableDescriptorSetEntryNVX;
4517289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4518289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableVertexBufferEntryNVX {
4519289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4520289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4521289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
4522289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableVertexBufferEntryNVX;
4523289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4524289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableIndexBufferEntryNVX {
4525289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4526289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4527289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
4528289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableIndexBufferEntryNVX;
4529289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4530289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePushConstantEntryNVX {
4531289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4532289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4533289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
4534289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkShaderStageFlags            stageFlags;
4535289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePushConstantEntryNVX;
4536289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4537289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4538289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
4539289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
4540289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
4541289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
4542289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
4543289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
4544289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
4545289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
4546289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
4547289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4548289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4549289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
4550289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4551289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
4552289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4553289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
4554289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4555289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
4556289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4557289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
4558289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4559289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
4560289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
4561289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
4562289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4563289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
4564289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4565289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
4566289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
4567289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4568289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
4569289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4570289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableCreateInfoNVX*           pCreateInfo,
4571289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
4572289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX*                           pObjectTable);
4573289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4574289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
4575289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4576289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4577289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
4578289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4579289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
4580289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4581289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4582289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
4583289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
4584289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
4585289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4586289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
4587289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4588289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4589289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
4590289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
4591289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
4592289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4593289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
4594289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4595289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
4596289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
4597289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4598289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
459904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
460004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
460104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
460204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
460304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
4604