vulkan.h revision ad250840766ea76def08c0d9f0b04a09c32dab79
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
46ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_HEADER_VERSION 42
472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
49a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
5077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse 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
6377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse 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,
14877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000,
149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX = -1000072003,
15056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
15104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
15256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
15304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
15404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
15504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStructureType {
15704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
158c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
159c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
160c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
161c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
162f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
163c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
165c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
169c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
170c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
171c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
172c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
173c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
191f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
197f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1983dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
2003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
2013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
2023dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
2033dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
2043dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
2053dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
206bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
207bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
208bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
209bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
210bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
211f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
212f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
213f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
214f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
215f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
216f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
2172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
2182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
2192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
2202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
2212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
22256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
22356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
22456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
225ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000,
226ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001,
227ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002,
228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
2331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
2341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
2351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
2361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
2371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
2381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
2391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
2401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
2411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
242ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
243ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001,
244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002,
245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
246ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
247ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
248ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
249ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
250ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
251ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
252ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
253ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
254ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
25677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
257ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
258ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
259ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHX = 1000071000,
260ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHX = 1000071001,
261ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHX = 1000071002,
262ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHX = 1000071003,
263ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHX = 1000071004,
264ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHX = 1000071005,
265ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHX = 1000071006,
266ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHX = 1000071007,
267ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHX = 1000072000,
268ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHX = 1000072001,
269ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHX = 1000072002,
270ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073000,
271ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073001,
272ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHX = 1000073002,
273ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHX = 1000074000,
274ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHX = 1000074001,
275ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHX = 1000075000,
276ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHX = 1000076000,
277ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHX = 1000076001,
278ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHX = 1000077000,
279ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078000,
280ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078001,
281ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002,
282ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000,
283ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
284889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
285ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
292ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
29377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
29477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
29577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
29677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
29777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
29814866bbeca1ebcda93f43a3352934889a9f37c2bIan Elliott    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
299ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
300ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
301ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
302ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
303ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
304ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
30504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
306f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
307f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
30804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
30904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
3123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
3133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
3143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
3153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
3163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
3173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
3183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
3193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
3203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
3213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
32203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
3233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
3243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
3253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
3283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
3293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
33004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
333f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
334f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
335f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
336f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
339f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
340f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
34204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
362f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UNORM = 30,
363f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SNORM = 31,
364f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_USCALED = 32,
365f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 33,
366f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UINT = 34,
367f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SINT = 35,
368f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SRGB = 36,
369f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 37,
370f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 38,
371f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 39,
372f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 40,
373f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 41,
374f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 42,
375f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 43,
376f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 44,
377f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 45,
378f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 46,
379f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 47,
380f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 48,
381f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 49,
382f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 50,
383f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
384f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
385f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
386f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
387f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
388f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
389f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
390f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
391f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
392f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
394f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
395f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
396f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
397f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
398f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
399f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
400f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
401f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
402f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UNORM = 70,
403f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SNORM = 71,
404f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_USCALED = 72,
405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SSCALED = 73,
406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UINT = 74,
407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SINT = 75,
408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SFLOAT = 76,
409f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UNORM = 77,
410f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SNORM = 78,
411f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_USCALED = 79,
412f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SSCALED = 80,
413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UINT = 81,
414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SINT = 82,
415f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SFLOAT = 83,
416f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UNORM = 84,
417f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SNORM = 85,
418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_USCALED = 86,
419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 87,
420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UINT = 88,
421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SINT = 89,
422f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 90,
423f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 91,
424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 92,
425f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 93,
426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 94,
427f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 95,
428f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 96,
429f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
430f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_UINT = 98,
431f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SINT = 99,
432f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SFLOAT = 100,
433f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_UINT = 101,
434f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SINT = 102,
435f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SFLOAT = 103,
436f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_UINT = 104,
437f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SINT = 105,
438f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 106,
439f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 107,
440f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 108,
441f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
442f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_UINT = 110,
443f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SINT = 111,
444f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SFLOAT = 112,
445f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_UINT = 113,
446f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SINT = 114,
447f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SFLOAT = 115,
448f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_UINT = 116,
449f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SINT = 117,
450f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 118,
451f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_UINT = 119,
452f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SINT = 120,
453f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
454f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
455f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
456f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM = 124,
457f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
458f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT = 126,
459f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_S8_UINT = 127,
460f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 128,
461f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 129,
462f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
463f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
464f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
465f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
466f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
467f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_UNORM_BLOCK = 135,
468f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_SRGB_BLOCK = 136,
469f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_UNORM_BLOCK = 137,
470f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_SRGB_BLOCK = 138,
471f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_UNORM_BLOCK = 139,
472f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_SNORM_BLOCK = 140,
473f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_UNORM_BLOCK = 141,
474f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_SNORM_BLOCK = 142,
475f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
476f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
477f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_UNORM_BLOCK = 145,
478f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_SRGB_BLOCK = 146,
479f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
480f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
481f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
482f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
483f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
484f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
485f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
486f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
487f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
488f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
489f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
490f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
491f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
492f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
493f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
494f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
495f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
496f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
497f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
498f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
499f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
500f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
501f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
502f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
503f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
504f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
505f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
506f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
507f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
508f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
509f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
510f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
511f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
512f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
513f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
514f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
515f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
516f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
517289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
518289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
519289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
520289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
521289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
522289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
523289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
524289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
52504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
526f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
527f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
52804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
52904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
53004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
53304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
5373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
542c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
543c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
544c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
545c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
5463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
55504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
5583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
56004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
565a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
567a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
5683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
5773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
5825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
5835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
5845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
5855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
5865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
5875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
5883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
5893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
5905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
591bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
592af3a1117ffa206a6e3143edf32c494b64e39f303Chris Forbes    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
5935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
5945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
5953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
5965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
5975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
59804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
6093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
61465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
61565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
61665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
61765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
61865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
61965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
62065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
62165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
62265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
62365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
62465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
62565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
62604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
62865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
62965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
63065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
63165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
63265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
63365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
63465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
63504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
63804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
63904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
64004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
6433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
6443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
6453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
6463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
647091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
64804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
649091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
650091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
65104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
65204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
65304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
65565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
65665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
65765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
65865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
65965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
66065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
66165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
66265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
66304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
6653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
6663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
6673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
6693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
67504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
6773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
6803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
68104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
6843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
68504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
68604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
68704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
68904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
69004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
69104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
6923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
6933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
69404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
6953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
6963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
6983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
6993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
70504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
7093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
7133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
72004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
7223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
72765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
72865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
72965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
73065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
73165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
73265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
73365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
73465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
73565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
73665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
73765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
73865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
73965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
74065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
74165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
74265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
74365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
74465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
74565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
74665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
74765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
74865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
74965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
75065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
7603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
7655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
7665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
7675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
7685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
7695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
7705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
7715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
7725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
7735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
774ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
775ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
7765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
7775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
7783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
7795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
7805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
7815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
7823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
78323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
78423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
7852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FILTER_CUBIC_IMG = 1000015000,
78623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
78723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
7883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
78923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
79023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
7933dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
7943dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
7953dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
79623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
7973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
79823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
79923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
802c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
803c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
804c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
805c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
806c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
807c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
8082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
8092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
81023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
81123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
81404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
81504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
81604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
81704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
8223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
82504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
82804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
82904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
83004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
83104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
83204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
83304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
83404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
83504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
83804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
83904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
8403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
8503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
85504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
85704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
85804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
8593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
86004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
86104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
864c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
865c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
866c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
867c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
8683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
8733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
8743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
8753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
8763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
8773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
8783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
8793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
88204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
88304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
88404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
88504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
8863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
88704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
88804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
88904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
89165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
89265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
89365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
89465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
89565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
89665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
89765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
899a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
90604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
90704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
90804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
90904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
9123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
9133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
91433faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
9152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
91677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
91777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
9182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
91904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
92004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
92104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
9233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
9243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
92504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
92604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
92704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
9285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
92904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
93004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
9312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
93204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
93404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
9365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
9375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
9385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
9395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
9405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
941ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
94277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
9432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
9445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
9455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
9465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
9473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
9485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
9495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
9505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
9515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
9525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
9535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
9545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
9552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
9565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
9575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
9585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
9593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
96265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
963b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
9642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
969d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
970d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
971d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
972d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
973d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
9742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
979d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
980ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
9812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
98204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
984a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
985a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
986543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
987543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
988543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
989543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
990543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
991543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
992543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
993543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
994543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
995543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
996543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
997543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
998543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
999543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1000543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1001543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1002543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1003543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1004543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1005289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
10062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1007543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
1008543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
100904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
1012a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1013a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1014a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1015a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
10162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1017a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
10183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
1019a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
10203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
1021b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1022b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1023b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
10242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
1027091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
1028091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
1029091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
10302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1031091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
103204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
103304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
103504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
10362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
103704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
103804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
103904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
104004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
1041a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
104204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
1044ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1045ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1046ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1047ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1048ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1049ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1050ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1051ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1052ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1053ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1054ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
10552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
105604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
105704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
105804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
106104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
106204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
106304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
10642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
106604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
106704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
1069a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1070a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1071a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
10722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1073a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
1074a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
1075a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
10763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
10773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
10783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
107904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
108004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
108104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
108204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
108304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
108404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
108504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
10862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
108704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
108804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
1089a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
10905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
109104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
10923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
109304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
10953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
10963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
10973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1098ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
1099ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
11002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
11023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
11033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
11043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
11053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
1106a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1107a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1108a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1109a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1110a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1111a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
11122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1113a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
11142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1115a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
1116a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1117a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
11183dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
1119a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
11203fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1121c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
11223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
1123c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
1124c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1125c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
11262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
11272676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1128c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
1129c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
1130a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1131a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1132a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1133a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
11343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
113565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
113665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
113765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
113865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
11392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
114065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
114165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1142a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1143a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1145a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1147ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorSetLayoutCreateFlagBits {
1148ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1150ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorSetLayoutCreateFlagBits;
1151a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1154fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
11552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1156fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1157fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1158fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1159a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1160a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1161fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
11623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
11635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
11642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
11665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
1167ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1168ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSubpassDescriptionFlagBits {
1169ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1170ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1171ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1172ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSubpassDescriptionFlagBits;
117304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
117404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
11763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
11773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
11783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
11793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
11803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
11813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
11823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
11833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
11843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
11853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
11863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
11873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
11883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
11893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
11903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
11913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
11923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1193289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1194289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
11952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
11973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
11983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
11993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1200dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1201ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
1202ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
12032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1204dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1205dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1206dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
12073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
12083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
12093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
12102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
12123fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
12153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
12162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
12183fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
121904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
12213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
12223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
12233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
12242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
12263fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1228f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1229f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
12302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1231f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1232f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1233f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
12343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
12353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
12362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
12383fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
12415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
12425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
12432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
12442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
12465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1248e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
12493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
12513e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
12523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
125303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1254e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
12553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
12573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
12583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
12593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1261e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
12623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1265e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
12663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
12683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
12693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
127003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1271e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
12723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
12743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
12753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
127603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1277e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
12785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1282563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1283563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1284563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
12875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
12885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1290563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1291563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1292563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1296563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1297563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
129804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
129904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1303563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1304563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1305563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1306563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
13073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
130803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
13093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1312563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1313563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1319563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1320563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1321563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1332563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1352563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1358563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
136604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
137104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
137204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1374563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1375563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1376563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
13775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
13785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1380563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1381563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1382563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
138604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1389563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1390563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1391563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1396563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1397563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1398563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1402563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1408563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1409563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1410563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1413563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1414563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1415563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1420563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1421563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1422563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1428563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1441563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1442563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1458563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1466563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1467563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1491563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1492563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1493563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1500563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
15025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
15035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
15043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1505563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1506563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1507563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1508563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1509563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1510563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1511563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1512563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
151404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1517563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1518563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1519563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1520563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
15215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1524563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1525563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1529563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1530563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1535563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1537563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1541563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1546563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1552563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1553563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1557563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1558563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1559563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1569563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1570563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1571563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1578563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1579563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1580563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1581563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1584a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1585a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
15863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1588563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1589563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1590563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
15913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1596563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1597563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1598563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
159904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1602563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1603563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1604563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
161104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
161204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1614563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1615563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1616563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1617563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1618563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
162004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1623563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1624563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1625563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1626563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1627a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1628a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1633a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1634a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1636563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1637563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1638563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1639a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1642563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1648563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1649563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1650563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1654563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1655563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1656563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1660a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1661a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1663563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1664563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
166604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
166704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
166904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
167004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1671a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1672a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1673a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1674a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1675a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1676a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1677a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1678a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1679a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1680a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1681a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1682a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1684563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1686563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1690563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
169904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1705563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1707563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1711563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1712563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1713563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1714563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1715563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1716563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1717563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1718563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
171904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
172004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1722563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1723563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1724563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1725563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1726563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1727563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1728563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1734563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1735563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1736563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1737563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1738563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1739563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1740563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1744563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1745563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1746563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
174704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1750563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1751563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1752563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1753563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1754563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1758563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1759563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1760563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1761563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
176265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
177104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1773563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1774563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1777563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1778563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1779563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1785563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1786563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1787563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1788563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1792563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1793563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1794563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1795563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1796563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1800563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1801563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1802563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
180304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1806563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1807563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1808563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1809563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
181004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1813563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1814563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1815563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1824563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1825563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
182604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
182704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1829563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1832563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1838a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
183903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
184103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1846563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1847563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1848563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1849563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1850563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1855563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1857563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
185804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1863563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1864563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1865563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1866563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
18675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
18685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1870563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
18725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
18735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1875563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1876563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
18775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
18785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
1880563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
1881563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
18825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
18835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
18843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
1885563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
1886563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
1887563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
1888563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
1891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
189304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
1895563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1896563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
1901563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
1902563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
1903563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
1904563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
1907563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
19083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
190904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
1911563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
1912563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
1915563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
1916563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
1917563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
1918563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
1919563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
1924563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
1925563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
1926563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
1927563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
1928563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
1933563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1934563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1935563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
1936563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
1937563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
1938563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
1941563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
1942563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
1943563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
1944563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
194504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
194604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
1948563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
1949563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
1950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
1951563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
1952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
1953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
1954563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
1955563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
195604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
1959563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
1960563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
1961563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
1962563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
1963563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
1964563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
1965563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
1966563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
1970563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
1971563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
1972563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
1973563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
1974563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
19755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
19765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
1978563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
1979563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
1980563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
1981563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
1983563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
1984563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
1985563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
1986563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
1987563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
1988563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
1989563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
1990563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
1991563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
1992563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
1993563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
1994563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
1995563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
199704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
199804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
2000563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
2001563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
2002563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
2003563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
2004563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
2005563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
2006563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
200704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
200804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
2010563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2011563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
2012563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
201304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2018563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
2019563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
2020563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
2026563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2027563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2028563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
2029563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
2030563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
2031563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
2032563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
2033563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
2034563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
2037563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
2038563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
2039563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
2040563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
2041563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
2042563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
2043563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
204504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
2049563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
2050563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2051563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
205204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
205304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
2056563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
2057563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
2058563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
2059563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
206004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
206104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
2063563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
2064563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
206565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
2068563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
2069563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
2071563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
2072563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
2073563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
2077563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2078563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2079563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
2080563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
2081563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
20823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
2083fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
20843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
2086563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
2087563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
2088a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
2089a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
20903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
2091563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
2092563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
20945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
20955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
2097563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2098563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
2101563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
2102563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
2103563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
2104563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
2105563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
2106563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
2110563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2111563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2112563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
2113563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
2116563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
2117563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
2118563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
212004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
2125563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
2126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
2127563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
2128563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
2129563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
2130563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
2134563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
2135563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
2136563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
2137563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
2138563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
2139563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
2140563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
2141563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
2142563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
214304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
214404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
2146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
2147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
214804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
214904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
2151563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
2152563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
2155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
2156563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
2157563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
216104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
216204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2164563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2165563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
217104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2174563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2175563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2178563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2179563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2180563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2181563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2182563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
218304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
218404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2186563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2187563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2188563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2189563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
21903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
219104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2193563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2194563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2195563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2196563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
21983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
219904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2204563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2205563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2206563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2207563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2208563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
22093dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
22103dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22113dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2214563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2215563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
22163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
221704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
222204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
222304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2226563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2227563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2228563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
222965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
22305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
22313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
223704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
223804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2240563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2241563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2242563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
224404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
224504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2252563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
225304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
225404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
225904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
226004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
22645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
22655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
22663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2269ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2270ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
22713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2275ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2276ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
22773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2281a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2284563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2287563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2288563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
228904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22913dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2292563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
22963dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2303563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2304563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2305563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2306563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2307563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23103dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2312563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2313563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2319563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2320563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
23213dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
23223dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
23233dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
23313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
23323dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
23333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
23373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
23453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
234604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2351563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
23523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2355e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2356e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2357e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2358e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2359e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2360e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2361e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2362e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2363e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2364e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2365e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2366e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2367e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2368e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2369e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2370e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2371e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2372e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2373e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2374e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2375e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2376e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2378e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2379e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2380e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2382e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2383e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2384e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2385e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2386e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2387e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2388e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2389e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2390e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2391e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2393e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2394e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2396e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2397e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2398e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2399e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2401e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2402e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2403e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2404f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse 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);
2405e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2406e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2407e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2408e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2409e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2410e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2411e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2412e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2413e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2414e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2415e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2416e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2417e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2418e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2419e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2420e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2421e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2423e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2424e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2426e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2427e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2428e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2429e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2430e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2432e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2433e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2434e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2435e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2436e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2437e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2438e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2439e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2440e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2441e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2442e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2443e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2444e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2445e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2446e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2447e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2448e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2449f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2450f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2451e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2452e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2453e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2454e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2455e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2456e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2457e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2458e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse 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);
2459e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2460f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2461e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2462e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2463e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2464e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2465ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
2466e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2467e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2468e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2469e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2470e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2471e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
247256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2473e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2474e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2475e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2476e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2477e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2478e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2479e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
24803dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
24813dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
24823dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
24833dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2484f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
24853dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2486f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2487f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2488e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2489e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2490e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
24913dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2493563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2494e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
24963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2499e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
250003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
25013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2503e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2508e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2512e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
25235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2526e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
253203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
25335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2535e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2539e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2543e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2547e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
25503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2553e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
255403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
25553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2557e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
255903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2562e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
256503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2568e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
256903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2572e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
257403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
257604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2577e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2583e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2585a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2586b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2589e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2592e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2595e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
25973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
25983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
25993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2601e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2606e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
261204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2614e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2618e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
26213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2623e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
26263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2628e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2633e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
26363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2639e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
26423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2645e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2650e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2655e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
265803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2661e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2665091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
266803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2671e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
267303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2674a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2675a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2677e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
26803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2683e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
26863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2688e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2693e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2697e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2704e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
27073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2710e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
27133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2715e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
27183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2721e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
27243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2726e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
272904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2730e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2734e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
273704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2738e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
273904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
27413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2744e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
27473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2749e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
275004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2752f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
275304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2754a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
275504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2756a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
275804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2759e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
27623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2765e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
276604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
27683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2770e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
27733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2776e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
27793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2781e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
27843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2787e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
27903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2798e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
28013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
280204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2804e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
28073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2809e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
28123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2815e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
28183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2820e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
28233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2826e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
28293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2831e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2834a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2837e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2843e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
284603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
28483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2851e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
285403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
28563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2859e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
28623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2864e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
28673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2870e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
28733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2875e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
28783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2881e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
28843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2886e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
28893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2892e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
28953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2897e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
29003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2903e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
290503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
29063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2908e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2910fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2911fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2913e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
29153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
29165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2918e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
292103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2924e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2926b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2928b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2931e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
29343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2937e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
29403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2942e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
29453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2948e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
295003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
29513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2953e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2958e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
29603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
29613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
29623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2964e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
296665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
29673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2969e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
297165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
29723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2974e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
29763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
29773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2979e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
298165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
298203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
29833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2985e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
29863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2989e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
29903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2992e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
29933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
29943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2996e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
29973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3001e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
30023fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3003f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
30045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
30055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
30065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3007e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
30083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3009f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
30105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
30115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
30125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3013e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
30143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
30165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3017e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
30183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3019a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
30205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
3021a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3023e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
30243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3025b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
302604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3027e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
30283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
30305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3032e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
30333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
303565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
30365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3037e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
30383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
304065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
30415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3042e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
30433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
304565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
304604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3047e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
30483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
305104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
305203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
305504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3057e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
30583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
306004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
306104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
306204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3063e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
30643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3065f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
306604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
306704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3070e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
30713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
307204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
30735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
30745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
30755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
307604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3077e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
30783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
307904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
30805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
30815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
308204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
30835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
308404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3085e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
30863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
308704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
308804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
308903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
309004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
309104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3092e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
30933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
309404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
309504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
309603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
309704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
309804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3099e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
31003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3101ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
3102ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
3103ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
310404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3105e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
31063fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
310704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
310804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
310904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3110e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
31113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
31133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
311404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
311504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
311604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3117e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
31183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
312004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
312304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
312404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
312504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3126e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
31273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
312904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
313204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
313304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
313423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
313504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3136e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
31373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
313804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
31393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
314104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
314204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
314304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3144e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
31453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
314604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
314704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
314904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
315004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
315104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3152e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
31533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
315604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
315756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*                                 pData);
315804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3159e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
31603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3163b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
316404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
316504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3166e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
31673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
316804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
316904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
317004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
317104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
317204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
317304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3174e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
31753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
317604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
317704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
31785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
317904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
318004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
318104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3182e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
31833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3184ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3185ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
318604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3187a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
318804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3189e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
31903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
319104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
319204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
319504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
319604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
319704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3198e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
31993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
320004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
320104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
320204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3203e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
32043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
320504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
320604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
320704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3208e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
32093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
321004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
321104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
321204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
32133fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
32143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
32153dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
32163dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
32173dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
32183dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
32193dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
322004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3221e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
32223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
322304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
32243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3225dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
32263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
32273dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
32283dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
32293dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
32303dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
32313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
323204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3233e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
32343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
323504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
32363dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
323704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
323804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3239e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
32403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
32423dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
324304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3244e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
32453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3247f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
324804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
324904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3250e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
32513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32526f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3253a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
32543dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
325504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3256e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
32573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
325804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3259f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
326004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
32613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
32623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3263a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
326404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
326504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3266e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
32673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
326804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
326904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
327003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
327103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3272f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
327304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3274e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
32753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
327604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
327765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
327804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3279e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
32803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
328165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
328204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3283e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
32843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
328504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3286e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
32873fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32883dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
32893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
329004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
329104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3292091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
32933fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
329533faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
32963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
32972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
32981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
33012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
3302bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
3303bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
3304bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104003,
3305bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104004,
3306bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104005,
3307bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104006,
3308bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104007,
3309bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104008,
3310bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_170M_EXT = 1000104009,
3311bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_ST2084_EXT = 1000104010,
33127f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
33137f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
3314bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
33152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
33162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
33172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
33182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
33191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
33201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
33231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
33241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
332503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
33261d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
33271d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
33282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
33292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
33302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
33312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3336f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
33379ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
33389ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
33399ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
33409ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
33419ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
33429ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
33439ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
33441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
33452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3350a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3351a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3352a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3353a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
33542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3355a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3356a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3357a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
33583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3369b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
33701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
33741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
33751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3376b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3377f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3378e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3379e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3380e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3381e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3382b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3383563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3384e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3385f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3386f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
33870e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3388b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3389e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3390b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3391b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3392b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3393b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3394b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3396b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3397b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3398b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3399b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3401b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3402b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3403b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3404b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3405b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3406e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3407b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3408b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3409b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3410b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3411b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3412b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3413091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
34143fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3415b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
34162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
34173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3418b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3419ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3420ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSwapchainCreateFlagBitsKHR {
3421ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
3422ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3423ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSwapchainCreateFlagBitsKHR;
3424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3425f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
34263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3428563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3429563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3430563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3441563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3442563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
34451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
34461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
34561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
34571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3459f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3460f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3461f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3462f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3463f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
34641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3465563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3466e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3467f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3468f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
34690e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3470f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
34711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3472e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3473f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3474f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
34750e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
34761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3477e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3478f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3479f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3480f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3481f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
34821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3483e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3484f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3485f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3486f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3487f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3488f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3489f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3491e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3492f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3493f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
34941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3496091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
34973fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
34983fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
34991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3500543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
35013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3505f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3506f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3507f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3508f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
35092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
35101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
35111356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
35122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
3513f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
35141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3517563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3518563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3519563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3520563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3521563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3522563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
35231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
35241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3526563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3528a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
35291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3531563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
35331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3537563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3538563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3539563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
35401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
35411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3546563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3547563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3552a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
35531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3557b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3558b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
35593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3565563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3569563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3570a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
35711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3573e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3574e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
35753dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3576e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
35772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
35789ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
35790e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
35801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3581563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3582e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
35831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
358403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
35851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
35861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3587e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3588a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3589a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3590a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3591a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3592e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3593a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
35943dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3595f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3596f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3597a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3598e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
35991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
360103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
360203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
36031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3604e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
36051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
36071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
36080e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
36101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3611e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
36121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36139ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
36141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3615a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3616a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3617e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3618a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3619a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
36200e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3621a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
36221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3624091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3625543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
36263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
36271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3629563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
36341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
36351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36379ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
36389ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3639563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
36409ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
36419ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
36429ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
36439ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
36449ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36459ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
36469ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
36471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3648a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3649091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
36501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
36511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3652543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3653091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
36541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3655f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3656f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3657f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3662563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3663f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3664f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3665f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3666f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3667e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
36681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3669563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3670e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
36711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3672f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
36730e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3675a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3676e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3677a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3678a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3679a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
368065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
36811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3682a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
36831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3685091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
36861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
36871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3688543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
36893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
36901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3691f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3692f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3693f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3694563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3695563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3699f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3700f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3701f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3702f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3703e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
37041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3705563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3706e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
37071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3708f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
37090e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3711a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3712e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3713a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3714a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3715a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3716a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
37171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
37191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3721091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
37221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
37231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3724543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
37253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
37261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3727f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3728f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3729f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3730563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3731563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3732563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3734563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3735f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3736f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3737f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3738f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
37401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3741563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3742e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
37431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3744f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
37450e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3747a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3748e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3749a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3750a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3751a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
37521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
37541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3756091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
37571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
37581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3759543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
37603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
37611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3762f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3763f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3764f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3770f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3771f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3772f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3773f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3774e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
37751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3776563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3777e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
37781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3779f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
37800e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3782a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3783e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3784a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3785a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3786a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
37871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
37891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3791091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
37921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
379333faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
37943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
37951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3796f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3797f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3798f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3799563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3800563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3801563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
380282afc95f7ed4e896a15d8b2a20d4f4521ed100c2Alistair Strachan    struct ANativeWindow*             window;
3803f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3804f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3805f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3806f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
38071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3808563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3809e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
38101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3811f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
38120e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
38141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
38161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3818091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
38191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
38201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3821543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
38223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
38231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3824f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3825f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3826f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3827563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3828563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3829563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3832f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3833f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3834f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3835f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3836e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
38371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3838563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3839e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
38401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3841f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
38420e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3844a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3845e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3846a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3847a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
38481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
38501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_sampler_mirror_clamp_to_edge 1
38522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
38532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
38542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
38551194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_get_physical_device_properties2 1
38571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
38581194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
38591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceFeatures2KHR {
38611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType             sType;
38621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                       pNext;
38631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures    features;
38641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceFeatures2KHR;
38651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceProperties2KHR {
38671194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType               sType;
38681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                         pNext;
38691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties    properties;
38701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceProperties2KHR;
38711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38721194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkFormatProperties2KHR {
38731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
38741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                 pNext;
38751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties    formatProperties;
38761194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkFormatProperties2KHR;
38771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkImageFormatProperties2KHR {
38791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
38801194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
38811194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties    imageFormatProperties;
38821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkImageFormatProperties2KHR;
38831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38841194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceImageFormatInfo2KHR {
38851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
38861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*           pNext;
38871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat              format;
38881194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType           type;
38891194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling         tiling;
38901194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags     usage;
38911194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageCreateFlags    flags;
38921194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceImageFormatInfo2KHR;
38931194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
38941194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkQueueFamilyProperties2KHR {
38951194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
38961194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
38971194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties    queueFamilyProperties;
38981194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkQueueFamilyProperties2KHR;
38991194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceMemoryProperties2KHR {
39011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                     sType;
39021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                               pNext;
39031194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties    memoryProperties;
39041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceMemoryProperties2KHR;
39051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkSparseImageFormatProperties2KHR {
39071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                  sType;
39081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                            pNext;
39091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties    properties;
39101194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkSparseImageFormatProperties2KHR;
39111194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39121194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
39131194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType          sType;
39141194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*              pNext;
39151194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                 format;
39161194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType              type;
39171194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSampleCountFlagBits    samples;
39181194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags        usage;
39191194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling            tiling;
39201194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceSparseImageFormatInfo2KHR;
39211194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39221194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39231194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
39241194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
39251194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
39261194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
39271194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
39281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
39291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
39301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#ifndef VK_NO_PROTOTYPES
39321194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
39331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures2KHR*               pFeatures);
39351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39361194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
39371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties2KHR*             pProperties);
39391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39401194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
39411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                                    format,
39431194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties2KHR*                     pFormatProperties);
39441194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39451194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
39461194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39471194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
39481194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties2KHR*                pImageFormatProperties);
39491194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39501194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
39511194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39521194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pQueueFamilyPropertyCount,
39531194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
39541194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39551194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
39561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
39581194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39591194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
39601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
39621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pPropertyCount,
39631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties2KHR*          pProperties);
39641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#endif
39651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
396677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_shader_draw_parameters 1
396777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
396877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
3969cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
3970cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
397177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_maintenance1 1
397277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_SPEC_VERSION  1
397377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
39742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
397577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkCommandPoolTrimFlagsKHR;
39762e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
397777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
39782e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
39792e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#ifndef VK_NO_PROTOTYPES
398077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
39812e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkDevice                                    device,
398277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPool                               commandPool,
398377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPoolTrimFlagsKHR                   flags);
39842e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#endif
39852e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
3986ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_push_descriptor 1
3987ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1
3988ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
3989ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3990ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
3991ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
3992ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
3993ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxPushDescriptors;
3994ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDevicePushDescriptorPropertiesKHR;
3995ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3996ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3997ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
3998ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3999ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4000ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
4001ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4002ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
4003ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4004ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4005ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    descriptorWriteCount,
4006ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites);
4007ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4008ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4009ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_descriptor_update_template 1
4010ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
4011ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4012ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
4013ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
4014ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4015ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4016ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorUpdateTemplateTypeKHR {
4017ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
4018ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4019ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
4020ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
4021ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1),
4022ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
4023ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateTypeKHR;
4024ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4025ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
4026ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4027ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateEntryKHR {
4028ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstBinding;
4029ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstArrayElement;
4030ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            descriptorCount;
4031ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorType    descriptorType;
4032ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              offset;
4033ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              stride;
4034ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateEntryKHR;
4035ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4036ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateCreateInfoKHR {
4037ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                              sType;
4038ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                                        pNext;
4039ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateCreateFlagsKHR     flags;
4040ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     descriptorUpdateEntryCount;
4041ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateEntryKHR*    pDescriptorUpdateEntries;
4042ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateTypeKHR            templateType;
4043ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSetLayout                        descriptorSetLayout;
4044ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                          pipelineBindPoint;
4045ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                             pipelineLayout;
4046ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     set;
4047ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateCreateInfoKHR;
4048ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4049ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4050ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
4051ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4052ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
4053ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
4054ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4055ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4056ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
4057ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4058ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
4059ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4060ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR*              pDescriptorUpdateTemplate);
4061ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4062ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
4063ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4064ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4065ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4066ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4067ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
4068ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4069ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSet                             descriptorSet,
4070ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4071ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4072ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4073ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
4074ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4075ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4076ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4077ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4078ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4079ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4080ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4081e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
4082e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
4083e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
40848f49fcb42d560de4fcc9224226495b942a94bff4Jesse Hall#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  5
4085e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
40862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
4087e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4088e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4089e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
4090e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
4091e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
4092e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
4093e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
4094e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
4095e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
4096e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
4097e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
4098e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
4099e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
4100e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
4101e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
4102e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
4103e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
4104e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
4105e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
4106e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
4107e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
4108e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
4109e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
4110e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
4111e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
4112e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
4113e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
4114e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
4115e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
4116e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
4117e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
4118e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
4119289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
4120289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
4121289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
4122289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
41232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4124289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
4125289cb79d444c385185e4f357d3b2fe67a958e932Chris 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),
41262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
4127e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
4128e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4129e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportErrorEXT {
4130e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
4131e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
41322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
41332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
41342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
41352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
4136e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportErrorEXT;
4137e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4138e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4139e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
4140e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
4141e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
4142e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
4143e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
4144e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
41452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
4146e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
4147e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
4148e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4149e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
4150e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4151e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4152e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4153e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4154e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4155e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4156e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
4157e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
4158e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4159e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4160e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
4161e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
4162e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
4163e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
4164e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
4165e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
4166e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
4167e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4168e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4169e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
4170e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
4171e2948d83f352b9a093252a06757f76a88f5355d3Jesse 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);
4172e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4173e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
4174e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
4175e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4176e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
4177e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4178e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
4179e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4180e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
4181e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4182e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
4183e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4184e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4185e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
4186e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4187e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4188e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4189e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4190e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4191e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4192e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4193e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
4194e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
4195e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
41962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_glsl_shader 1
41972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
41982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
41992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_filter_cubic 1
42022676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
42032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
42042676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_rasterization_order 1
42072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
42082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
42092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef enum VkRasterizationOrderAMD {
42122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
42132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
42142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
42152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
42162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
42172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
42182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkRasterizationOrderAMD;
42192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
42212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType            sType;
42222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                pNext;
42232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkRasterizationOrderAMD    rasterizationOrder;
42242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkPipelineRasterizationStateRasterizationOrderAMD;
42252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42272676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
422856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_trinary_minmax 1
422956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
423056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
423156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
423256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
423356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_explicit_vertex_parameter 1
423456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
423556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
423656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
423756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
42382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_debug_marker 1
42398f49fcb42d560de4fcc9224226495b942a94bff4Jesse Hall#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
42402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
42412676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectNameInfoEXT {
42432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
42442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
42452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
42462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
42472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*                   pObjectName;
42482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectNameInfoEXT;
42492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectTagInfoEXT {
42512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
42522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
42532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
42542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
42552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      tagName;
42562676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    size_t                        tagSize;
42572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pTag;
42582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectTagInfoEXT;
42592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42602676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerMarkerInfoEXT {
42612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType    sType;
42622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*        pNext;
42632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*        pMarkerName;
42642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    float              color[4];
42652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerMarkerInfoEXT;
42662676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
42692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
42702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
42712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
42722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
42732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VK_NO_PROTOTYPES
42752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
42762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
42772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
42782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
42802676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
42812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
42822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42832676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
42842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
42852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
42862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
42882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer);
42892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
42902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
42912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
42922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
42932676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#endif
42942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
429556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_gcn_shader 1
429656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
429756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
429856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
429956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
430056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_dedicated_allocation 1
430156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
430256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
430356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
430456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationImageCreateInfoNV {
430556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
430656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
430756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
430856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationImageCreateInfoNV;
430956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
431056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationBufferCreateInfoNV {
431156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
431256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
431356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
431456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationBufferCreateInfoNV;
431556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
431656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
431756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
431856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
431956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkImage            image;
432056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBuffer           buffer;
432156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationMemoryAllocateInfoNV;
432256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
432356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
432477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
4325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_draw_indirect_count 1
4326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
4327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
4328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4333289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
4334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4339289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4340289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4342289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
4343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4347289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4352289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_negative_viewport_height 1
4353289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
4354289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
4355289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4356289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4357289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_gpu_shader_half_float 1
4358289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
4359289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
4360289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4361289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4362289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_shader_ballot 1
4363289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
4364289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
4365289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4366289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4367ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_multiview 1
4368ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_SPEC_VERSION     1
4369ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_EXTENSION_NAME   "VK_KHX_multiview"
4370ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4371ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkRenderPassMultiviewCreateInfoKHX {
4372ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4373ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4374ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           subpassCount;
4375ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pViewMasks;
4376ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           dependencyCount;
4377ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const int32_t*     pViewOffsets;
4378ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           correlationMaskCount;
4379ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCorrelationMasks;
4380ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkRenderPassMultiviewCreateInfoKHX;
4381ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4382ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
4383ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4384ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4385ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiview;
4386ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewGeometryShader;
4387ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewTessellationShader;
4388ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewFeaturesKHX;
4389ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4390ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
4391ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4392ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4393ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewViewCount;
4394ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewInstanceIndex;
4395ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPropertiesKHX;
4396ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4397ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4398ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4399289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_format_pvrtc 1
4400289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
4401289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
4402289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4403289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4404289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_capabilities 1
4405289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4406289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
4407289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4408289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4409289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
4410289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
4411289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
4412289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
4413289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
4414289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4415289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryHandleTypeFlagBitsNV;
4416289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
4417289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4418289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryFeatureFlagBitsNV {
4419289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
4420289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
4421289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
4422289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4423289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryFeatureFlagBitsNV;
4424289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryFeatureFlagsNV;
4425289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4426289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalImageFormatPropertiesNV {
4427289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageFormatProperties              imageFormatProperties;
4428289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
4429289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
4430289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
4431289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalImageFormatPropertiesNV;
4432289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4433289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4434289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
4435289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4436289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4437289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
4438289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4439289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkFormat                                    format,
4440289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageType                                 type,
4441289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageTiling                               tiling,
4442289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageUsageFlags                           usage,
4443289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageCreateFlags                          flags,
4444289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
4445289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
4446289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4447289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4448289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory 1
4449289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
4450289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
4451289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4452289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalMemoryImageCreateInfoNV {
4453289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4454289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4455289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4456289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryImageCreateInfoNV;
4457289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryAllocateInfoNV {
4459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4460289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryAllocateInfoNV;
4463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4466289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4467289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_win32 1
4468289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4469289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
4470289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4471289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkImportMemoryWin32HandleInfoNV {
4472289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4473289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4474289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleType;
4475289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE                               handle;
4476289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkImportMemoryWin32HandleInfoNV;
4477289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4478289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryWin32HandleInfoNV {
4479289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType               sType;
4480289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                   pNext;
4481289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const SECURITY_ATTRIBUTES*    pAttributes;
4482289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    DWORD                         dwAccess;
4483289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryWin32HandleInfoNV;
4484289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4485289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4486289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
4487289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4488289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4489289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
4490289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4491289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceMemory                              memory,
4492289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           handleType,
4493289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE*                                     pHandle);
4494289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4495289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4496289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4497289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4498289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_win32_keyed_mutex 1
4499289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
4500289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
4501289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4502289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
4503289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4504289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4505289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 acquireCount;
4506289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pAcquireSyncs;
4507289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pAcquireKeys;
4508289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*          pAcquireTimeoutMilliseconds;
4509289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 releaseCount;
4510289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pReleaseSyncs;
4511289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pReleaseKeys;
4512289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkWin32KeyedMutexAcquireReleaseInfoNV;
4513289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4514289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4515289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4516289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4517ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group 1
4518ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MAX_DEVICE_GROUP_SIZE_KHX      32
4519ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_SPEC_VERSION  1
4520ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
4521ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4522ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4523ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkPeerMemoryFeatureFlagBitsKHX {
4524ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
4525ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
4526ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
4527ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
4528ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4529ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPeerMemoryFeatureFlagBitsKHX;
4530ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPeerMemoryFeatureFlagsKHX;
4531ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4532ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkMemoryAllocateFlagBitsKHX {
4533ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
4534ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4535ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagBitsKHX;
4536ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMemoryAllocateFlagsKHX;
4537ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4538ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDeviceGroupPresentModeFlagBitsKHX {
4539ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
4540ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
4541ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
4542ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
4543ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4544ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentModeFlagBitsKHX;
4545ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
4546ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4547ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryAllocateFlagsInfoKHX {
4548ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType             sType;
4549ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                 pNext;
4550ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryAllocateFlagsKHX    flags;
4551ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                    deviceMask;
4552ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagsInfoKHX;
4553ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4554ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindBufferMemoryInfoKHX {
4555ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4556ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4557ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBuffer           buffer;
4558ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
4559ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
4560ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
4561ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
4562ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindBufferMemoryInfoKHX;
4563ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4564ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemoryInfoKHX {
4565ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4566ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4567ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImage            image;
4568ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
4569ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
4570ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
4571ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
4572ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           SFRRectCount;
4573ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pSFRRects;
4574ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemoryInfoKHX;
4575ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4576ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupRenderPassBeginInfoKHX {
4577ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4578ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4579ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4580ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceRenderAreaCount;
4581ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pDeviceRenderAreas;
4582ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupRenderPassBeginInfoKHX;
4583ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4584ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
4585ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4586ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4587ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4588ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupCommandBufferBeginInfoKHX;
4589ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4590ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSubmitInfoKHX {
4591ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4592ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4593ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           waitSemaphoreCount;
4594ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pWaitSemaphoreDeviceIndices;
4595ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           commandBufferCount;
4596ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCommandBufferDeviceMasks;
4597ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           signalSemaphoreCount;
4598ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pSignalSemaphoreDeviceIndices;
4599ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSubmitInfoKHX;
4600ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4601ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupBindSparseInfoKHX {
4602ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4603ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4604ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           resourceDeviceIndex;
4605ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryDeviceIndex;
4606ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupBindSparseInfoKHX;
4607ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4608ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentCapabilitiesKHX {
4609ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
4610ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
4611ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
4612ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
4613ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentCapabilitiesKHX;
4614ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4615ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImageSwapchainCreateInfoKHX {
4616ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4617ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4618ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4619ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImageSwapchainCreateInfoKHX;
4620ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4621ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemorySwapchainInfoKHX {
4622ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4623ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4624ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4625ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           imageIndex;
4626ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemorySwapchainInfoKHX;
4627ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4628ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkAcquireNextImageInfoKHX {
4629ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4630ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4631ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4632ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint64_t           timeout;
4633ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore        semaphore;
4634ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkFence            fence;
4635ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4636ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkAcquireNextImageInfoKHX;
4637ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4638ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentInfoKHX {
4639ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                        sType;
4640ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                            pNext;
4641ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                               swapchainCount;
4642ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*                        pDeviceMasks;
4643ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagBitsKHX    mode;
4644ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentInfoKHX;
4645ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4646ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSwapchainCreateInfoKHX {
4647ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
4648ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
4649ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
4650ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSwapchainCreateInfoKHX;
4651ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4652ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4653ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
4654ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos);
4655ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos);
4656ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
4657ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
4658ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
4659ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
4660ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4661ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
4662ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4663ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4664ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
4665ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4666ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    heapIndex,
4667ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    localDeviceIndex,
4668ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    remoteDeviceIndex,
4669ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPeerMemoryFeatureFlagsKHX*                pPeerMemoryFeatures);
4670ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4671ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX(
4672ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4673ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
4674ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindBufferMemoryInfoKHX*            pBindInfos);
4675ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4676ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX(
4677ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4678ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
4679ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindImageMemoryInfoKHX*             pBindInfos);
4680ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4681ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
4682ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4683ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    deviceMask);
4684ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4685ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
4686ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4687ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentCapabilitiesKHX*        pDeviceGroupPresentCapabilities);
4688ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4689ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
4690ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4691ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
4692ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX*           pModes);
4693ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4694ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
4695ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4696ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAcquireNextImageInfoKHX*            pAcquireInfo,
4697ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pImageIndex);
4698ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4699ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
4700ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4701ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupX,
4702ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupY,
4703ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupZ,
4704ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
4705ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
4706ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
4707ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4708ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
4709ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
4710ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
4711ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pRectCount,
4712ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkRect2D*                                   pRects);
4713ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4714ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4715289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_validation_flags 1
4716289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
4717289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
4718289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4719289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4720289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkValidationCheckEXT {
4721289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_ALL_EXT = 0,
4722289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4723289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4724289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
4725289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
4726289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationCheckEXT;
4727289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4728289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkValidationFlagsEXT {
4729289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4730289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4731289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 disabledValidationCheckCount;
4732289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkValidationCheckEXT*    pDisabledValidationChecks;
4733289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationFlagsEXT;
4734289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4735289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4736289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
473777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_VI_NN
473877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_vi_surface 1
473977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_SPEC_VERSION     1
474077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_EXTENSION_NAME   "VK_NN_vi_surface"
474177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
474277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkViSurfaceCreateFlagsNN;
474377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
474477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkViSurfaceCreateInfoNN {
474577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
474677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
474777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkViSurfaceCreateFlagsNN    flags;
474877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                       window;
474977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkViSurfaceCreateInfoNN;
475077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
475177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
475277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
475377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
475477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
475577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
475677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkInstance                                  instance,
475777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkViSurfaceCreateInfoNN*              pCreateInfo,
475877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
475977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR*                               pSurface);
476077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
476177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_VI_NN */
476277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
476377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_ballot 1
476477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
476577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
476677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
476777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
476877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_vote 1
476977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
477077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
477177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
477277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
4773ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group_creation 1
4774ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
4775ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
4776ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4777ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceGroupPropertiesKHX {
4778ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType     sType;
4779ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*         pNext;
4780ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            physicalDeviceCount;
4781ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
4782ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32            subsetAllocation;
4783ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceGroupPropertiesKHX;
4784ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4785ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupDeviceCreateInfoKHX {
4786ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType            sType;
4787ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                pNext;
4788ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                   physicalDeviceCount;
4789ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDevice*    pPhysicalDevices;
4790ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupDeviceCreateInfoKHX;
4791ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4792ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4793ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
4794ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4795ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4796ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
4797ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
4798ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pPhysicalDeviceGroupCount,
4799ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDeviceGroupPropertiesKHX*         pPhysicalDeviceGroupProperties);
4800ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4801ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4802ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_capabilities 1
4803ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_LUID_SIZE_KHX                  8
4804ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4805ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_memory_capabilities"
4806ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4807ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4808ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalMemoryHandleTypeFlagBitsKHX {
4809ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
4810ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
4811ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
4812ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHX = 0x00000008,
4813ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHX = 0x00000010,
4814ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHX = 0x00000020,
4815ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHX = 0x00000040,
4816ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4817ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryHandleTypeFlagBitsKHX;
4818ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalMemoryHandleTypeFlagsKHX;
4819ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4820ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalMemoryFeatureFlagBitsKHX {
4821ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHX = 0x00000001,
4822ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHX = 0x00000002,
4823ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHX = 0x00000004,
4824ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4825ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryFeatureFlagBitsKHX;
4826ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalMemoryFeatureFlagsKHX;
4827ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4828ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryPropertiesKHX {
4829ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryFeatureFlagsKHX       externalMemoryFeatures;
4830ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    exportFromImportedHandleTypes;
4831ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    compatibleHandleTypes;
4832ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryPropertiesKHX;
4833ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4834ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalImageFormatInfoKHX {
4835ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4836ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4837ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4838ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalImageFormatInfoKHX;
4839ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4840ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalImageFormatPropertiesKHX {
4841ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                  sType;
4842ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                            pNext;
4843ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryPropertiesKHX    externalMemoryProperties;
4844ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalImageFormatPropertiesKHX;
4845ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4846ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalBufferInfoKHX {
4847ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4848ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4849ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBufferCreateFlags                      flags;
4850ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBufferUsageFlags                       usage;
4851ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4852ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalBufferInfoKHX;
4853ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4854ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalBufferPropertiesKHX {
4855ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                  sType;
4856ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                            pNext;
4857ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryPropertiesKHX    externalMemoryProperties;
4858ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalBufferPropertiesKHX;
4859ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4860ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceIDPropertiesKHX {
4861ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4862ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4863ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            deviceUUID[VK_UUID_SIZE];
4864ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            driverUUID[VK_UUID_SIZE];
4865ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            deviceLUID[VK_LUID_SIZE_KHX];
4866ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           deviceLUIDValid;
4867ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceIDPropertiesKHX;
4868ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4869ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceProperties2KHX {
4870ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
4871ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                         pNext;
4872ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDeviceProperties    properties;
4873ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceProperties2KHX;
4874ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4875ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImageFormatProperties2KHX {
4876ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType            sType;
4877ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                      pNext;
4878ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageFormatProperties    imageFormatProperties;
4879ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImageFormatProperties2KHX;
4880ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4881ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceImageFormatInfo2KHX {
4882ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType       sType;
4883ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*           pNext;
4884ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkFormat              format;
4885ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageType           type;
4886ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageTiling         tiling;
4887ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageUsageFlags     usage;
4888ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageCreateFlags    flags;
4889ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceImageFormatInfo2KHX;
4890ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4891ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4892ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo, VkExternalBufferPropertiesKHX* pExternalBufferProperties);
4893ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHX)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHX* pProperties);
4894ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHX* pImageFormatInfo, VkImageFormatProperties2KHX* pImageFormatProperties);
4895ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4896ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4897ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHX(
4898ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
4899ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo,
4900ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalBufferPropertiesKHX*              pExternalBufferProperties);
4901ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4902ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHX(
4903ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
4904ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDeviceProperties2KHX*             pProperties);
4905ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4906ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHX(
4907ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
4908ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDeviceImageFormatInfo2KHX*  pImageFormatInfo,
4909ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImageFormatProperties2KHX*                pImageFormatProperties);
4910ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4911ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4912ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory 1
4913ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_SPEC_VERSION 1
4914ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHX_external_memory"
4915ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_QUEUE_FAMILY_EXTERNAL_KHX      (~0U-1)
4916ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4917ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryImageCreateInfoKHX {
4918ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
4919ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
4920ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
4921ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryImageCreateInfoKHX;
4922ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4923ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryBufferCreateInfoKHX {
4924ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
4925ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
4926ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
4927ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryBufferCreateInfoKHX;
4928ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4929ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportMemoryAllocateInfoKHX {
4930ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
4931ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
4932ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
4933ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportMemoryAllocateInfoKHX;
4934ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4935ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4936ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4937ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
4938ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_win32 1
4939ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4940ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32"
4941ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4942ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportMemoryWin32HandleInfoKHX {
4943ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4944ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4945ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4946ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                   handle;
4947ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportMemoryWin32HandleInfoKHX;
4948ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4949ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportMemoryWin32HandleInfoKHX {
4950ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
4951ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
4952ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
4953ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    DWORD                         dwAccess;
4954ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    LPCWSTR                       name;
4955ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportMemoryWin32HandleInfoKHX;
4956ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4957ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryWin32HandlePropertiesKHX {
4958ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4959ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4960ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryTypeBits;
4961ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryWin32HandlePropertiesKHX;
4962ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4963ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4964ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
4965ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
4966ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4967ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4968ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHX(
4969ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4970ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory                              memory,
4971ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
4972ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE*                                     pHandle);
4973ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4974ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX(
4975ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4976ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
4977ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                      handle,
4978ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryWin32HandlePropertiesKHX*           pMemoryWin32HandleProperties);
4979ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4980ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
4981ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4982ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_fd 1
4983ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
4984ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHX_external_memory_fd"
4985ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4986ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportMemoryFdInfoKHX {
4987ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4988ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4989ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4990ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                      fd;
4991ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportMemoryFdInfoKHX;
4992ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4993ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryFdPropertiesKHX {
4994ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4995ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4996ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryTypeBits;
4997ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryFdPropertiesKHX;
4998ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4999ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5000ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd);
5001ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int fd, VkMemoryFdPropertiesKHX* pMemoryFdProperties);
5002ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5003ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5004ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHX(
5005ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5006ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory                              memory,
5007ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5008ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int*                                        pFd);
5009ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5010ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHX(
5011ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5012ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5013ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                         fd,
5014ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryFdPropertiesKHX*                    pMemoryFdProperties);
5015ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5016ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5017ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
5018ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_win32_keyed_mutex 1
5019ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_WIN32_KEYED_MUTEX_SPEC_VERSION 1
5020ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHX_win32_keyed_mutex"
5021ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5022ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkWin32KeyedMutexAcquireReleaseInfoKHX {
5023ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType          sType;
5024ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*              pNext;
5025ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                 acquireCount;
5026ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDeviceMemory*    pAcquireSyncs;
5027ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*          pAcquireKeys;
5028ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*          pAcquireTimeouts;
5029ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                 releaseCount;
5030ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDeviceMemory*    pReleaseSyncs;
5031ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*          pReleaseKeys;
5032ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkWin32KeyedMutexAcquireReleaseInfoKHX;
5033ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5034ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5035ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
5036ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5037ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_capabilities 1
5038ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
5039ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_semaphore_capabilities"
5040ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5041ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5042ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalSemaphoreHandleTypeFlagBitsKHX {
5043ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
5044ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
5045ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
5046ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHX = 0x00000008,
5047ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHX = 0x00000010,
5048ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5049ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphoreHandleTypeFlagBitsKHX;
5050ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHX;
5051ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5052ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalSemaphoreFeatureFlagBitsKHX {
5053ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHX = 0x00000001,
5054ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHX = 0x00000002,
5055ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5056ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphoreFeatureFlagBitsKHX;
5057ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalSemaphoreFeatureFlagsKHX;
5058ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5059ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalSemaphoreInfoKHX {
5060ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                             sType;
5061ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pNext;
5062ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType;
5063ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalSemaphoreInfoKHX;
5064ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5065ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalSemaphorePropertiesKHX {
5066ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5067ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                                    pNext;
5068ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    exportFromImportedHandleTypes;
5069ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    compatibleHandleTypes;
5070ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreFeatureFlagsKHX       externalSemaphoreFeatures;
5071ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphorePropertiesKHX;
5072ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5073ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5074ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties);
5075ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5076ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5077ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHX(
5078ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
5079ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo,
5080ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphorePropertiesKHX*           pExternalSemaphoreProperties);
5081ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5082ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5083ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore 1
5084ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
5085ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHX_external_semaphore"
5086ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5087ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportSemaphoreCreateInfoKHX {
5088ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5089ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5090ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    handleTypes;
5091ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportSemaphoreCreateInfoKHX;
5092ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5093ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5094ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5095ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHX
5096ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_win32 1
5097ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
5098ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHX_external_semaphore_win32"
5099ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5100ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportSemaphoreWin32HandleInfoKHX {
5101ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5102ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5103ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                              semaphore;
5104ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    handleType;
5105ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                   handle;
5106ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportSemaphoreWin32HandleInfoKHX;
5107ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5108ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportSemaphoreWin32HandleInfoKHX {
5109ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
5110ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
5111ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
5112ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    DWORD                         dwAccess;
5113ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    LPCWSTR                       name;
5114ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportSemaphoreWin32HandleInfoKHX;
5115ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5116ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkD3D12FenceSubmitInfoKHX {
5117ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5118ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5119ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           waitSemaphoreValuesCount;
5120ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*    pWaitSemaphoreValues;
5121ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           signalSemaphoreValuesCount;
5122ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*    pSignalSemaphoreValues;
5123ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkD3D12FenceSubmitInfoKHX;
5124ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5125ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5126ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHX)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo);
5127ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
5128ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5129ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5130ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHX(
5131ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5132ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkImportSemaphoreWin32HandleInfoKHX*  pImportSemaphoreWin32HandleInfo);
5133ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5134ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHX(
5135ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5136ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore,
5137ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType,
5138ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE*                                     pHandle);
5139ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5140ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHX */
5141ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5142ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_fd 1
5143ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
5144ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHX_external_semaphore_fd"
5145ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportSemaphoreFdInfoKHX {
5147ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                             sType;
5148ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pNext;
5149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore;
5150ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType;
5151ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                         fd;
5152ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportSemaphoreFdInfoKHX;
5153ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5154ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5155ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHX)(VkDevice device, const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo);
5156ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, int* pFd);
5157ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5158ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5159ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHX(
5160ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5161ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkImportSemaphoreFdInfoKHX*           pImportSemaphoreFdInfo);
5162ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5163ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHX(
5164ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5165ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore,
5166ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType,
5167ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int*                                        pFd);
5168ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5169ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
517077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_incremental_present 1
517177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
517277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
517377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
517477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkRectLayerKHR {
517577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkOffset2D offset;
517677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D extent;
517777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t layer;
517877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkRectLayerKHR;
517977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
518077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkPresentRegionKHR {
518177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t rectangleCount;
518277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkRectLayerKHR* pRectangles;
518377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkPresentRegionKHR;
518477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
518577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkPresentRegionsKHR {
518677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType sType;
518777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void* pNext;
518877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t swapchainCount;
518977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkPresentRegionKHR* pRegions;
519077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkPresentRegionsKHR;
519177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5192289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_device_generated_commands 1
5193289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
5194289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
5195289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5196289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
5197289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
5198289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5199289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5200289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsTokenTypeNVX {
5201289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
5202289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
5203289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
5204289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
5205289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
5206289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
5207289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
5208289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
5209289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
5210289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
5211289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
5212289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5213289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenTypeNVX;
5214289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5215289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryTypeNVX {
5216289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
5217289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
5218289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
5219289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
5220289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
5221289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
5222289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
5223289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
5224289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5225289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryTypeNVX;
5226289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5227289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
5229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
5230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
5231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
5232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
5233289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5234289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutUsageFlagBitsNVX;
5235289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
5236289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryUsageFlagBitsNVX {
5238289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
5239289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
5240289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5241289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryUsageFlagBitsNVX;
5242289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkObjectEntryUsageFlagsNVX;
5243289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5244289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsFeaturesNVX {
5245289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5246289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5247289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBool32           computeBindingPointSupport;
5248289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsFeaturesNVX;
5249289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5250289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsLimitsNVX {
5251289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5252289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5253289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxIndirectCommandsLayoutTokenCount;
5254289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxObjectEntryCounts;
5255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceCountBufferOffsetAlignment;
5256289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceIndexBufferOffsetAlignment;
5257289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minCommandsTokenBufferOffsetAlignment;
5258289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsLimitsNVX;
5259289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5260289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsTokenNVX {
5261289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5262289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                          buffer;
5263289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                      offset;
5264289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenNVX;
5265289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5266289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutTokenNVX {
5267289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5268289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          bindingUnit;
5269289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          dynamicCount;
5270289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          divisor;
5271289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutTokenNVX;
5272289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5273289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutCreateInfoNVX {
5274289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                            sType;
5275289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                                pNext;
5276289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineBindPoint                        pipelineBindPoint;
5277289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
5278289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                   tokenCount;
5279289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
5280289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutCreateInfoNVX;
5281289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5282289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdProcessCommandsInfoNVX {
5283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                     objectTable;
5286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
5287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             indirectCommandsTokenCount;
5288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
5289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSequencesCount;
5290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                      targetCommandBuffer;
5291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesCountBuffer;
5292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesCountOffset;
5293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesIndexBuffer;
5294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesIndexOffset;
5295289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdProcessCommandsInfoNVX;
5296289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5297289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdReserveSpaceForCommandsInfoNVX {
5298289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                sType;
5299289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                    pNext;
5300289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX               objectTable;
5301289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
5302289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                       maxSequencesCount;
5303289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdReserveSpaceForCommandsInfoNVX;
5304289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5305289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableCreateInfoNVX {
5306289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5307289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5308289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             objectCount;
5309289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
5310289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                      pObjectEntryCounts;
5311289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
5312289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxUniformBuffersPerDescriptor;
5313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageBuffersPerDescriptor;
5314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageImagesPerDescriptor;
5315289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSampledImagesPerDescriptor;
5316289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxPipelineLayouts;
5317289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableCreateInfoNVX;
5318289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5319289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableEntryNVX {
5320289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5321289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5322289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableEntryNVX;
5323289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5324289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePipelineEntryNVX {
5325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipeline                    pipeline;
5328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePipelineEntryNVX;
5329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableDescriptorSetEntryNVX {
5331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5333289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDescriptorSet               descriptorSet;
5335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableDescriptorSetEntryNVX;
5336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableVertexBufferEntryNVX {
5338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5339289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5340289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
5341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableVertexBufferEntryNVX;
5342289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableIndexBufferEntryNVX {
5344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
534777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkIndexType                   indexType;
5348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableIndexBufferEntryNVX;
5349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePushConstantEntryNVX {
5351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5352289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5353289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5354289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkShaderStageFlags            stageFlags;
5355289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePushConstantEntryNVX;
5356289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5357289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5358289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
5359289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
5360289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
5361289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
5362289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
5363289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
5364289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
5365289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
5366289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
5367289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5368289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5369289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
5370289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5371289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
5372289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5373289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
5374289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5375289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
5376289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5377289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
5378289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5379289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
5380289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5381289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
5382289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5383289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
5384289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5385289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
5386289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5387289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5388289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
5389289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5390289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableCreateInfoNVX*           pCreateInfo,
5391289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5392289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX*                           pObjectTable);
5393289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5394289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
5395289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5396289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5397289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5398289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5399289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
5400289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5401289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5402289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5403289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
5404289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5405289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5406289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
5407289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5408289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5409289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5410289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
5411289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5412289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5413289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
5414289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
5415289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
5416289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
5417289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5418289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5419ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_clip_space_w_scaling 1
5420ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
5421ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
5422ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5423ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportWScalingNV {
5424ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    xcoeff;
5425ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    ycoeff;
5426ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportWScalingNV;
5427ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5428ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportWScalingStateCreateInfoNV {
5429ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                sType;
5430ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                    pNext;
5431ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32                       viewportWScalingEnable;
5432ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                       viewportCount;
5433ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*    pViewportWScalings;
5434ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportWScalingStateCreateInfoNV;
5435ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5436ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5437ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
5438ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5439ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5440ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
5441ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5442ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstViewport,
5443ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    viewportCount,
5444ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*                 pViewportWScalings);
5445ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5446ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
544777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_direct_mode_display 1
544877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
544977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
545077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
545177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
545277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
545377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
545477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
545577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
545677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
545777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
545877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
545977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
546077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_acquire_xlib_display 1
546177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#include <X11/extensions/Xrandr.h>
546277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
546377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
546477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
546577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
546677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
546777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
546877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
546977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
547077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
547177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
547277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
547377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
547477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
547577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
547677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
547777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
547877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    RROutput                                    rrOutput,
547977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR*                               pDisplay);
548077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
548177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
548277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
548377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_surface_counter 1
548477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
548577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
548677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
548777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
548877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkSurfaceCounterFlagBitsEXT {
548977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
549077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
549177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCounterFlagBitsEXT;
549277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkSurfaceCounterFlagsEXT;
549377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
549477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSurfaceCapabilities2EXT {
549577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType                  sType;
549677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                            pNext;
549777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         minImageCount;
549877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageCount;
549977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       currentExtent;
550077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       minImageExtent;
550177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       maxImageExtent;
550277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageArrayLayers;
550377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
550477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
550577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
550677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
550777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
550877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCapabilities2EXT;
550977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
551077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
551177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
551277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
551377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
551477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
551577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
551677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR                                surface,
551777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
551877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
551977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
552077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_control 1
552177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
552277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
552377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
552477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
552577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayPowerStateEXT {
552677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
552777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
552877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_ON_EXT = 2,
552977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
553077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
553177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
553277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
553377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerStateEXT;
553477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
553577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDeviceEventTypeEXT {
553677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
553777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
553877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
553977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
554077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
554177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventTypeEXT;
554277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
554377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayEventTypeEXT {
554477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
554577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
554677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
554777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
554877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
554977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventTypeEXT;
555077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
555177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayPowerInfoEXT {
555277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType           sType;
555377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*               pNext;
555477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayPowerStateEXT    powerState;
555577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerInfoEXT;
555677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
555777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDeviceEventInfoEXT {
555877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType         sType;
555977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*             pNext;
556077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDeviceEventTypeEXT    deviceEvent;
556177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventInfoEXT;
556277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
556377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayEventInfoEXT {
556477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType          sType;
556577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*              pNext;
556677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayEventTypeEXT    displayEvent;
556777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventInfoEXT;
556877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
556977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSwapchainCounterCreateInfoEXT {
557077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
557177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
557277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT    surfaceCounters;
557377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSwapchainCounterCreateInfoEXT;
557477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
557577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
557677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
557777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
557877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
557977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
558077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
558277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
558377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
558477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
558577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
558677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
558877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
558977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
559077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
559177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
559277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
559477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
559577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
559677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
559777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
559877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
559977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
560077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
560177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
560277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSwapchainKHR                              swapchain,
560377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagBitsEXT                 counter,
560477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint64_t*                                   pCounterValue);
560577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
560677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5607889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_display_timing 1
5608889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
5609889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
5610889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5611889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkRefreshCycleDurationGOOGLE {
5612889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    refreshDuration;
5613889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkRefreshCycleDurationGOOGLE;
5614889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5615889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPastPresentationTimingGOOGLE {
5616889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
5617889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
5618889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    actualPresentTime;
5619889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    earliestPresentTime;
5620889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    presentMargin;
5621889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPastPresentationTimingGOOGLE;
5622889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5623889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimeGOOGLE {
5624889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
5625889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
5626889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimeGOOGLE;
5627889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5628889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimesInfoGOOGLE {
5629889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkStructureType               sType;
5630889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const void*                   pNext;
5631889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t                      swapchainCount;
5632889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const VkPresentTimeGOOGLE*    pTimes;
5633889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimesInfoGOOGLE;
5634889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5635889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5636889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
5637889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
5638889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5639889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#ifndef VK_NO_PROTOTYPES
5640889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
5641889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
5642889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
5643889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
5644889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5645889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
5646889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
5647889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
5648889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t*                                   pPresentationTimingCount,
5649889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkPastPresentationTimingGOOGLE*             pPresentationTimings);
5650889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#endif
5651889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5652ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_sample_mask_override_coverage 1
5653ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
5654ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
5655ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5656ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5657ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_geometry_shader_passthrough 1
5658ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
5659ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
5660ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5661ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5662ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_array2 1
5663ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
5664ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
5665ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5666ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5667ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_multiview_per_view_attributes 1
5668ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
5669ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
5670ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5671ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5672ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5673ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5674ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           perViewPositionAllComponents;
5675ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
5676ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5677ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5678ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5679ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_swizzle 1
5680ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
5681ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
5682ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5683ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5684ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkViewportCoordinateSwizzleNV {
5685ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
5686ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
5687ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
5688ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
5689ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
5690ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
5691ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
5692ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
5693ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
5694ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
5695ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
5696ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
5697ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportCoordinateSwizzleNV;
5698ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5699ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
5700ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5701ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportSwizzleNV {
5702ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    x;
5703ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    y;
5704ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    z;
5705ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    w;
5706ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportSwizzleNV;
5707ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5708ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
5709ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                sType;
5710ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                    pNext;
5711ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
5712ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                       viewportCount;
5713ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportSwizzleNV*                     pViewportSwizzles;
5714ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportSwizzleStateCreateInfoNV;
5715ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5716ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5717ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5718ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_discard_rectangles 1
5719ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
5720ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
5721ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5722ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5723ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDiscardRectangleModeEXT {
5724ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
5725ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
5726ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5727ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
5728ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
5729ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
5730ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDiscardRectangleModeEXT;
5731ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5732ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
5733ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5734ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5735ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5736ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5737ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxDiscardRectangles;
5738ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
5739ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5740ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
5741ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                  sType;
5742ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                      pNext;
5743ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
5744ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDiscardRectangleModeEXT                        discardRectangleMode;
5745ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                         discardRectangleCount;
5746ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                                  pDiscardRectangles;
5747ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineDiscardRectangleStateCreateInfoEXT;
5748ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5749ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5750ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
5751ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5752ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5753ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
5754ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5755ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstDiscardRectangle,
5756ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    discardRectangleCount,
5757ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                             pDiscardRectangles);
5758ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5759ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5760e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_swapchain_colorspace 1
5761e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 1
5762e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
5763e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter
5764d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_hdr_metadata 1
5765d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_SPEC_VERSION  0
5766d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
5767d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5768d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkXYColorEXT {
5769d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    x;
5770d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    y;
5771d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkXYColorEXT;
5772d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5773d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkHdrMetadataEXT {
5774d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkStructureType    sType;
5775d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const void*        pNext;
5776d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryRed;
5777d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryGreen;
5778d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryBlue;
5779d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       whitePoint;
5780d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxLuminance;
5781d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              minLuminance;
5782d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxContentLightLevel;
5783d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxFrameAverageLightLevel;
5784d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkHdrMetadataEXT;
5785d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5786d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5787d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
5788d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5789d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#ifndef VK_NO_PROTOTYPES
5790d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney GoeltzenleuchterVKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
5791d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkDevice                                    device,
5792d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    uint32_t                                    swapchainCount,
5793d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkSwapchainKHR*                       pSwapchains,
5794d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkHdrMetadataEXT*                     pMetadata);
5795d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#endif
5796d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
579777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_shared_presentable_image 1
579877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
579977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
580077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
580177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
580277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
580377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
580477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
580577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
580677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSwapchainKHR                              swapchain);
580777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
580877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
580977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5810ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_IOS_MVK
5811ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_ios_surface 1
5812ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_SPEC_VERSION   2
5813ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
5814ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5815ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkIOSSurfaceCreateFlagsMVK;
5816ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5817ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkIOSSurfaceCreateInfoMVK {
5818ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
5819ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
5820ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkIOSSurfaceCreateFlagsMVK    flags;
5821ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pView;
5822ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkIOSSurfaceCreateInfoMVK;
5823ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5824ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5825ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
5826ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5827ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5828ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
5829ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
5830ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkIOSSurfaceCreateInfoMVK*            pCreateInfo,
5831ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
5832ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
5833ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5834ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_IOS_MVK */
5835ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5836ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_MACOS_MVK
5837ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_macos_surface 1
5838ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
5839ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
5840ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5841ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
5842ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5843ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMacOSSurfaceCreateInfoMVK {
5844ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                 sType;
5845ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pNext;
5846ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMacOSSurfaceCreateFlagsMVK    flags;
5847ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pView;
5848ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMacOSSurfaceCreateInfoMVK;
5849ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5850ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5851ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
5852ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5853ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5854ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
5855ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
5856ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkMacOSSurfaceCreateInfoMVK*          pCreateInfo,
5857ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
5858ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
5859ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5860ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_MACOS_MVK */
5861ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
586204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
586304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
586404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
586504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
586604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
5867