vulkan.h revision 82afc95f7ed4e896a15d8b2a20d4f4521ed100c2
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/*
9d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter** Copyright (c) 2015-2017 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,
223289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
224289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
225289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
226289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
227289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
2281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
2291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
2301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
2311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
2321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
2331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
2341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
2351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
2361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
238889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
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,
533af3a1117ffa206a6e3143edf32c494b64e39f303Chris Forbes    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
5345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
5355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
5363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
5375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
5385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
54504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
5503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
55565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
55665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
55765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
55865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
55965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
56065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
56165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
56265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
56365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
56465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
56565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
56665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
56965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
57065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
57165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
57265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
57365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
57465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
57565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
58304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
588091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
58904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
590091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
591091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
59404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
59665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
59765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
59865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
59965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
60065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
60165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
60265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
60365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
6063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
6073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
6083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
6103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
61704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
6183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
6213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
62204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
62304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
62404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
6253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
62604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
62704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
62804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
63004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
63104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
63204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
6333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
6343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
63504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
6363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
6373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
63804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
6393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
6403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
64304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
64604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
64704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
64804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
64904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
6503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
65104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
65204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
65304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
6543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
65604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
65704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
65804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
65904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
66004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
66104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
66204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
6633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
66404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
66504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
66604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
66865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
66965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
67065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
67165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
67265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
67365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
67465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
67565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
67665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
67765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
67865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
67965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
68065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
68165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
68265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
68365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
68465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
68565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
68665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
68765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
68865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
68965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
69065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
69165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
69204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
69404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
69504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
7013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
7065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
7075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
7085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
7095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
7105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
7115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
7125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
7135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
7145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
7155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
7165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
7173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
7185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
7195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
7205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
7213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
72223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
72323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
7242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FILTER_CUBIC_IMG = 1000015000,
72523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
72623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
7273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
72823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
72923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
73004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
7323dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
7333dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
7343dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
73523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
7363dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
73723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
73823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
741c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
742c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
743c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
744c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
745c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
746c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
7472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
7482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
74923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
75023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
7613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
76704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
76804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
77304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
77404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
77804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
7793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
78804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
7893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
79004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
79204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
79504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
79604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
79704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
7983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
80104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
803c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
804c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
805c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
806c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
8073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
80804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
8123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
8133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
8143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
8153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
8163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
8173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
8183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
82204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
8253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
82604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
82804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
83065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
83165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
83265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
83365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
83465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
83565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
83665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
838a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
83904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
8523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
85333faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
8542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
8552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
85704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
85804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
8603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
86304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
86704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
8682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
8735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
8835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
89765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
898b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
8992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
904d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
905d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
906d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
907d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
908d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
9092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
91204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
914d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
9152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
91704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
918a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
919a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
920543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
921543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
922543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
923543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
924543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
925543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
926543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
927543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
928543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
929543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
930543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
931543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
932543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
933543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
934543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
935543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
936543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
937543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
938543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
939289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
9402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
941543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
942543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
94404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
946a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
947a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
948a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
949a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
9502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
951a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
9523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
953a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
9543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
955b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
956b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
957b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
9582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
961091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
962091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
963091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
9642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
965091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
96904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
9702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
97404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
975a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
978ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
979ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
980ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
981ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
982ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
983ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
984ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
985ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
986ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
987ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
988ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
9892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
9982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
1003a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1004a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1005a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
10062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1007a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
1008a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
1009a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
10103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
10113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
10123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
101304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
101504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
101604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
10202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
1023a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
10245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
10263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
10293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
10303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
10313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
10322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
10343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
10353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
10363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
10373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
1038a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1039a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1040a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1041a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1042a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1043a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
10442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1045a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
10462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1047a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
1048a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1049a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
10503dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
1051a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
10523fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1053c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
10543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
1055c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
1056c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1057c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
10582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
10592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1060c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
1061c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
1062a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1063a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1064a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1065a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
10663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
106765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
106865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
106965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
107065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
10712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
107265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
107365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1074a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1075a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
107604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1077a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1078a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
107904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1081fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
10822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1083fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1084fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1085fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1086a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1087a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1088fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
10893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
10905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
10912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
10935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
10973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
10983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
10993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
11003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
11013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
11023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
11033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
11043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
11053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
11063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
11073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
11083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
11093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
11103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
11113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
11123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
11133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1114289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1115289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
11162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
11183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
11193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
11203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1121dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
11222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1123dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1124dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1125dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
11263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
11273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
11283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
11292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
11313fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
113204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
11343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
11352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
11373fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
113804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
11403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
11413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
11423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
11432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
11453fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1147f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1148f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
11492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1150f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1151f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1152f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
11533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
11543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
11552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
11573fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
11605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
11615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
11622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
11632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
11655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
116604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1167e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
11683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
11713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
117203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1173e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
11743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
11763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
11783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
117904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1180e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
11813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
118304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1184e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
11853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
118903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1190e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
11913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
11923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
11933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
11943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
119503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1196e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
11975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1200563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1205563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
12065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
12075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1209563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1210563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1214563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1215563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1216563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
121804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
12263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
122703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
12283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1229563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1240563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1241563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1242563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1264563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1265563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1266563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1275563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1276563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1282563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1283563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
128504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1287563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1288563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1289563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
129104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
12965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
12975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1303563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1307563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1308563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1309563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1312563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1313563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1319563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1320563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1321563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1332563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1358563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1374563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1375563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1376563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1380563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1381563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1382563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1389563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1390563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1391563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1396563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1397563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1398563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1402563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1408563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1409563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1410563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1420563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
14215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
14225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
14233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1428563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
14405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
145104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
146604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
146704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1494563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1500563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1502563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1503a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1504a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
15053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1506563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1507563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1508563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1509563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
15103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1514563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1515563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1517563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1521563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1522563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1523563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1528563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1529563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1535563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1537563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1541563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1546a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1547a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1553a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1557563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1558a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
155904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1569563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1578563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1579a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1580a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
15813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1584563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1590a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1591a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1592a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1594a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1595a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1596a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1597a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1598a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1599a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1600a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1601a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1603563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1604563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1605563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
160704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
161304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1615563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1616563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1617563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
161804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1623563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1624563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1625563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1626563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1634563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1635563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1636563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1637563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
163904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1641563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1642563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1645563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1647563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1651563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1652563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1653563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1654563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1655563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1656563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1662563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1663563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1664563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
166604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
166704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1669563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1670563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1671563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1672563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
167404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
167504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1677563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1678563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1679563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1680563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
168165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1684563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1686563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1687563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1688563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1693563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1694563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1695563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1699563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
170104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1705563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1707563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1711563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1712563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1713563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1714563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1715563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
171704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1719563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1720563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1721563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
172304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1725563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1726563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1727563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1728563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1734563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1735563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1736563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1737563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1738563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1744563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
174604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1748563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1749563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1750563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1751563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1757a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
175803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
176003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
177104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1773563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1774563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1781563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1782563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1783563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1785563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
17865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
17875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1789563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1790563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
17915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
17925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1794563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1795563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
17965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
17975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
1799563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
1800563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
18015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
18025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
1804563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
1805563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
1806563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
1807563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
1808563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
1809563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
1810563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
181204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
1814563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1815563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
1817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
1818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
1819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
1820563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
1821563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
1822563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
1824563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
1825563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
1826563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
18273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
182804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
1830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
1831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
1832563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
1833563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
1834563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
1835563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
1836563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
1837563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
1838563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
1842563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
1843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
1844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
1845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
1846563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
1847563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
1848563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
1852563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1853563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
1855563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
1856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
1857563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
1858563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
1859563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
1860563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
1863563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
1867563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
1868563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
1869563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
1870563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
1871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
1872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
1873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
1874563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
187504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
1878563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
1879563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
1880563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
1881563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
1882563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
1883563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
1884563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
1885563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
188704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
1891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
1892563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
1893563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
18945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
18955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
1901563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
1902563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
1903563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
1904563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
1907563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
1908563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
1909563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
1910563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
1911563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
1912563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
1915563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
1919563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1920563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1921563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
1922563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
1924563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
1925563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1930563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
1931563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
1935563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1936563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1937563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
1938563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
1941563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
194304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
1945563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
1946563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
1947563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
1948563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
1949563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
1950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
1951563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
1952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
1953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
1954563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
1955563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
1956563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
1957563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
1958563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
1959563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
1960563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
1961563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
1962563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
1966563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
1967563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
1968563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
1969563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
1970563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
1974563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
1975563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
1976563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
1977563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
1978563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
1983563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
198465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
198504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
1987563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1988563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1989563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
1990563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
1991563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
1992563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
199304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
199404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
1997563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
1998563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
1999563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
2000563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
20013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
2002fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
20033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
2004563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
2005563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
2006563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
2007a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
2008a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
20093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
2010563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
2011563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
2012563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
20135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
20145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2018563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
2019563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
2020563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
2023563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
2024563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
2025563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
202704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
2029563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2030563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2031563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
2032563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
2033563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
2034563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
2037563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
2041563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2042563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2043563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
2044563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
2045563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
2046563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
2049563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
2053563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
2054563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
2056563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
2057563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
2058563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
2059563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
2060563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
2061563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
206204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
206304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
2065563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
2066563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
206804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
2071563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
2072563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
2073563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
2074563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
2075563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
2076563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2077563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2078563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2079563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2083563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2084563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2086563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2087563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2088563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2089563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
209004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
209104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2094563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2095563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2096563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2097563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2098563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2101563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2105563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2106563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2107563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2108563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
21093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2112563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2113563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2116563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
21173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21193dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2120563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2121563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2125563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2127563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
21283dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
21293dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
21303dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2131563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2132563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2133563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2134563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
21353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2138563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2139563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2140563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
214204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2144563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2145563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
214865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
21495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2151563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2152563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
215604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
215704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2162563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
216304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
216404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2171563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
217304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2175563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
217804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
217904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2181563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2182563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
21835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
21845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2187563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2188ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2189ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2193563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2194ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2195ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
21963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2200a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
220104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2205563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2206563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2207563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
220804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
220904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22103dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2214563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
22153dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
221604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2218563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2226563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
222804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22293dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
22403dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
22413dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22423dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
22503dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
22513dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2253563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2254563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
22563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
225704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
22643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
22713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
227204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2274e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2275e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2276e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2277e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2278e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2279e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2280e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2281e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2282e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2283e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2284e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2285e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2286e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2287e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2288e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2289e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2290e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2291e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2292e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2293e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2294e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2295e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2296e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2297e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2298e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2299e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2300e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2301e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2302e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2303e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2304e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2305e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2306e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2307e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2308e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2309e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2310e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2311e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2312e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2313e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2314e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2315e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2316e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2317e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2318e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2319e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2320e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2321e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2322e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2323f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse 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);
2324e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2325e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2326e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2327e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2328e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2329e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2330e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2331e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2332e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2333e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2334e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2335e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2336e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2337e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2338e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2339e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2340e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2341e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2342e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2343e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2344e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2345e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2346e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2347e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2348e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2349e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2350e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2351e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2352e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2353e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2354e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2355e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2356e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2357e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2358e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2359e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2360e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2361e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2362e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2363e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2364e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2365e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2366e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2367e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2368f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2369f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2370e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2371e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2372e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2373e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2374e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2375e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2376e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse 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);
2378e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2379f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2380e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2382e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2383e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2384e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2385e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2386e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2387e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2388e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2389e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2390e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
239156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2393e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2394e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2396e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2397e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2398e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
23993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
24003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
24013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
24023dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2403f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
24043dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2405f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2407e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2408e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2409e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
24103dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2412563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2413e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
24153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2418e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
241903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
24203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2427e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2436e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
24425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2445e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2449e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
24525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2454e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2458e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2462e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2466e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
24693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2472e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
247303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
24743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2476e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
247803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2481e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
248403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
248803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2491e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
249303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2496e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2502e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2504a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2505b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2508e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2514e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
25173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
25183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2520e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2525e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
253004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2533e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2537e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
25403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2542e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
25453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2547e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2552e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
25553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2558e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
25613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
25623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2564e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2569e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2574e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
257703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2580e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2584091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
258703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2590e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
259203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2594a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2596e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
25993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2602e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
26053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2607e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2612e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2616e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2623e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
26263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2629e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
26323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2634e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
26373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2640e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
26433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2645e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2649e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2653e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2657e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
26603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2663e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
26663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2668e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2671f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2673a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2675a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2678e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
26813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2684e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
26873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2689e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
26923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2695e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
26983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2700e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
27033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2706e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
27093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2711e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2717e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
27203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2723e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
27263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2728e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
27313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2734e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
27373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
27423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2745e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
27483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2750e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2753a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
275504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2756e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2762e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
276503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
276604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
27673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2770e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
277303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
27753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2778e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
27813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2783e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
27863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2789e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
27923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2794e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
27973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2800e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
280104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
28033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
280404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2805e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
28083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
280904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2811e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
28143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2816e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
28193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2822e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
28253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2827e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2829fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2830fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2832e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
28355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2837e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
284003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2843e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2845b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2847b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2850e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
28533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2856e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
28593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2861e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
28643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2867e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
28703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2872e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2877e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
28803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
28813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2883e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2888e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
28913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2893e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
28963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2898e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
290065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
290103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
29023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2904e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
29053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2908e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
29093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2911e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
29123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2915e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
29163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2920e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
29213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2922f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
29235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
29245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
29255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2926e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
29273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2928f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
29295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
29305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
29315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2932e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
29333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
29355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2936e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
29373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2938a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
29395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2940a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2942e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
29433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2944b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2946e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
29473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
29495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2951e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
29523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
295465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
29555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2956e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
29573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
295965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
29605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
2961e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
29623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
296465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2966e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
29673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
297103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2976e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
29773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2982e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
29833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
2984f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2989e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
29903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
29925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
29935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
29945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2996e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
29995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
30005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
30025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3004e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
30053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
300803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
301004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3011e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
30123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
301503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
301604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3018e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
30193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
302104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3024e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
30253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
302604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
302704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
302804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3029e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
30303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
30323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
303504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3036e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
30373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
303904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
304404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3045e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
30463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
305104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
305204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
305323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3055e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
30563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
30583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
30593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
306004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
306104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
306204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3063e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
30643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
306604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
30673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
307004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3071e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
30723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
307504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
307656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*                                 pData);
307704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3078e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
30793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
30813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3082b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
308304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
308404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3085e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
30863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
308704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
308804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
308904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
309004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
309104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
309204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3093e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
30943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
309504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
309604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
30975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
309804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
309904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
310004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3101e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
31023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3103ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3104ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
310504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3106a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
310704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3108e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
31093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
311104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
311404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
311504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
311604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3117e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
31183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
312004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
312104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3122e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
31233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
312504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
312604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3127e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
31283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
313004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
313104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
31323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
31333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
31343dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
31353dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
31363dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
31373dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
31383dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
313904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3140e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
31413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
314204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
31433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3144dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
31453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
31463dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
31473dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
31483dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
31493dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
31503dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
315104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3152e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
31533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
315404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
31553dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
315604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
315704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3158e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
31593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
316004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
31613dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
316204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3163e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
31643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
316504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3166f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
316704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
316804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3169e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
31703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31716f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3172a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
31733dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
317404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3175e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
31763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
317704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3178f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
317904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
31803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3182a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
318304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
318404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3185e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
31863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
318704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
318804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
318903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
319003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3191f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
319204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3193e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
31943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
319504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
319665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
319704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3198e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
31993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
320065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
320104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3202e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
32033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
320404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3205e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
32063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32073dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
32083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
320904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
321004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3211091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
32123fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
32131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
321433faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
32153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
32162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
32202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
32217f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104001,
32227f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104002,
32237f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_SCRGB_LINEAR_EXT = 1000104003,
32247f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_SCRGB_NONLINEAR_EXT = 1000104004,
32257f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104005,
32267f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104006,
32277f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104007,
32287f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104008,
32297f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104009,
32307f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_NONLINEAR_EXT = 1000104010,
32317f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
32327f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
32332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
32362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
32401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
32421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
324303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
32441d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
32451d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
32462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
32472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
32482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
32492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3254f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
32559ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
32569ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
32579ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
32589ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
32599ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
32609ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
32619ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
32621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
32632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
32661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3268a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3269a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3270a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3271a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
32722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3273a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3274a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3275a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
32763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3282563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3283563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3284563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3287b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
32881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3290563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3291563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
32921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
32931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3294b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3295f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3296e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3297e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3298e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3299e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3300b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3301563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3302e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3303f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3304f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
33050e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3306b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3307e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3308b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3309b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3310b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3311b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3312b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3313e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3314b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3315b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3316b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3317b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3318e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3319b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3320b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3321b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3322b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3323b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3324e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3325b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3326b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3327b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3328b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3329b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3330b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3331091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
33323fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3333b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
33342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
33353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3336b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
33393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
33581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
33591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
33691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
33701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3372f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3373f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3374f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3375f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3376f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
33771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3378563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3379e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3380f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3381f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
33820e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3383f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
33841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3385e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3386f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3387f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
33880e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
33891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3390e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3391f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3392f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3393f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3394f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
33951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3396e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3397f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3398f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3399f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3400f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3401f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3402f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
34031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3404e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3405f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3406f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3409091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
34103fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
34113fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
34121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3413543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
34143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
34222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
34231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
34241356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
34252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
3426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
34271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
34361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
34371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3441a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
34421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
34461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
34471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
34531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3458563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3465a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
34661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3470b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3471b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
34723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3483a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
34841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3486e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
34883dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3489e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
34902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
34919ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
34920e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
34931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3494563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3495e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
34961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
349703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
34981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
34991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3500e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3501a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3502a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3503a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3504a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3505e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3506a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
35073dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3508f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3509f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3510a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
35121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
351403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
351503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
35161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
35181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
35201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
35210e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
35231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3524e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
35251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
35269ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
35271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3528a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3529a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3531a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3532a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
35330e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3534a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
35351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3537091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3538543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
35393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3546563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
35481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35509ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
35519ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3552563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
35539ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
35549ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
35559ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
35569ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
35579ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35589ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
35599ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
35601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3561a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3562091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
35631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
35641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3565543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3566091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
35671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3568f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3569f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3570f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3571563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3572563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3576f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3577f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3578f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3579f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3580e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
35811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3582563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3583e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
35841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3585f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
35860e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
35871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3588a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3589e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3590a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3591a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3592a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
359365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
35941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3595a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
35961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3598091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
35991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
36001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3601543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
36023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
36031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3604f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3605f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3606f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3607563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3612f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3613f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3614f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3615f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3616e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
36171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3618563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3619e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
36201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3621f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
36220e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3624a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3625e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3626a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3627a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3628a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3629a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
36301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
36321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3634091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
36351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
36361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3637543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
36383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
36391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3640f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3641f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3642f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3645563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3647563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3648f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3649f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3650f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3651f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3652e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
36531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3654563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3655e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
36561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3657f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
36580e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3660a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3661e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3662a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3663a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3664a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
36651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
36671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3669091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
36701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
36711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3672543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
36733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
36741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3675f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3676f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3677f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3678563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3679563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3680563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3681563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3682563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3683f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3684f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3685f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3686f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3687e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
36881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3689563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3690e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
36911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3692f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
36930e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3695a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3696e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3697a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3698a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3699a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
37001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
37021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3704091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
37051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
370633faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
37073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
37081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3709f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3710f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3711f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3712563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3713563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3714563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
371582afc95f7ed4e896a15d8b2a20d4f4521ed100c2Alistair Strachan    struct ANativeWindow*             window;
3716f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3717f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3718f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3719f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
37201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3721563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3722e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
37231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3724f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
37250e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
37271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
37291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3731091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
37321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
37331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3734543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
37353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
37361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3737f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3738f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3739f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3740563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3744563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3745f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3746f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3747f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3748f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3749e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
37501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3751563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3752e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
37531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3754f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
37550e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3757a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3758e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3759a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3760a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
37611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
37631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_sampler_mirror_clamp_to_edge 1
37652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
37662676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
37672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
37681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_get_physical_device_properties2 1
37701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
37711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
37721194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceFeatures2KHR {
37741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType             sType;
37751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                       pNext;
37761194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures    features;
37771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceFeatures2KHR;
37781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceProperties2KHR {
37801194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType               sType;
37811194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                         pNext;
37821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties    properties;
37831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceProperties2KHR;
37841194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkFormatProperties2KHR {
37861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
37871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                 pNext;
37881194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties    formatProperties;
37891194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkFormatProperties2KHR;
37901194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37911194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkImageFormatProperties2KHR {
37921194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
37931194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
37941194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties    imageFormatProperties;
37951194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkImageFormatProperties2KHR;
37961194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
37971194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceImageFormatInfo2KHR {
37981194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
37991194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*           pNext;
38001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat              format;
38011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType           type;
38021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling         tiling;
38031194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags     usage;
38041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageCreateFlags    flags;
38051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceImageFormatInfo2KHR;
38061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkQueueFamilyProperties2KHR {
38081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
38091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
38101194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties    queueFamilyProperties;
38111194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkQueueFamilyProperties2KHR;
38121194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38131194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceMemoryProperties2KHR {
38141194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                     sType;
38151194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                               pNext;
38161194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties    memoryProperties;
38171194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceMemoryProperties2KHR;
38181194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38191194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkSparseImageFormatProperties2KHR {
38201194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                  sType;
38211194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                            pNext;
38221194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties    properties;
38231194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkSparseImageFormatProperties2KHR;
38241194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38251194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
38261194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType          sType;
38271194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*              pNext;
38281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                 format;
38291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType              type;
38301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSampleCountFlagBits    samples;
38311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags        usage;
38321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling            tiling;
38331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceSparseImageFormatInfo2KHR;
38341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
38371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
38381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
38391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
38401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
38411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
38421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
38431194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38441194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#ifndef VK_NO_PROTOTYPES
38451194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
38461194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38471194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures2KHR*               pFeatures);
38481194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38491194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
38501194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38511194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties2KHR*             pProperties);
38521194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38531194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
38541194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38551194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                                    format,
38561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties2KHR*                     pFormatProperties);
38571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38581194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
38591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
38611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties2KHR*                pImageFormatProperties);
38621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38631194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
38641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pQueueFamilyPropertyCount,
38661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
38671194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38681194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
38691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
38711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38721194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
38731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
38741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
38751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pPropertyCount,
38761194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties2KHR*          pProperties);
38771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#endif
38781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
3879cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_incremental_present 1
3880cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
3881cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
3882cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3883cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkRectLayerKHR {
3884cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkOffset2D offset;
3885cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkExtent2D extent;
3886cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t layer;
3887cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkRectLayerKHR;
3888cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3889cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkPresentRegionKHR {
3890cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t rectangleCount;
3891cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const VkRectLayerKHR* pRectangles;
3892cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkPresentRegionKHR;
3893cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3894cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliotttypedef struct VkPresentRegionsKHR {
3895cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    VkStructureType sType;
3896cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const void* pNext;
3897cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    uint32_t swapchainCount;
3898cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott    const VkPresentRegionKHR* pRegions;
3899cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott} VkPresentRegionsKHR;
39002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
39011d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes#define VK_KHR_shared_presentable_image 1
39021d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
39031d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
39042e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
39052e12cb80a8a1e23fef253911febf1797c835d02fChris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
39062e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
39072e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#ifndef VK_NO_PROTOTYPES
39082e12cb80a8a1e23fef253911febf1797c835d02fChris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
39092e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkDevice                                    device,
39102e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkSwapchainKHR                              swapchain);
39112e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#endif
39122e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
3913e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
3914e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
3915e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3916289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  4
3917e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
39182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
3919e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3920e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3921e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
3922e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
3923e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
3924e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
3925e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
3926e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
3927e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
3928e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
3929e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
3930e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
3931e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
3932e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
3933e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
3934e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
3935e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
3936e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
3937e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
3938e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
3939e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
3940e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
3941e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
3942e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
3943e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
3944e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
3945e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
3946e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
3947e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
3948e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
3949e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
3950e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
3951289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
3952289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
3953289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
3954289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
39552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
3956289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
3957289cb79d444c385185e4f357d3b2fe67a958e932Chris 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),
39582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
3959e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
3960e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3961e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportErrorEXT {
3962e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
3963e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
39642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
39652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
39662676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
39672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
3968e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportErrorEXT;
3969e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3970e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3971e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
3972e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3973e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3974e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
3975e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3976e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
39772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
3978e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
3979e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
3980e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3981e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
3982e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
3983e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
3984e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
3985e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
3986e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
3987e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
3988e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
3989e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
3990e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3991e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
3992e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
3993e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
3994e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
3995e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
3996e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
3997e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
3998e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
3999e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4000e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4001e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
4002e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
4003e2948d83f352b9a093252a06757f76a88f5355d3Jesse 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);
4004e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4005e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
4006e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
4007e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4008e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
4009e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4010e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
4011e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4012e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
4013e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4014e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
4015e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4016e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4017e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
4018e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4019e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4020e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4021e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4022e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4023e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4024e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4025e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
4026e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
4027e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
40282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_glsl_shader 1
40292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
40302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
40312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_filter_cubic 1
40342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
40352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
40362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_rasterization_order 1
40392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
40402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
40412676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef enum VkRasterizationOrderAMD {
40442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
40452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
40462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
40472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
40482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
40492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
40502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkRasterizationOrderAMD;
40512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
40532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType            sType;
40542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                pNext;
40552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkRasterizationOrderAMD    rasterizationOrder;
40562676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkPipelineRasterizationStateRasterizationOrderAMD;
40572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
406056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_trinary_minmax 1
406156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
406256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
406356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
406456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
406556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_explicit_vertex_parameter 1
406656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
406756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
406856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
406956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
40702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_debug_marker 1
40712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  3
40722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
40732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectNameInfoEXT {
40752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
40762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
40772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
40782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
40792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*                   pObjectName;
40802676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectNameInfoEXT;
40812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectTagInfoEXT {
40832676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
40842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
40852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
40862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
40872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      tagName;
40882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    size_t                        tagSize;
40892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pTag;
40902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectTagInfoEXT;
40912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerMarkerInfoEXT {
40932676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType    sType;
40942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*        pNext;
40952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*        pMarkerName;
40962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    float              color[4];
40972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerMarkerInfoEXT;
40982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
40992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
41012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
41022676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
41032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
41042676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
41052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VK_NO_PROTOTYPES
41072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
41082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
41092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
41102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
41122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
41132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
41142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
41162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
41172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
41182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
41202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer);
41212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
41222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
41232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
41242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
41252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#endif
41262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
412756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_gcn_shader 1
412856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
412956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
413056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
413156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
413256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_dedicated_allocation 1
413356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
413456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
413556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
413656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationImageCreateInfoNV {
413756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
413856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
413956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
414056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationImageCreateInfoNV;
414156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
414256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationBufferCreateInfoNV {
414356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
414456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
414556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
414656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationBufferCreateInfoNV;
414756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
414856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
414956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
415056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
415156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkImage            image;
415256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBuffer           buffer;
415356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationMemoryAllocateInfoNV;
415456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
415556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
4156289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_draw_indirect_count 1
4157289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
4158289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
4159289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4160289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4161289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4162289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4163289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4164289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
4165289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4166289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4167289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4168289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4169289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4170289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4171289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4172289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4173289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
4174289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4175289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4176289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4177289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4178289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4179289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4180289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4181289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4182289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4183289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_negative_viewport_height 1
4184289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
4185289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
4186289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4187289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4188289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_gpu_shader_half_float 1
4189289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
4190289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
4191289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4192289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4193289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_shader_ballot 1
4194289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
4195289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
4196289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4197289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4198289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_format_pvrtc 1
4199289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
4200289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
4201289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4202289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4203289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_capabilities 1
4204289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4205289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
4206289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4207289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4208289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
4209289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
4210289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
4211289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
4212289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
4213289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4214289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryHandleTypeFlagBitsNV;
4215289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
4216289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4217289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryFeatureFlagBitsNV {
4218289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
4219289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
4220289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
4221289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4222289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryFeatureFlagBitsNV;
4223289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryFeatureFlagsNV;
4224289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4225289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalImageFormatPropertiesNV {
4226289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageFormatProperties              imageFormatProperties;
4227289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
4228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
4229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
4230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalImageFormatPropertiesNV;
4231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4233289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
4234289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4235289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4236289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
4237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4238289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkFormat                                    format,
4239289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageType                                 type,
4240289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageTiling                               tiling,
4241289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageUsageFlags                           usage,
4242289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageCreateFlags                          flags,
4243289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
4244289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
4245289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4246289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4247289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory 1
4248289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
4249289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
4250289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4251289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalMemoryImageCreateInfoNV {
4252289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4253289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4254289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryImageCreateInfoNV;
4256289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4257289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryAllocateInfoNV {
4258289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4259289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4260289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4261289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryAllocateInfoNV;
4262289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4263289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4264289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4265289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4266289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_win32 1
4267289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4268289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
4269289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4270289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkImportMemoryWin32HandleInfoNV {
4271289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4272289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4273289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleType;
4274289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE                               handle;
4275289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkImportMemoryWin32HandleInfoNV;
4276289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4277289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryWin32HandleInfoNV {
4278289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType               sType;
4279289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                   pNext;
4280289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const SECURITY_ATTRIBUTES*    pAttributes;
4281289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    DWORD                         dwAccess;
4282289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryWin32HandleInfoNV;
4283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
4286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4288289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
4289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceMemory                              memory,
4291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           handleType,
4292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE*                                     pHandle);
4293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4295289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4296289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4297289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_win32_keyed_mutex 1
4298289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
4299289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
4300289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4301289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
4302289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4303289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4304289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 acquireCount;
4305289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pAcquireSyncs;
4306289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pAcquireKeys;
4307289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*          pAcquireTimeoutMilliseconds;
4308289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 releaseCount;
4309289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pReleaseSyncs;
4310289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pReleaseKeys;
4311289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkWin32KeyedMutexAcquireReleaseInfoNV;
4312289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4315289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4316289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_validation_flags 1
4317289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
4318289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
4319289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4320289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4321289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkValidationCheckEXT {
4322289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_ALL_EXT = 0,
4323289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4324289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
4326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
4327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationCheckEXT;
4328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkValidationFlagsEXT {
4330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 disabledValidationCheckCount;
4333289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkValidationCheckEXT*    pDisabledValidationChecks;
4334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationFlagsEXT;
4335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_device_generated_commands 1
4339289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
4340289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
4341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4342289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
4343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
4344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsTokenTypeNVX {
4347289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
4348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
4349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
4350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
4351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
4352289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
4353289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
4354289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
4355289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
4356289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
4357289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
4358289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
4359289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenTypeNVX;
4360289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4361289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryTypeNVX {
4362289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
4363289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
4364289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
4365289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
4366289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
4367289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
4368289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
4369289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
4370289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
4371289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryTypeNVX;
4372289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4373289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4374289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
4375289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
4376289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
4377289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
4378289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
4379289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
4380289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutUsageFlagBitsNVX;
4381289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
4382289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4383289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryUsageFlagBitsNVX {
4384289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
4385289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
4386289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
4387289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryUsageFlagBitsNVX;
4388289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkObjectEntryUsageFlagsNVX;
4389289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4390289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsFeaturesNVX {
4391289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
4392289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
4393289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBool32           computeBindingPointSupport;
4394289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsFeaturesNVX;
4395289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4396289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsLimitsNVX {
4397289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
4398289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
4399289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxIndirectCommandsLayoutTokenCount;
4400289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxObjectEntryCounts;
4401289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceCountBufferOffsetAlignment;
4402289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceIndexBufferOffsetAlignment;
4403289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minCommandsTokenBufferOffsetAlignment;
4404289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsLimitsNVX;
4405289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4406289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsTokenNVX {
4407289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
4408289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                          buffer;
4409289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                      offset;
4410289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenNVX;
4411289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4412289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutTokenNVX {
4413289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
4414289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          bindingUnit;
4415289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          dynamicCount;
4416289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          divisor;
4417289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutTokenNVX;
4418289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4419289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutCreateInfoNVX {
4420289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                            sType;
4421289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                                pNext;
4422289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineBindPoint                        pipelineBindPoint;
4423289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
4424289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                   tokenCount;
4425289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
4426289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutCreateInfoNVX;
4427289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4428289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdProcessCommandsInfoNVX {
4429289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4430289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4431289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                     objectTable;
4432289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
4433289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             indirectCommandsTokenCount;
4434289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
4435289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSequencesCount;
4436289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                      targetCommandBuffer;
4437289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesCountBuffer;
4438289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesCountOffset;
4439289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesIndexBuffer;
4440289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesIndexOffset;
4441289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdProcessCommandsInfoNVX;
4442289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4443289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdReserveSpaceForCommandsInfoNVX {
4444289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                sType;
4445289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                    pNext;
4446289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX               objectTable;
4447289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
4448289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                       maxSequencesCount;
4449289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdReserveSpaceForCommandsInfoNVX;
4450289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4451289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableCreateInfoNVX {
4452289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4453289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4454289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             objectCount;
4455289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
4456289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                      pObjectEntryCounts;
4457289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
4458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxUniformBuffersPerDescriptor;
4459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageBuffersPerDescriptor;
4460289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageImagesPerDescriptor;
4461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSampledImagesPerDescriptor;
4462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxPipelineLayouts;
4463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableCreateInfoNVX;
4464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableEntryNVX {
4466289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4467289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4468289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableEntryNVX;
4469289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4470289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePipelineEntryNVX {
4471289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4472289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4473289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipeline                    pipeline;
4474289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePipelineEntryNVX;
4475289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4476289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableDescriptorSetEntryNVX {
4477289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4478289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4479289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
4480289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDescriptorSet               descriptorSet;
4481289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableDescriptorSetEntryNVX;
4482289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4483289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableVertexBufferEntryNVX {
4484289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4485289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4486289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
4487289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableVertexBufferEntryNVX;
4488289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4489289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableIndexBufferEntryNVX {
4490289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4491289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4492289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
4493289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableIndexBufferEntryNVX;
4494289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4495289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePushConstantEntryNVX {
4496289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
4497289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
4498289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
4499289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkShaderStageFlags            stageFlags;
4500289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePushConstantEntryNVX;
4501289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4502289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4503289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
4504289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
4505289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
4506289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
4507289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
4508289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
4509289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
4510289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
4511289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
4512289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4513289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4514289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
4515289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4516289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
4517289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4518289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
4519289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4520289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
4521289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4522289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
4523289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4524289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
4525289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
4526289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
4527289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4528289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
4529289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4530289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
4531289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
4532289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4533289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
4534289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4535289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableCreateInfoNVX*           pCreateInfo,
4536289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
4537289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX*                           pObjectTable);
4538289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4539289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
4540289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4541289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4542289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
4543289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4544289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
4545289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4546289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4547289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
4548289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
4549289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
4550289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4551289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
4552289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4553289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
4554289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
4555289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
4556289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
4557289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4558289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
4559289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4560289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
4561289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
4562289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4563289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4564889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_display_timing 1
4565889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
4566889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
4567889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4568889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkRefreshCycleDurationGOOGLE {
4569889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    refreshDuration;
4570889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkRefreshCycleDurationGOOGLE;
4571889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4572889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPastPresentationTimingGOOGLE {
4573889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
4574889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
4575889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    actualPresentTime;
4576889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    earliestPresentTime;
4577889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    presentMargin;
4578889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPastPresentationTimingGOOGLE;
4579889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4580889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimeGOOGLE {
4581889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
4582889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
4583889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimeGOOGLE;
4584889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4585889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimesInfoGOOGLE {
4586889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkStructureType               sType;
4587889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const void*                   pNext;
4588889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t                      swapchainCount;
4589889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const VkPresentTimeGOOGLE*    pTimes;
4590889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimesInfoGOOGLE;
4591889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4592889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4593889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
4594889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
4595889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4596889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#ifndef VK_NO_PROTOTYPES
4597889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
4598889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
4599889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
4600889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
4601889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4602889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
4603889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
4604889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
4605889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t*                                   pPresentationTimingCount,
4606889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkPastPresentationTimingGOOGLE*             pPresentationTimings);
4607889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#endif
4608889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
4609d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_hdr_metadata 1
4610d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_SPEC_VERSION  0
4611d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
4612d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
4613d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkXYColorEXT {
4614d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    x;
4615d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    y;
4616d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkXYColorEXT;
4617d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
4618d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkHdrMetadataEXT {
4619d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkStructureType    sType;
4620d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const void*        pNext;
4621d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryRed;
4622d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryGreen;
4623d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryBlue;
4624d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       whitePoint;
4625d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxLuminance;
4626d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              minLuminance;
4627d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxContentLightLevel;
4628d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxFrameAverageLightLevel;
4629d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkHdrMetadataEXT;
4630d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
4631d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
4632d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
4633d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
4634d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#ifndef VK_NO_PROTOTYPES
4635d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney GoeltzenleuchterVKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
4636d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkDevice                                    device,
4637d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    uint32_t                                    swapchainCount,
4638d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkSwapchainKHR*                       pSwapchains,
4639d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkHdrMetadataEXT*                     pMetadata);
4640d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#endif
4641d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
464204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
464304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
464404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
464504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
464604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
4647