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
469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_HEADER_VERSION 54
472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
49a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall#define VK_NULL_HANDLE 0
5005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse 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
6305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse 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,
1499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -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,
2257ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
226ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000,
227ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001,
228ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002,
229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
233289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
2341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
2351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
2361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
2371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
2381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
2391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
2401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
2411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
2421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
243ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001,
245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002,
246ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
247ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
248ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
249ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
250ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
251ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
252ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
253ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
254ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
255ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
256289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
25777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
258ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
259ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
2609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
2619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
2629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
2639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
2649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
2659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
2669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
2679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
2689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
2699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
2709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
2719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
2729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
2739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
2749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
2759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
2769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
2779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
2789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
2799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
2809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
2819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
2829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
2839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
2849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
285ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
2869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
287889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
288ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
295ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
29677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
29777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
29877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
29977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
30077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
30114866bbeca1ebcda93f43a3352934889a9f37c2bIan Elliott    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
302ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
303ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
304ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
305ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
306fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall    VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
307e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
3089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
3099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
3109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
3119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
3129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
3139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
3149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
3159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
316e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
317e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
318e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
3199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
320ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
321ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
3229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
3239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
3247ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
3257ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
3269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
3279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
3289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
3299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
3309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
3317ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
3327ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
3337ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
3347ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
3357ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
33604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
33904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
34004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
3433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
3443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
3453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
3463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
3473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
3483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
3493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
3503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
3513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
3523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
35303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
3543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
3553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
3563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
3593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
3603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
364f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
365f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
366f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
367f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
368f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
369f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
370f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
371f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
37204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
37304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
37404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
37504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
37604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
37704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
37804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
37904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
38004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
38104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
38204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
38304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
38404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
38504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
38604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
38704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
38804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
38904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
39004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
39104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
39204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UNORM = 30,
394f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SNORM = 31,
395f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_USCALED = 32,
396f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 33,
397f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UINT = 34,
398f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SINT = 35,
399f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SRGB = 36,
400f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 37,
401f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 38,
402f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 39,
403f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 40,
404f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 41,
405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 42,
406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 43,
407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 44,
408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 45,
409f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 46,
410f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 47,
411f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 48,
412f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 49,
413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 50,
414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
415f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
416f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
417f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
422f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
423f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
425f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
427f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
428f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
429f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
430f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
431f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
432f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
433f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UNORM = 70,
434f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SNORM = 71,
435f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_USCALED = 72,
436f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SSCALED = 73,
437f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UINT = 74,
438f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SINT = 75,
439f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SFLOAT = 76,
440f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UNORM = 77,
441f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SNORM = 78,
442f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_USCALED = 79,
443f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SSCALED = 80,
444f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UINT = 81,
445f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SINT = 82,
446f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SFLOAT = 83,
447f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UNORM = 84,
448f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SNORM = 85,
449f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_USCALED = 86,
450f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 87,
451f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UINT = 88,
452f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SINT = 89,
453f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 90,
454f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 91,
455f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 92,
456f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 93,
457f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 94,
458f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 95,
459f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 96,
460f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
461f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_UINT = 98,
462f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SINT = 99,
463f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SFLOAT = 100,
464f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_UINT = 101,
465f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SINT = 102,
466f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SFLOAT = 103,
467f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_UINT = 104,
468f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SINT = 105,
469f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 106,
470f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 107,
471f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 108,
472f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
473f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_UINT = 110,
474f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SINT = 111,
475f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SFLOAT = 112,
476f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_UINT = 113,
477f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SINT = 114,
478f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SFLOAT = 115,
479f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_UINT = 116,
480f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SINT = 117,
481f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 118,
482f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_UINT = 119,
483f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SINT = 120,
484f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
485f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
486f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
487f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM = 124,
488f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
489f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT = 126,
490f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_S8_UINT = 127,
491f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 128,
492f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 129,
493f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
494f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
495f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
496f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
497f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
498f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_UNORM_BLOCK = 135,
499f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_SRGB_BLOCK = 136,
500f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_UNORM_BLOCK = 137,
501f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_SRGB_BLOCK = 138,
502f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_UNORM_BLOCK = 139,
503f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_SNORM_BLOCK = 140,
504f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_UNORM_BLOCK = 141,
505f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_SNORM_BLOCK = 142,
506f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
507f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
508f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_UNORM_BLOCK = 145,
509f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_SRGB_BLOCK = 146,
510f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
511f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
512f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
513f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
514f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
515f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
516f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
517f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
518f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
519f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
520f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
521f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
522f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
523f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
524f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
525f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
526f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
527f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
528f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
529f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
530f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
531f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
532f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
533f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
534f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
535f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
536f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
537f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
538f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
539f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
540f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
541f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
542f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
543f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
544f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
545f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
546f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
547f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
548289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
549289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
550289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
551289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
552289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
553289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
554289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
555289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
557f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
558f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
56004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
5683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
573c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
574c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
575c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
576c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
5773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
58304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
58404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
58504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
58604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
58704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
5893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
59004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
59104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
59404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
59504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
596a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
59704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
598a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
5993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
6083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
6135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
6145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
6155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
6165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
6175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
6185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
6193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
6203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
6215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
622bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
623af3a1117ffa206a6e3143edf32c494b64e39f303Chris Forbes    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
6245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
6255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
6263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
6275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
6285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
62904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
63104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
63204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
63304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
63404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
63504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
63604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
63804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
63904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
6403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
64304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
64565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
64665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
64765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
64865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
64965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
65065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
65165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
65265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
65365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
65465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
65565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
65665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
65704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
65965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
66065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
66165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
66265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
66365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
66465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
66565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
66604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
66804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
66904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
6743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
6753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
6763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
6773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
678091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
680091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
681091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
68665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
68765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
68865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
6897ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
69065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
69165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
69265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
69365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
69465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
69504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
6973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
6983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
6993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
7003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
7013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
7093fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
7123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
7163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
72204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
7243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
7253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
7273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
7283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
7303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
7313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
73204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
73304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
73404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
73604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
74004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
7413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
7453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
74604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
74704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
74804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
74904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
75004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
7543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
75965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
76065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
76165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
76265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
76365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
76465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
76565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
76665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
76765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
76865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
76965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
77065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
77165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
77265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
77365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
77465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
77565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
77665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
77765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
77865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
77965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
78065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
78165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
78265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
78804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
78904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
7907ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_ZERO_EXT = 1000148000,
7917ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SRC_EXT = 1000148001,
7927ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DST_EXT = 1000148002,
7937ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
7947ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DST_OVER_EXT = 1000148004,
7957ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SRC_IN_EXT = 1000148005,
7967ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DST_IN_EXT = 1000148006,
7977ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
7987ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DST_OUT_EXT = 1000148008,
7997ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
8007ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
8017ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_XOR_EXT = 1000148011,
8027ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
8037ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SCREEN_EXT = 1000148013,
8047ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_OVERLAY_EXT = 1000148014,
8057ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DARKEN_EXT = 1000148015,
8067ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
8077ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
8087ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_COLORBURN_EXT = 1000148018,
8097ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
8107ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
8117ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
8127ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
8137ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_INVERT_EXT = 1000148023,
8147ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
8157ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
8167ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
8177ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
8187ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
8197ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
8207ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HARDMIX_EXT = 1000148030,
8217ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
8227ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
8237ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
8247ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
8257ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_PLUS_EXT = 1000148035,
8267ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
8277ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
8287ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
8297ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_MINUS_EXT = 1000148039,
8307ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
8317ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_CONTRAST_EXT = 1000148041,
8327ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
8337ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_RED_EXT = 1000148043,
8347ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_GREEN_EXT = 1000148044,
8357ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OP_BLUE_EXT = 1000148045,
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
8383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
83904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
84004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
8435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
8445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
8455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
8465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
8475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
8485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
8495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
8505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
8515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
852ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
853ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
8545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
8555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
8563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
8575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
8585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
8595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
86123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
86223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
8632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FILTER_CUBIC_IMG = 1000015000,
86423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
86523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
8663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
86723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
86823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
8713dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
8723dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
8733dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
87423ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
8753dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
87623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
87723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
880c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
881c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
882c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
883c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
884c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
885c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
8862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
8872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
88823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
88923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
89204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
89304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
89704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
9003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
90604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
90704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
90804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
90904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
91204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
91304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
91404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
91504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
91704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
9183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
91904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
92004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
92104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
92304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
92404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
92504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
92604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
92704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
9283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
92904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
93004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
93104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
93404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
93504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
93604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
9373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
93804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
93904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
94004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
942c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
943c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
944c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
945c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
9463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
94704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
94804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
9513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
9523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
9533fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
9543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
9553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
9563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
9573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
96204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
96304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
9643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
96965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
97065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
97165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
97265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
97365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
97465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
97565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
97705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef enum VkObjectType {
97805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_UNKNOWN = 0,
97905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_INSTANCE = 1,
98005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
98105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEVICE = 3,
98205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_QUEUE = 4,
98305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SEMAPHORE = 5,
98405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
98505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_FENCE = 7,
98605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
98705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BUFFER = 9,
98805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_IMAGE = 10,
98905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_EVENT = 11,
99005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_QUERY_POOL = 12,
99105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
99205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
99305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SHADER_MODULE = 15,
99405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
99505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
99605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_RENDER_PASS = 18,
99705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE = 19,
99805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
99905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SAMPLER = 21,
100005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
100105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
100205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
100305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_COMMAND_POOL = 25,
100405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
100505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
100605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
100705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
100805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
100905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
101005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
101105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
101205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
101305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
101405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
101505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
101605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkObjectType;
101705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
1018a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
102304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
102804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
102904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
103004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
10313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
10323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
103333faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
10342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
103577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
103677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
10377ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
10382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
103904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
104004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
104104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
10433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
10443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
104504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
10485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
104904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
105004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
10512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
105204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
105304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
105404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
10565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
10575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
10585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
10595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
10605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
1061ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
106277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
10632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
10655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
10665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
10685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
10695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
10705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
10715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
10725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
10735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
10745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
10752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
10775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
10785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
108004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
108104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
108265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
1083b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
10842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
108504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
108604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
108704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
1089d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
1090d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
1091d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
1092d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
1093d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
10942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
109604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
1099d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
1100ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
11012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
1104a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
1105a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
1106543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
1107543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
1108543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
1109543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
1110543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
1111543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
1112543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
1113543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1114543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
1115543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
1116543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
1117543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1118543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1119543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1120543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1121543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1122543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1123543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1124543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1125289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
11262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1127543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
1128543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
1132a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1133a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1134a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1135a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
11362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1137a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
11383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
1139a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
11403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
1141b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1142b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1143b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
11442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
1147091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
1148091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
1149091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
11502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1151091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
115304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
115504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
11562676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
1161a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
116204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
1164ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1165ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1166ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1167ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1168ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1169ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1170ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1171ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1172ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1173ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1174ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
11752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
117604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
117704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
117804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
118004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
118104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
118204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
118304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
11842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
1189a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1190a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1191a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
11922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1193a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
1194a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
1195a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
11963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
11973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
11983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
119904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
120004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
120104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
120204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
120304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
120404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
120504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
12062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
120804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
1209a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
12105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
12123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
12153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
12163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
12173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1218ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
1219ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
12202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
12223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
12233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
12243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
12253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
1226a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1227a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1228a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1229a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1230a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1231a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
12322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1233a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
12342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1235a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
1236a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1237a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
12383dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
1239a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
12403fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1241c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
12423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
1243c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
1244c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1245c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
12462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
12472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1248c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
1249c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
1250a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1251a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1252a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1253a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
12543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
125565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
125665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
125765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
125865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
12592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
126065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
126165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1262a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1263a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1265a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1266ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1267ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorSetLayoutCreateFlagBits {
1268ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1269ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1270ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorSetLayoutCreateFlagBits;
1271a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
127204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1274fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
12752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1276fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1277fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1278fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1279a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1280a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1281fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
12823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
12835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
12842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
12865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
1287ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1288ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSubpassDescriptionFlagBits {
1289ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1290ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1291ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1292ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSubpassDescriptionFlagBits;
129304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
129404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
12963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
12973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
12983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
12993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
13003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
13013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
13023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
13033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
13043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
13053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
13063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
13073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
13083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
13093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
13103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
13113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
13123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
13157ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
13162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
13183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
13193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
13203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1321dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1322ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
1323ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
13242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1325dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1326dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1327dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
13283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
13293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
13303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
13312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
13333fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
133404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
13363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
13372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
13393fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
13423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
13433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
13443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
13452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
13473fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
134804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1349f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1350f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
13512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1352f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1353f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1354f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
13553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
13563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
13572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
13593fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
13625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
13635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
13642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
13652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
13665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
13675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
136804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1369e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
13703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
13733e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
137403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1375e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
13763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
13783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
13803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1382e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
13833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1386e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
13873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
13903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
139103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1392e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
13933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
13963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
139703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1398e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
13995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
14003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1402563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
14085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
14095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
14103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1413563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1414563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1415563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
141904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
142004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1422563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
14283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
142903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
14303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1441563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1442563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1458563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1466563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1467563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1491563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
14985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
14995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
15003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1502563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1503563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1504563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1505563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15083e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1509563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1510563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1511563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1512563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1514563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1515563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1517563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1518563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1519563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1520563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1521563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1522563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1523563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1524563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1525563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1526563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1528563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1529563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1530563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1531563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1535563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1537563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1538563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1539563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1540563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1541563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1545563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1546563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1547563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1552563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1553563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1557563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1558563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1559563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1565563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1569563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1570563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1571563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1572563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1578563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1579563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1580563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1581563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1584563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1585563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1586563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1588563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1589563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1590563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1591563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1592563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1593563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1596563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1597563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1598563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1599563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1600563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1601563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1602563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1603563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1604563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1605563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1606563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1607563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1612563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1613563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1614563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
161504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
161604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1618563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1619563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1620563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
16235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
16245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1626563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1627563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1628563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1629563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1634563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1638563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1639563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1640563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1641563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
16425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1645563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1650563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1651563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1655563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1656563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
165904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
166004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1662563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1663563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1664563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1666563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1667563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
166804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
166904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1671563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1672563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1674563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1675563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1676563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1677563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1678563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1679563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1680563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
168104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1684563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1689563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1690563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1696563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1699563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1700563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1701563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1705a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1706a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
17073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1708563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1709563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1710563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1711563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
17123fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1715563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1716563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1717563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1718563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1719563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
172004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
172104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1723563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1724563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1725563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1729563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1730563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1731563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1735563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1736563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1737563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1738563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1739563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
174104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1743563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1744563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1745563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1746563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1747563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1748a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1749a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
17503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1751563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1752563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1753563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1754a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1755a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
17563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1757563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1758563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1759563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1760a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17623e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1763563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1764563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
176604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
176704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1770563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1771563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1777563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1778563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1779563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1781a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1782a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
17833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1785563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1786563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1792a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1793a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1794a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1795a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1796a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1797a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1798a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1799a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1800a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1801a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1802a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1803a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
18043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1805563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1806563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1807563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
180804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
180904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1811563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1812563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1813563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
181504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1824563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1825563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1826563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1827563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1828563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
182904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
183004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1832563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1833563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1834563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1835563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1836563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1837563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1838563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1839563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1846563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1847563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1848563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1849563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1853563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1855563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1857563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1858563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1859563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1860563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1863563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1864563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1865563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1866563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1867563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1874563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1875563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
187704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1879563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1880563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1881563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1882563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
188365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
188404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1886563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1887563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1888563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1894563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1895563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1896563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1901563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1907563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1908563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1909563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1915563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1916563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1917563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1921563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1922563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1927563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1928563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1930563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1934563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1935563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1936563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1937563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1938563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1944563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1945563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1946563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
194704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
194804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19493e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1951563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
195404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
195504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
195804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1959a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
196003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
196104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
196203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1967563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1968563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1969563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1970563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1971563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1975563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1976563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1977563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1978563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1983563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1984563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1985563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1986563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1987563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
19885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
19895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1991563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1992563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
19935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
19945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1997563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
19985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
19995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
2001563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
2002563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
20035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
20045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
2006563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
2007563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
2008563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
2009563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
2010563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
2011563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
2012563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
201304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
2018563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
2019563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
2020563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
2023563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
2024563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
2025563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
2026563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
2027563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
2028563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
20293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
203004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
2032563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2033563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2034563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
2037563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
2038563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
2039563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
2040563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
2044563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
2045563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
2046563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
2049563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
2050563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
205204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
2054563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
2056563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
2057563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
2058563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
2059563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
2060563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
2061563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
2062563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
2063563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
2064563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
2065563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
2069563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
2071563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
2072563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
2073563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
2074563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
2075563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
2076563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
2080563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
2081563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
2082563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
2083563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
2084563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
2086563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
2087563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
208804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
2091563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
2092563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
2094563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
2095563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
20965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
20975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
2101563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
2102563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
2103563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
2104563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
2105563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
2106563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
2107563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
2108563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
2109563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
2110563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
2111563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
2112563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
2113563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
2116563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
2117563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
2121563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
2123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
2124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
2125563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
2126563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
2127563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
2131563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2132563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
2133563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
213404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
2137563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2138563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2139563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
2140563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
2141563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
2142563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
2143563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
214404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
214504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
2147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2148563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2149563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
2150563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
2151563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
2152563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
2155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
2156563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
2157563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
2158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
2161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
2162563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
2163563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
2164563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
216504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
216604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
2171563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2172563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
217304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
217404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
2176563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
2177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
2178563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
2179563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
2180563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
218104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
218204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
2184563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
2185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
218665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
218704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
2189563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
2190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
2191563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
2192563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
2193563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
2194563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
219504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
219604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
2198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2200563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
2201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
2202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
22033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
2204fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
22053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
2206563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
2207563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
2208563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
2209a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
2210a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
22113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
2212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
2213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
2214563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
22155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
22165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
22173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
2218563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
2221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
2222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
2223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
2224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
2225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
2226563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
2227563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
222804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
222904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
2231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2233563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
2234563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
2235563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
2236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
2237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
2238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
2239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
224004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
224104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
2243563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
2246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
2247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
2248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
2249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
2250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
2251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
225204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
225304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
2255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
2256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
2257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
2258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
2259563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
2260563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
2261563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
2262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
2263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
226404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
2267563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
2268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
226904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
227004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
2272563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
2273563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
2274563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
2275563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
2276563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
2277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
2278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2280563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2281563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2287563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2288563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2289563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2290563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2291563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
229204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2296563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2297563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2298563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2302563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2303563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2307563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2308563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2309563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
23113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
231204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2314563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2318563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
23193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23213dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
23303dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
23313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
23323dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
23373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2341563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
234304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
235065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
23515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
23523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
23855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
23865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
23873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2389563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2390ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2391ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
23923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2396ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2397ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
23983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2402a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2408563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2409563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24123dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2413563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2414563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2415563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
24173dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2420563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2421563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2422563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2428563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2441563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
24423dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
24433dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
24443dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
24523dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
24533dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
24543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
24583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24603e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
24663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
24733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2476e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2477e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2478e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2479e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2480e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2481e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2482e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2483e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2484e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2485e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2486e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2488e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2489e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2490e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2491e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2492e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2493e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2494e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2495e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2496e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2497e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2498e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2499e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2500e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2501e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2502e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2503e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2504e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2505e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2506e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2507e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2508e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2509e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2510e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2512e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2513e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2514e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2515e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2516e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2518e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2519e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2520e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2521e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2522e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2523e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2524e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2525f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse 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);
2526e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2527e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2528e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2529e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2530e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2531e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2532e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2533e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2534e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2535e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2536e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2537e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2538e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2539e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2540e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2541e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2542e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2543e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2544e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2545e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2546e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2547e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2548e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2549e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2550e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2551e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2552e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2553e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2554e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2555e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2556e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2557e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2558e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2559e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2560e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2561e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2562e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2563e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2564e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2565e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2566e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2567e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2568e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2569e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2570f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2571f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2572e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2573e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2574e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2575e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2576e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2577e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2578e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2579e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse 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);
2580e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2581f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2582e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2583e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2584e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2585e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2586ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
2587e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2588e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2589e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2590e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2591e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2592e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
259356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2594e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2595e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2596e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2597e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2598e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2599e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2600e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
26013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
26023dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
26033dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
26043dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2605f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
26063dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2607f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2608f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2609e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2610e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2611e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
26123dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2614563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2615e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
26173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2620e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
262103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
26223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2624e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2629e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2633e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2638e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
26445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2647e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2651e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
265303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
26545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2656e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2660e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2664e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2668e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
26713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2674e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
267503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
26763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2678e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
268003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2683e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
268603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2689e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
269003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2693e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
269503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2698e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2704e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2706a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2707b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2710e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2713e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2716e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
27193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
27203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2722e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
272304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
27253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
272604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2727e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
273404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2735e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
273604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
274004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
27423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2744e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
27463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
27473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2749e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
275004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
275304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2754e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
275504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
27573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
27583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2760e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
27633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
27643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2766e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2771e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2776e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
277903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
278104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2782e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2786091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
278903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
279403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2795a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2796a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2798e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
28013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
280204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2804e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
28073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2809e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2814e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2818e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2825e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
28283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2831e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
28343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2836e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
28393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2842e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
284403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
28453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2847e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2851e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2855e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2859e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
28623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2865e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
28683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2870e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2873f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2875a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2877a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2880e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
28833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2886e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
28893fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2891e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
28943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2897e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
29003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2902e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
29053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2908e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
291003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
29113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2913e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2919e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
29223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2925e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
292703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
29283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2930e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
29333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2936e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
29393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2941e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
29443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2947e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
294903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
29503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2952e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2955a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2958e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
29603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2964e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
296703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
29693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2972e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
297503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
29773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2980e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
298203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
29833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2985e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
29883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2991e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
299303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
29943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2996e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
29993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3002e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
300403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
30053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3007e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
30103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3013e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
301503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
30163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
301704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3018e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
301904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
302004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
30213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
302204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3024e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
302504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
302603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
30273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
302804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3029e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
303004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
3031fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
3032fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
303304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3034e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
303504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
30363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
30375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3039e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
304004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
304104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
304203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
304404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3045e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
304604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
3047b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
304804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
3049b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
305004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
305104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3052e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
305304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
305404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
30553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
305604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
305704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3058e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
305904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
306003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
30613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
306204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3063e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
306404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
30663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
306704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
306804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3069e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
307004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
307103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
30723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
307304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3074e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
307504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
307604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
307704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
307804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3079e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
308004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
30813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
30823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
30833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
308404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3085e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
308604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
308765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
30883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
308904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3090e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
309104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
309265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
30933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
309404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3095e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
309604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
30973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
30983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
309904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3100e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
310104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
310265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
310303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
31043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
310504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3106e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
31073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
310904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3110e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
31113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
311204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3113e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
31143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
311604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3117e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
31183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
312004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
312104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3122e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
31233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3124f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
31255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
31265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
31275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3128e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
31293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3130f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
31315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
31325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
31335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3134e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
31353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
31375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3138e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
31393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3140a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
31415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
3142a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
314304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3144e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
31453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3146b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
314704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3148e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
31493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
31515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
315204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3153e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
31543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
315665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
31575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3158e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
31593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
316165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
31625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3163e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
31643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
316665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
316704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3168e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
31693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
317004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
317104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
317204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
317303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
317404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
317504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
317604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
317704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3178e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
31793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
318004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
318104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
318204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
318304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3184e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
31853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3186f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
318704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
318804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
318904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
319004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3191e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
31923fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
319304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
31945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
31955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
31965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
319704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3198e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
31993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
320004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
32015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
32025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
320304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
32045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
320504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3206e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
32073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
320804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
320904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
321003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
321104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
321204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3213e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
32143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
321504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
321604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
321703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
321804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
321904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3220e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
32213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3222ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
3223ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
3224ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
322504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3226e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
32273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
322804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
322904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
323004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3231e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
32323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
323304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
32343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
323504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
323604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
323704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3238e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
32393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
324104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
32423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
32433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
324404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
324504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
324604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3247e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
32483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
325004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
32513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
32523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
325304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
325404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
325523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
325604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3257e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
32583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
325904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
32603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
32613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
326204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
326304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
326404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3265e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
32663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
326704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
326804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
32693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
327004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
327104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
327204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3273e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
32743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
32763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
327704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
327856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*                                 pData);
327904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3280e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
32813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
32833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3284b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
328504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
328604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3287e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
32883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
328904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
329004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
329104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
329204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
329304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
329404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3295e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
32963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
329704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
329804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
32995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
330004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
330104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
330204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3303e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
33043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3305ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3306ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
330704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3308a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
330904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3310e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
33113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
331204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
331304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
33143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
33153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
331604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
331704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
331804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3319e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
33203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
332104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
332204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
332304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3324e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
33253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
332604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
332704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
332804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3329e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
33303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
333104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
333204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
333304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
33343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
33353fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
33363dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
33373dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
33383dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
33393dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
33403dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
334104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3342e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
33433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
334404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
33453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3346dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
33473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
33483dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
33493dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
33503dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
33513dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
33523dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
335304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3354e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
33553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
335604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
33573dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
335804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
335904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3360e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
33613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
336204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
33633dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
336404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3365e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
33663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
336704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3368f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
336904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
337004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3371e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
33723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
33736f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3374a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
33753dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
337604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3377e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
33783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
337904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3380f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
338104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
33823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
33833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3384a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
338504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
338604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3387e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
33883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
338904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
339004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
339103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
339203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
339404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3395e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
33963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
339704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
339865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
339904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
34013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
340265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
340304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3404e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
34053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
340604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3407e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
34083fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
34093dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
34103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
341104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
341204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3413091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
34143fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
341633faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
34173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
34182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
34191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
34222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
3423bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
3424bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
3425c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
3426c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
3427c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
3428c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
3429c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
3430c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
3431c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
3432c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
34337f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
34347f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
3435bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
3436edc88e78a30ca412a0a085a21f1fc1be7be5081fCourtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
34372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
34382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
34392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
34402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
34411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
34421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
34441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
34451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
34461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
344703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
34481d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
34491d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
34502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
34512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
34522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
34532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
34541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
34551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3458f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
34599ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
34609ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
34619ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
34629ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
34639ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
34649ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
34659ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
34661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
34672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
34681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
34691356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
34701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3472a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3473a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3474a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3475a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
34762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3477a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3478a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3479a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
34803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3491b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
34921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3494563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
34961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
34971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3498b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3499f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3500e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3501e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3502e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3503e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3504b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3505563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3506e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3507f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3508f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
35090e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3510b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3512b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3513b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3514b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3515b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3516b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3518b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3519b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3520b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3521b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3522e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3523b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3524b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3525b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3526b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3527b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3528e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3529b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3530b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3531b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3532b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3533b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3534b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3535091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
35363fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3537b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
35382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
35393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3540b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3541ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3542ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSwapchainCreateFlagBitsKHR {
3543ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
3544ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3545ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSwapchainCreateFlagBitsKHR;
3546f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3547f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
35483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3552563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3553563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3557563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3558563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3559563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3565563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
35671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
35681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3570563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3571563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3572563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3574563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
35781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
35791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3581f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3582f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3583f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3584f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3585f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
35861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3587563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3588e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3589f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3590f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
35910e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3592f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
35931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3594e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3595f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3596f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
35970e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
35981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3599e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3600f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3601f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3602f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3603f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
36041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3605e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3606f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3607f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3608f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3609f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3610f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3611f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
36121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3613e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3614f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3615f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
36161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3618091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
36193fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
36203fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
36211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3622543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
36233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
36241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3627f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3628f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3629f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3630f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
36312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
36321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
36331356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
36342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
3635f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
36361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3638563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3639563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3640563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3641563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3642563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3643563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3644563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
36451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
36461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3648563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3649563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3650a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
36511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3653563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3654563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
36551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
36561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
36621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
36631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3666563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3667563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3668563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3669563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3670563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3671563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3672563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3674a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
36751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3677563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3678563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3679b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3680b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
36813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3682563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3683563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3684563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3686563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3687563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3688563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3689563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3690563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3692a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
36931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3695e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3696e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
36973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3698e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
36992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
37009ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
37010e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
37021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3703563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3704e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
37051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
370603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
37071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
37081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3709e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3710a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3711a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3712a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3713a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3714e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3715a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
37163dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3717f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3718f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3719a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3720e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
37211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
37221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
372303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
372403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
37251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3726e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
37271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
37281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
37291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
37300e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
37321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3733e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
37341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
37359ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
37361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3737a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3738a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3739e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3740a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3741a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
37420e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3743a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
37441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3746091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3747543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
37483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
37491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3751563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3752563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3753563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3754563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3755563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
37561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
37571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37599ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
37609ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3761563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
37629ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
37639ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
37649ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
37659ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
37669ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37679ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
37689ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
37691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3770a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3771091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
37721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
37731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3774543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3775091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
37761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3777f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3778f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3779f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3781563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3782563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3783563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3785f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3786f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3787f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3788f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3789e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
37901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3791563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
37931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3794f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
37950e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3797a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3798e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3799a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3800a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3801a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
380265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
38031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3804a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
38051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3807091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
38081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
38091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3810543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
38113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
38121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3813f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3814f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3815f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3820563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3821f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3822f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3823f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3824f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3825e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
38261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3827563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3828e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
38291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3830f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
38310e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3833a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3834e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3835a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3836a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3837a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3838a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
38391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
38411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3843091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
38441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
38451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3846fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
38473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
38481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3849f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3850f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3851f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3852563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3853563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3854563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3855563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3857f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3858f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3859f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3860f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3861e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
38621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3863563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3864e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
38651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3866f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
38670e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3869a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3870e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3871a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3872a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3873a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
38741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
38761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3878091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
38791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
38801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3881543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
38823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
38831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3884f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3885f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3886f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3887563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3888563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3892f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3893f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3894f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3895f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3896e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
38971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3898563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3899e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
39001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3901f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
39020e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
39031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3904a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3905e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3906a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3907a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3908a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
39091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
39101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
39111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
39121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3913091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
39141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
391533faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
39163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
39171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3918f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3919f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3920f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3921563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3922563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
392482afc95f7ed4e896a15d8b2a20d4f4521ed100c2Alistair Strachan    struct ANativeWindow*             window;
3925f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3926f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3927f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3928f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
39291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3930563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3931e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
39321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3933f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
39340e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
39351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
39361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
39371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
39381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
39391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3940091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
39411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
39421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
39437ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
39443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
39451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3946f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3947f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3948f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3949563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3951563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3952563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3953563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3954f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3955f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3956f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3957f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3958e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
39591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3960563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3961e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
39621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3963f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
39640e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
39651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3966a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3967e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3968a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3969a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
39701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
39711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
39721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
39732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_sampler_mirror_clamp_to_edge 1
39742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
39752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
39762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
39771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_get_physical_device_properties2 1
39791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
39801194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
39811194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceFeatures2KHR {
39831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType             sType;
39841194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                       pNext;
39851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures    features;
39861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceFeatures2KHR;
39871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39881194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceProperties2KHR {
39891194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType               sType;
39901194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                         pNext;
39911194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties    properties;
39921194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceProperties2KHR;
39931194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39941194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkFormatProperties2KHR {
39951194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
39961194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                 pNext;
39971194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties    formatProperties;
39981194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkFormatProperties2KHR;
39991194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkImageFormatProperties2KHR {
40011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
40021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
40031194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties    imageFormatProperties;
40041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkImageFormatProperties2KHR;
40051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceImageFormatInfo2KHR {
40071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
40081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*           pNext;
40091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat              format;
40101194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType           type;
40111194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling         tiling;
40121194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags     usage;
40131194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageCreateFlags    flags;
40141194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceImageFormatInfo2KHR;
40151194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40161194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkQueueFamilyProperties2KHR {
40171194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
40181194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
40191194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties    queueFamilyProperties;
40201194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkQueueFamilyProperties2KHR;
40211194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40221194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceMemoryProperties2KHR {
40231194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                     sType;
40241194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                               pNext;
40251194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties    memoryProperties;
40261194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceMemoryProperties2KHR;
40271194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkSparseImageFormatProperties2KHR {
40291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                  sType;
40301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                            pNext;
40311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties    properties;
40321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkSparseImageFormatProperties2KHR;
40331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
40351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType          sType;
40361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*              pNext;
40371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                 format;
40381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType              type;
40391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSampleCountFlagBits    samples;
40401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags        usage;
40411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling            tiling;
40421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceSparseImageFormatInfo2KHR;
40431194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40441194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40451194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
40461194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
40471194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
40481194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
40491194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
40501194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
40511194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
40521194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40531194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#ifndef VK_NO_PROTOTYPES
40541194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
40551194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures2KHR*               pFeatures);
40571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40581194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
40591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties2KHR*             pProperties);
40611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40621194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
40631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                                    format,
40651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties2KHR*                     pFormatProperties);
40661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40671194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
40681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
40701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties2KHR*                pImageFormatProperties);
40711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40721194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
40731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pQueueFamilyPropertyCount,
40751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
40761194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40771194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
40781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
40801194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40811194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
40821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
40841194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pPropertyCount,
40851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties2KHR*          pProperties);
40861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#endif
40871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
408877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_shader_draw_parameters 1
408977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
409077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
4091cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
4092cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
409377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_maintenance1 1
409477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_SPEC_VERSION  1
409577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
40962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
409777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkCommandPoolTrimFlagsKHR;
40982e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
409977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
41002e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
41012e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#ifndef VK_NO_PROTOTYPES
410277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
41032e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkDevice                                    device,
410477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPool                               commandPool,
410577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPoolTrimFlagsKHR                   flags);
41062e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#endif
41072e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
41089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_memory_capabilities 1
41099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_LUID_SIZE_KHR                  8
41109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
41119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
41129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalMemoryHandleTypeFlagBitsKHR {
41159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
41169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
41179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
41189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
41199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
41209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
41219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
41229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
41239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalMemoryHandleTypeFlagBitsKHR;
41249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalMemoryHandleTypeFlagsKHR;
41259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalMemoryFeatureFlagBitsKHR {
41279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
41289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
41299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
41309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
41319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalMemoryFeatureFlagBitsKHR;
41329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalMemoryFeatureFlagsKHR;
41339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalMemoryPropertiesKHR {
41359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryFeatureFlagsKHR       externalMemoryFeatures;
41369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagsKHR    exportFromImportedHandleTypes;
41379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagsKHR    compatibleHandleTypes;
41389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalMemoryPropertiesKHR;
41399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceExternalImageFormatInfoKHR {
41419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
41429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
41439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
41449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceExternalImageFormatInfoKHR;
41459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalImageFormatPropertiesKHR {
41479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                  sType;
41489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                            pNext;
41499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryPropertiesKHR    externalMemoryProperties;
41509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalImageFormatPropertiesKHR;
41519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceExternalBufferInfoKHR {
41539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
41549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
41559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBufferCreateFlags                      flags;
41569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBufferUsageFlags                       usage;
41579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
41589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceExternalBufferInfoKHR;
41599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalBufferPropertiesKHR {
41619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                  sType;
41629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                            pNext;
41639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryPropertiesKHR    externalMemoryProperties;
41649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalBufferPropertiesKHR;
41659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceIDPropertiesKHR {
41679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
41689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
41699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint8_t            deviceUUID[VK_UUID_SIZE];
41709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint8_t            driverUUID[VK_UUID_SIZE];
41719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint8_t            deviceLUID[VK_LUID_SIZE_KHR];
41729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t           deviceNodeMask;
41739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           deviceLUIDValid;
41749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceIDPropertiesKHR;
41759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties);
41789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
41809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
41819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkPhysicalDevice                            physicalDevice,
41829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
41839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalBufferPropertiesKHR*              pExternalBufferProperties);
41849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
41859947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_memory 1
41879947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
41889947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
41899947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_QUEUE_FAMILY_EXTERNAL_KHR      (~0U-1)
41909947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41919947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalMemoryImageCreateInfoKHR {
41929947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                       sType;
41939947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                           pNext;
41949947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagsKHR    handleTypes;
41959947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalMemoryImageCreateInfoKHR;
41969947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
41979947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalMemoryBufferCreateInfoKHR {
41989947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                       sType;
41999947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                           pNext;
42009947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagsKHR    handleTypes;
42019947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalMemoryBufferCreateInfoKHR;
42029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportMemoryAllocateInfoKHR {
42049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                       sType;
42059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                           pNext;
42069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagsKHR    handleTypes;
42079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportMemoryAllocateInfoKHR;
42089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
42129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_memory_win32 1
42139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
42149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
42159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportMemoryWin32HandleInfoKHR {
42179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
42189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
42199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
42209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE                                   handle;
42219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                                  name;
42229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportMemoryWin32HandleInfoKHR;
42239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportMemoryWin32HandleInfoKHR {
42259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType               sType;
42269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                   pNext;
42279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
42289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    DWORD                         dwAccess;
42299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                       name;
42309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportMemoryWin32HandleInfoKHR;
42319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryWin32HandlePropertiesKHR {
42339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
42349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
42359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t           memoryTypeBits;
42369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryWin32HandlePropertiesKHR;
42379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryGetWin32HandleInfoKHR {
42399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
42409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
42419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDeviceMemory                           memory;
42429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
42439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryGetWin32HandleInfoKHR;
42449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
42479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
42489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
42509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(
42519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
42529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
42539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE*                                     pHandle);
42549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(
42569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
42579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR       handleType,
42589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE                                      handle,
42599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties);
42609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
42619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
42629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_memory_fd 1
42649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
42659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
42669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportMemoryFdInfoKHR {
42689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
42699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
42709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
42719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int                                      fd;
42729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportMemoryFdInfoKHR;
42739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryFdPropertiesKHR {
42759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
42769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
42779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t           memoryTypeBits;
42789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryFdPropertiesKHR;
42799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryGetFdInfoKHR {
42819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
42829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
42839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDeviceMemory                           memory;
42849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR    handleType;
42859947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryGetFdInfoKHR;
42869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42879947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42889947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
42899947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
42909947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42919947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
42929947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
42939947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
42949947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
42959947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int*                                        pFd);
42969947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
42979947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
42989947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
42999947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHR       handleType,
43009947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int                                         fd,
43019947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
43029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
43039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
43059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_win32_keyed_mutex 1
43069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
43079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
43089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
43109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType          sType;
43119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*              pNext;
43129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t                 acquireCount;
43139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkDeviceMemory*    pAcquireSyncs;
43149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const uint64_t*          pAcquireKeys;
43159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const uint32_t*          pAcquireTimeouts;
43169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t                 releaseCount;
43179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkDeviceMemory*    pReleaseSyncs;
43189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const uint64_t*          pReleaseKeys;
43199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkWin32KeyedMutexAcquireReleaseInfoKHR;
43209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
43239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_semaphore_capabilities 1
43259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
43269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
43279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalSemaphoreHandleTypeFlagBitsKHR {
43309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
43319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
43329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
43339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008,
43349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000010,
43359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
43369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalSemaphoreHandleTypeFlagBitsKHR;
43379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHR;
43389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalSemaphoreFeatureFlagBitsKHR {
43409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
43419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
43429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
43439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalSemaphoreFeatureFlagBitsKHR;
43449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalSemaphoreFeatureFlagsKHR;
43459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceExternalSemaphoreInfoKHR {
43479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                             sType;
43489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                                 pNext;
43499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
43509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceExternalSemaphoreInfoKHR;
43519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalSemaphorePropertiesKHR {
43539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
43549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                                    pNext;
43559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHR    exportFromImportedHandleTypes;
43569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHR    compatibleHandleTypes;
43579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreFeatureFlagsKHR       externalSemaphoreFeatures;
43589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalSemaphorePropertiesKHR;
43599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties);
43629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
43649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
43659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkPhysicalDevice                            physicalDevice,
43669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
43679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphorePropertiesKHR*           pExternalSemaphoreProperties);
43689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
43699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_semaphore 1
43719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
43729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
43739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkSemaphoreImportFlagBitsKHR {
43769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
43779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
43789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkSemaphoreImportFlagBitsKHR;
43799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkSemaphoreImportFlagsKHR;
43809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportSemaphoreCreateInfoKHR {
43829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                          sType;
43839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                              pNext;
43849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHR    handleTypes;
43859947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportSemaphoreCreateInfoKHR;
43869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43879947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43889947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43899947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
43909947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_semaphore_win32 1
43919947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
43929947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
43939947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
43949947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportSemaphoreWin32HandleInfoKHR {
43959947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                             sType;
43969947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                                 pNext;
43979947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphore                                 semaphore;
43989947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphoreImportFlagsKHR                   flags;
43999947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
44009947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE                                      handle;
44019947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                                     name;
44029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportSemaphoreWin32HandleInfoKHR;
44039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportSemaphoreWin32HandleInfoKHR {
44059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType               sType;
44069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                   pNext;
44079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
44089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    DWORD                         dwAccess;
44099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                       name;
44109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportSemaphoreWin32HandleInfoKHR;
44119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkD3D12FenceSubmitInfoKHR {
44139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
44149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*        pNext;
44159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t           waitSemaphoreValuesCount;
44169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const uint64_t*    pWaitSemaphoreValues;
44179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t           signalSemaphoreValuesCount;
44189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const uint64_t*    pSignalSemaphoreValues;
44199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkD3D12FenceSubmitInfoKHR;
44209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkSemaphoreGetWin32HandleInfoKHR {
44229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                             sType;
44239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                                 pNext;
44249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphore                                 semaphore;
44259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
44269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkSemaphoreGetWin32HandleInfoKHR;
44279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
44309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
44319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
44339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(
44349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
44359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo);
44369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(
44389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
44399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
44409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE*                                     pHandle);
44419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
44429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
44439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_semaphore_fd 1
44459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
44469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
44479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportSemaphoreFdInfoKHR {
44499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                             sType;
44509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                                 pNext;
44519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphore                                 semaphore;
44529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphoreImportFlagsKHR                   flags;
44539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
44549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int                                         fd;
44559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportSemaphoreFdInfoKHR;
44569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkSemaphoreGetFdInfoKHR {
44589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                             sType;
44599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                                 pNext;
44609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSemaphore                                 semaphore;
44619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType;
44629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkSemaphoreGetFdInfoKHR;
44639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
44669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
44679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
44699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
44709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
44719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
44729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
44739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
44749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
44759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
44769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int*                                        pFd);
44779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
44789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
4479ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_push_descriptor 1
4480ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1
4481ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
4482ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4483ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
4484ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4485ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4486ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxPushDescriptors;
4487ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDevicePushDescriptorPropertiesKHR;
4488ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4489ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4490ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
4491ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4492ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4493ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
4494ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4495ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
4496ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4497ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4498ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    descriptorWriteCount,
4499ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites);
4500ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4501ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
45029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_16bit_storage 1
45039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
45049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
45059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
45069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDevice16BitStorageFeaturesKHR {
45079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
45089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
45099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           storageBuffer16BitAccess;
45109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           uniformAndStorageBuffer16BitAccess;
45119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           storagePushConstant16;
45129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           storageInputOutput16;
45139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDevice16BitStorageFeaturesKHR;
45149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
45159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
45169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
4517f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_incremental_present 1
4518f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
4519f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
4520f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4521f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkRectLayerKHR {
4522f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkOffset2D    offset;
4523f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkExtent2D    extent;
4524f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t      layer;
4525f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkRectLayerKHR;
4526f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4527f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkPresentRegionKHR {
4528f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t                 rectangleCount;
4529f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const VkRectLayerKHR*    pRectangles;
4530f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkPresentRegionKHR;
4531f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4532f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkPresentRegionsKHR {
4533f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkStructureType              sType;
4534f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const void*                  pNext;
4535f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t                     swapchainCount;
4536f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const VkPresentRegionKHR*    pRegions;
4537f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkPresentRegionsKHR;
4538f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4539f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4540f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4541ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_descriptor_update_template 1
4542ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
4543ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4544ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
4545ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
4546ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4547ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4548ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorUpdateTemplateTypeKHR {
4549ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
4550ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4551ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
4552ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
4553ad250840766ea76def08c0d9f0b04a09c32dab79Jesse 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),
4554ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
4555ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateTypeKHR;
4556ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4557ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
4558ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4559ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateEntryKHR {
4560ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstBinding;
4561ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstArrayElement;
4562ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            descriptorCount;
4563ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorType    descriptorType;
4564ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              offset;
4565ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              stride;
4566ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateEntryKHR;
4567ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4568ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateCreateInfoKHR {
4569ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                              sType;
4570ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                                        pNext;
4571ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateCreateFlagsKHR     flags;
4572ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     descriptorUpdateEntryCount;
4573ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateEntryKHR*    pDescriptorUpdateEntries;
4574ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateTypeKHR            templateType;
4575ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSetLayout                        descriptorSetLayout;
4576ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                          pipelineBindPoint;
4577ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                             pipelineLayout;
4578ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     set;
4579ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateCreateInfoKHR;
4580ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4581ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4582ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
4583ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4584ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
4585ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
4586ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4587ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4588ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
4589ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4590ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
4591ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4592ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR*              pDescriptorUpdateTemplate);
4593ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4594ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
4595ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4596ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4597ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4598ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4599ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
4600ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4601ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSet                             descriptorSet,
4602ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4603ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4604ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4605ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
4606ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4607ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4608ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4609ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4610ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4611ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4612ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
461305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_shared_presentable_image 1
461405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
461505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
461605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
461705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSharedPresentSurfaceCapabilitiesKHR {
461805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType      sType;
461905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                pNext;
462005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkImageUsageFlags    sharedPresentSupportedUsageFlags;
462105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSharedPresentSurfaceCapabilitiesKHR;
462205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
462305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
462405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
462505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
462605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#ifndef VK_NO_PROTOTYPES
462705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
462805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkDevice                                    device,
462905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSwapchainKHR                              swapchain);
463005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#endif
463105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
46329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_fence_capabilities 1
46339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
46349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
46359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalFenceHandleTypeFlagBitsKHR {
46389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
46399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
46409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
46419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
46429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
46439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalFenceHandleTypeFlagBitsKHR;
46449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalFenceHandleTypeFlagsKHR;
46459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkExternalFenceFeatureFlagBitsKHR {
46479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
46489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
46499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
46509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalFenceFeatureFlagBitsKHR;
46519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkExternalFenceFeatureFlagsKHR;
46529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceExternalFenceInfoKHR {
46549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                         sType;
46559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                             pNext;
46569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
46579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceExternalFenceInfoKHR;
46589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExternalFencePropertiesKHR {
46609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                      sType;
46619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                                pNext;
46629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagsKHR    exportFromImportedHandleTypes;
46639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagsKHR    compatibleHandleTypes;
46649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceFeatureFlagsKHR       externalFenceFeatures;
46659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExternalFencePropertiesKHR;
46669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties);
46699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
46719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
46729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkPhysicalDevice                            physicalDevice,
46739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
46749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFencePropertiesKHR*               pExternalFenceProperties);
46759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
46769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_fence 1
46789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
46799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
46809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef enum VkFenceImportFlagBitsKHR {
46839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
46849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
46859947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkFenceImportFlagBitsKHR;
46869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkFlags VkFenceImportFlagsKHR;
46879947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46889947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportFenceCreateInfoKHR {
46899947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                      sType;
46909947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                          pNext;
46919947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagsKHR    handleTypes;
46929947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportFenceCreateInfoKHR;
46939947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46949947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46959947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
46969947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
46979947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_fence_win32 1
46989947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
46999947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
47009947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47019947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportFenceWin32HandleInfoKHR {
47029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                         sType;
47039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                             pNext;
47049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFence                                 fence;
47059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFenceImportFlagsKHR                   flags;
47069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
47079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE                                  handle;
47089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                                 name;
47099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportFenceWin32HandleInfoKHR;
47109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47119947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkExportFenceWin32HandleInfoKHR {
47129947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType               sType;
47139947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                   pNext;
47149947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
47159947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    DWORD                         dwAccess;
47169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    LPCWSTR                       name;
47179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkExportFenceWin32HandleInfoKHR;
47189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkFenceGetWin32HandleInfoKHR {
47209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                         sType;
47219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                             pNext;
47229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFence                                 fence;
47239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
47249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkFenceGetWin32HandleInfoKHR;
47259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
47289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
47299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
47319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(
47329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
47339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo);
47349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(
47369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
47379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
47389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    HANDLE*                                     pHandle);
47399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
47409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
47419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_external_fence_fd 1
47439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
47449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
47459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImportFenceFdInfoKHR {
47479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                         sType;
47489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                             pNext;
47499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFence                                 fence;
47509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFenceImportFlagsKHR                   flags;
47519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
47529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int                                     fd;
47539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImportFenceFdInfoKHR;
47549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkFenceGetFdInfoKHR {
47569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                         sType;
47579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*                             pNext;
47589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkFence                                 fence;
47599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkExternalFenceHandleTypeFlagBitsKHR    handleType;
47609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkFenceGetFdInfoKHR;
47619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
47649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
47659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
47679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
47689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
47699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
47709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
47719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
47729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
47739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkFenceGetFdInfoKHR*                  pGetFdInfo,
47749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    int*                                        pFd);
47759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
47769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
477705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_get_surface_capabilities2 1
477805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
477905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
478005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
478105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkPhysicalDeviceSurfaceInfo2KHR {
478205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType    sType;
478305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const void*        pNext;
478405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceKHR       surface;
478505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkPhysicalDeviceSurfaceInfo2KHR;
478605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
478705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSurfaceCapabilities2KHR {
478805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType             sType;
478905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                       pNext;
479005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceCapabilitiesKHR    surfaceCapabilities;
479105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSurfaceCapabilities2KHR;
479205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
479305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSurfaceFormat2KHR {
479405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType       sType;
479505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                 pNext;
479605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceFormatKHR    surfaceFormat;
479705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSurfaceFormat2KHR;
479805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
479905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
480005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
480105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
480205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
480305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#ifndef VK_NO_PROTOTYPES
480405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
480505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkPhysicalDevice                            physicalDevice,
480605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
480705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
480805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
480905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
481005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkPhysicalDevice                            physicalDevice,
481105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
481205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    uint32_t*                                   pSurfaceFormatCount,
481305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceFormat2KHR*                        pSurfaceFormats);
481405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#endif
481505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
48169947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_variable_pointers 1
48179947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
48189947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
48199947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48209947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkPhysicalDeviceVariablePointerFeaturesKHR {
48219947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48229947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
48239947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           variablePointersStorageBuffer;
48249947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           variablePointers;
48259947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkPhysicalDeviceVariablePointerFeaturesKHR;
48269947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48279947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48289947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48299947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_dedicated_allocation 1
48309947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 1
48319947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
48329947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48339947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryDedicatedRequirementsKHR {
48349947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48359947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*              pNext;
48369947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           prefersDedicatedAllocation;
48379947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBool32           requiresDedicatedAllocation;
48389947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryDedicatedRequirementsKHR;
48399947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48409947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryDedicatedAllocateInfoKHR {
48419947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48429947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*        pNext;
48439947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkImage            image;
48449947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBuffer           buffer;
48459947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryDedicatedAllocateInfoKHR;
48469947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48479947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48489947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48499947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_storage_buffer_storage_class 1
48509947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
48519947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
48529947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48539947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48549947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_get_memory_requirements2 1
48559947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
48569947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
48579947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48589947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkBufferMemoryRequirementsInfo2KHR {
48599947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48609947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*        pNext;
48619947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkBuffer           buffer;
48629947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkBufferMemoryRequirementsInfo2KHR;
48639947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48649947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImageMemoryRequirementsInfo2KHR {
48659947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48669947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*        pNext;
48679947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkImage            image;
48689947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImageMemoryRequirementsInfo2KHR;
48699947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48709947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkImageSparseMemoryRequirementsInfo2KHR {
48719947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType    sType;
48729947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const void*        pNext;
48739947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkImage            image;
48749947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkImageSparseMemoryRequirementsInfo2KHR;
48759947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48769947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkMemoryRequirements2KHR {
48779947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType         sType;
48789947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                   pNext;
48799947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkMemoryRequirements    memoryRequirements;
48809947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkMemoryRequirements2KHR;
48819947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48829947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef struct VkSparseImageMemoryRequirements2KHR {
48839947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkStructureType                    sType;
48849947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    void*                              pNext;
48859947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSparseImageMemoryRequirements    memoryRequirements;
48869947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall} VkSparseImageMemoryRequirements2KHR;
48879947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48889947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48899947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
48909947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
48919947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements);
48929947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48939947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#ifndef VK_NO_PROTOTYPES
48949947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
48959947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
48969947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImageMemoryRequirementsInfo2KHR*    pInfo,
48979947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkMemoryRequirements2KHR*                   pMemoryRequirements);
48989947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
48999947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
49009947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
49019947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkBufferMemoryRequirementsInfo2KHR*   pInfo,
49029947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkMemoryRequirements2KHR*                   pMemoryRequirements);
49039947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
49049947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
49059947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkDevice                                    device,
49069947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
49079947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
49089947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall    VkSparseImageMemoryRequirements2KHR*        pSparseMemoryRequirements);
49099947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall#endif
49109947eabf8b38a62ce9ad82d210cc886d1d19f593Jesse Hall
4911e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
4912e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
4913e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
49147ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  8
4915e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
49162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
49177ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
4918e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4919e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4920e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
4921e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
4922e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
4923e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
4924e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
4925e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
4926e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
4927e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
4928e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
4929e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
4930e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
4931e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
4932e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
4933e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
4934e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
4935e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
4936e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
4937e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
4938e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
4939e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
4940e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
4941e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
4942e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
4943e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
4944e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
4945e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
4946e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
4947e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
4948e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
49497ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
4950289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
4951289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
4952289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
4953289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
4954f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
49552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4956289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
4957289cb79d444c385185e4f357d3b2fe67a958e932Chris 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),
49582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
4959e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
4960e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4961e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4962e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
4963e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
4964e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
4965e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
4966e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
4967e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
49682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
4969e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
4970e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
4971e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4972e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
4973e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4974e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4975e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4976e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4977e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4978e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4979e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
4980e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
4981e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4982e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4983e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
4984e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
4985e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
4986e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
4987e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
4988e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
4989e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
4990e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4991e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4992e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
4993e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
4994e2948d83f352b9a093252a06757f76a88f5355d3Jesse 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);
4995e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4996e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
4997e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
4998e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4999e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
5000e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
5001e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
5002e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
5003e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
5004e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
5005e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
5006e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
5007e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
5008e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
5009e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
5010e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
5011e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
5012e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
5013e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
5014e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
5015e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
5016e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
5017e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
5018e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
50192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_glsl_shader 1
50202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
50212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
50222676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_filter_cubic 1
50252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
50262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
50272676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_rasterization_order 1
50302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
50312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
50322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef enum VkRasterizationOrderAMD {
50352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
50362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
50372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
50382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
50392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
50402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
50412676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkRasterizationOrderAMD;
50422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
50442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType            sType;
50452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                pNext;
50462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkRasterizationOrderAMD    rasterizationOrder;
50472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkPipelineRasterizationStateRasterizationOrderAMD;
50482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
505156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_trinary_minmax 1
505256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
505356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
505456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
505556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
505656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_explicit_vertex_parameter 1
505756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
505856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
505956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
506056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
50612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_debug_marker 1
50628f49fcb42d560de4fcc9224226495b942a94bff4Jesse Hall#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
50632676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
50642676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectNameInfoEXT {
50662676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
50672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
50682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
50692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
50702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*                   pObjectName;
50712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectNameInfoEXT;
50722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectTagInfoEXT {
50742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
50752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
50762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
50772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
50782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      tagName;
50792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    size_t                        tagSize;
50802676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pTag;
50812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectTagInfoEXT;
50822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50832676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerMarkerInfoEXT {
50842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType    sType;
50852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*        pNext;
50862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*        pMarkerName;
50872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    float              color[4];
50882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerMarkerInfoEXT;
50892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
50922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
50932676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
50942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
50952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
50962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
50972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VK_NO_PROTOTYPES
50982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
50992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
51002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
51012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
51022676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
51032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
51042676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
51052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
51062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
51072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
51082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
51092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
51102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
51112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer);
51122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
51132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
51142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
51152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
51162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#endif
51172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
511856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_gcn_shader 1
511956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
512056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
512156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
512256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
512356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_dedicated_allocation 1
512456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
512556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
512656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
512756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationImageCreateInfoNV {
512856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
512956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
513056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
513156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationImageCreateInfoNV;
513256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
513356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationBufferCreateInfoNV {
513456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
513556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
513656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
513756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationBufferCreateInfoNV;
513856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
513956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
514056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
514156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
514256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkImage            image;
514356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBuffer           buffer;
514456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationMemoryAllocateInfoNV;
514556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
514656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
514777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5148289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_draw_indirect_count 1
5149289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
5150289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
5151289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5152289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
5153289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
5154289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5155289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5156289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
5157289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5158289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
5159289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
5160289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
5161289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
5162289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
5163289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
5164289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5165289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
5166289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5167289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
5168289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
5169289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
5170289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
5171289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
5172289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
5173289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5174289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5175289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_negative_viewport_height 1
5176289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
5177289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
5178289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5179289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5180289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_gpu_shader_half_float 1
5181289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
5182289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
5183289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5184289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5185289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_shader_ballot 1
5186289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
5187289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
5188289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5189289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
51907ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_texture_gather_bias_lod 1
51917ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
51927ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
51937ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
51947ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkTextureLODGatherFormatPropertiesAMD {
51957ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType    sType;
51967ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    void*              pNext;
51977ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           supportsTextureGatherLODBiasAMD;
51987ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkTextureLODGatherFormatPropertiesAMD;
51997ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
52007ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
52017ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
5202ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_multiview 1
5203ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_SPEC_VERSION     1
5204ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_EXTENSION_NAME   "VK_KHX_multiview"
5205ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5206ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkRenderPassMultiviewCreateInfoKHX {
5207ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5208ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5209ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           subpassCount;
5210ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pViewMasks;
5211ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           dependencyCount;
5212ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const int32_t*     pViewOffsets;
5213ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           correlationMaskCount;
5214ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCorrelationMasks;
5215ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkRenderPassMultiviewCreateInfoKHX;
5216ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5217ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
5218ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5219ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5220ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiview;
5221ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewGeometryShader;
5222ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewTessellationShader;
5223ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewFeaturesKHX;
5224ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5225ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
5226ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5227ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5228ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewViewCount;
5229ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewInstanceIndex;
5230ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPropertiesKHX;
5231ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5232ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5233ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5234289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_format_pvrtc 1
5235289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
5236289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
5237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5238289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5239289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_capabilities 1
5240289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
5241289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
5242289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5243289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5244289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
5245289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
5246289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
5247289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
5248289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
5249289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
5250289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryHandleTypeFlagBitsNV;
5251289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
5252289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5253289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryFeatureFlagBitsNV {
5254289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
5255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
5256289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
5257289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
5258289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryFeatureFlagBitsNV;
5259289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryFeatureFlagsNV;
5260289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5261289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalImageFormatPropertiesNV {
5262289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageFormatProperties              imageFormatProperties;
5263289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
5264289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
5265289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
5266289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalImageFormatPropertiesNV;
5267289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5268289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5269289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
5270289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5271289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5272289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
5273289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
5274289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkFormat                                    format,
5275289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageType                                 type,
5276289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageTiling                               tiling,
5277289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageUsageFlags                           usage,
5278289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageCreateFlags                          flags,
5279289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
5280289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
5281289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5282289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory 1
5284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
5285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
5286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalMemoryImageCreateInfoNV {
5288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
5291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryImageCreateInfoNV;
5292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryAllocateInfoNV {
5294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5295289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5296289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
5297289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryAllocateInfoNV;
5298289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5299289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5300289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5301289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
5302289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_win32 1
5303289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
5304289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
5305289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5306289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkImportMemoryWin32HandleInfoNV {
5307289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5308289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5309289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleType;
5310289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE                               handle;
5311289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkImportMemoryWin32HandleInfoNV;
5312289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryWin32HandleInfoNV {
5314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType               sType;
5315289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                   pNext;
5316289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const SECURITY_ATTRIBUTES*    pAttributes;
5317289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    DWORD                         dwAccess;
5318289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryWin32HandleInfoNV;
5319289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5320289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5321289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
5322289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5323289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5324289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
5325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceMemory                              memory,
5327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           handleType,
5328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE*                                     pHandle);
5329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
5331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
5333289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_win32_keyed_mutex 1
5334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
5335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
5336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
5338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
5339289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
5340289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 acquireCount;
5341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pAcquireSyncs;
5342289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pAcquireKeys;
5343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*          pAcquireTimeoutMilliseconds;
5344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 releaseCount;
5345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pReleaseSyncs;
5346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pReleaseKeys;
5347289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkWin32KeyedMutexAcquireReleaseInfoNV;
5348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
5351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5352ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group 1
5353ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MAX_DEVICE_GROUP_SIZE_KHX      32
5354ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_SPEC_VERSION  1
5355ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
5356ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5357ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5358ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkPeerMemoryFeatureFlagBitsKHX {
5359ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
5360ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
5361ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
5362ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
5363ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5364ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPeerMemoryFeatureFlagBitsKHX;
5365ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPeerMemoryFeatureFlagsKHX;
5366ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5367ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkMemoryAllocateFlagBitsKHX {
5368ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
5369ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5370ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagBitsKHX;
5371ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMemoryAllocateFlagsKHX;
5372ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5373ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDeviceGroupPresentModeFlagBitsKHX {
5374ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
5375ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
5376ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
5377ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
5378ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5379ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentModeFlagBitsKHX;
5380ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
5381ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5382ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryAllocateFlagsInfoKHX {
5383ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType             sType;
5384ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                 pNext;
5385ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryAllocateFlagsKHX    flags;
5386ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                    deviceMask;
5387ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagsInfoKHX;
5388ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5389ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindBufferMemoryInfoKHX {
5390ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5391ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5392ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBuffer           buffer;
5393ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
5394ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
5395ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
5396ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
5397ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindBufferMemoryInfoKHX;
5398ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5399ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemoryInfoKHX {
5400ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5401ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5402ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImage            image;
5403ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
5404ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
5405ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
5406ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
5407ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           SFRRectCount;
5408ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pSFRRects;
5409ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemoryInfoKHX;
5410ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5411ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupRenderPassBeginInfoKHX {
5412ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5413ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5414ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
5415ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceRenderAreaCount;
5416ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pDeviceRenderAreas;
5417ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupRenderPassBeginInfoKHX;
5418ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5419ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
5420ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5421ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5422ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
5423ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupCommandBufferBeginInfoKHX;
5424ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5425ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSubmitInfoKHX {
5426ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5427ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5428ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           waitSemaphoreCount;
5429ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pWaitSemaphoreDeviceIndices;
5430ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           commandBufferCount;
5431ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCommandBufferDeviceMasks;
5432ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           signalSemaphoreCount;
5433ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pSignalSemaphoreDeviceIndices;
5434ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSubmitInfoKHX;
5435ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5436ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupBindSparseInfoKHX {
5437ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5438ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5439ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           resourceDeviceIndex;
5440ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryDeviceIndex;
5441ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupBindSparseInfoKHX;
5442ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5443ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentCapabilitiesKHX {
5444ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
5445ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
5446ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
5447ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
5448ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentCapabilitiesKHX;
5449ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5450ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImageSwapchainCreateInfoKHX {
5451ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5452ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5453ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
5454ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImageSwapchainCreateInfoKHX;
5455ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5456ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemorySwapchainInfoKHX {
5457ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5458ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5459ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
5460ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           imageIndex;
5461ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemorySwapchainInfoKHX;
5462ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5463ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkAcquireNextImageInfoKHX {
5464ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5465ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5466ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
5467ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint64_t           timeout;
5468ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore        semaphore;
5469ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkFence            fence;
5470ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
5471ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkAcquireNextImageInfoKHX;
5472ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5473ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentInfoKHX {
5474ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                        sType;
5475ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                            pNext;
5476ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                               swapchainCount;
5477ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*                        pDeviceMasks;
5478ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagBitsKHX    mode;
5479ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentInfoKHX;
5480ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5481ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSwapchainCreateInfoKHX {
5482ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
5483ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
5484ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
5485ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSwapchainCreateInfoKHX;
5486ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5487ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5488ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
5489ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos);
5490ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos);
5491ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5492ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
5493ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
5494ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
5495ad250840766ea76def08c0d9f0b04a09c32dab79Jesse 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);
5496ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
5497ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5498ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5499ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
5500ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5501ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    heapIndex,
5502ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    localDeviceIndex,
5503ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    remoteDeviceIndex,
5504ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPeerMemoryFeatureFlagsKHX*                pPeerMemoryFeatures);
5505ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5506ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX(
5507ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5508ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
5509ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindBufferMemoryInfoKHX*            pBindInfos);
5510ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5511ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX(
5512ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5513ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
5514ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindImageMemoryInfoKHX*             pBindInfos);
5515ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5516ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
5517ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5518ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    deviceMask);
5519ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5520ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
5521ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5522ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentCapabilitiesKHX*        pDeviceGroupPresentCapabilities);
5523ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5524ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
5525ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5526ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
5527ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX*           pModes);
5528ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5529ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
5530ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5531ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAcquireNextImageInfoKHX*            pAcquireInfo,
5532ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pImageIndex);
5533ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5534ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
5535ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5536ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupX,
5537ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupY,
5538ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupZ,
5539ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
5540ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
5541ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
5542ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5543ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
5544ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
5545ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
5546ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pRectCount,
5547ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkRect2D*                                   pRects);
5548ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5549ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5550289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_validation_flags 1
5551289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
5552289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
5553289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5554289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5555289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkValidationCheckEXT {
5556289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_ALL_EXT = 0,
55577ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_VALIDATION_CHECK_SHADERS_EXT = 1,
5558289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
55597ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
55607ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
5561289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
5562289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationCheckEXT;
5563289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5564289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkValidationFlagsEXT {
5565289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
5566289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
5567289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 disabledValidationCheckCount;
5568289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkValidationCheckEXT*    pDisabledValidationChecks;
5569289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationFlagsEXT;
5570289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5571289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5572289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
557377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_VI_NN
557477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_vi_surface 1
557577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_SPEC_VERSION     1
557677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_EXTENSION_NAME   "VK_NN_vi_surface"
557777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
557877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkViSurfaceCreateFlagsNN;
557977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkViSurfaceCreateInfoNN {
558177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
558277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
558377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkViSurfaceCreateFlagsNN    flags;
558477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                       window;
558577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkViSurfaceCreateInfoNN;
558677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
558977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
559177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
559277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkInstance                                  instance,
559377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkViSurfaceCreateInfoNN*              pCreateInfo,
559477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
559577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR*                               pSurface);
559677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
559777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_VI_NN */
559877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_ballot 1
560077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
560177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
560277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
560377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
560477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_vote 1
560577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
560677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
560777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
560877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5609ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group_creation 1
5610ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
5611ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
5612ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5613ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceGroupPropertiesKHX {
5614ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType     sType;
5615f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    void*               pNext;
5616ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            physicalDeviceCount;
5617ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
5618ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32            subsetAllocation;
5619ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceGroupPropertiesKHX;
5620ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5621ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupDeviceCreateInfoKHX {
5622ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType            sType;
5623ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                pNext;
5624ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                   physicalDeviceCount;
5625ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDevice*    pPhysicalDevices;
5626ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupDeviceCreateInfoKHX;
5627ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5628ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5629ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
5630ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5631ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5632ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
5633ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
5634ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pPhysicalDeviceGroupCount,
5635ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDeviceGroupPropertiesKHX*         pPhysicalDeviceGroupProperties);
5636ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5637ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5638289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_device_generated_commands 1
5639289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
5640289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
5641289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5642289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
5643289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
5644289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5645289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5646289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsTokenTypeNVX {
56477ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
56487ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
56497ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
56507ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
56517ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
56527ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
56537ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
56547ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
56557ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
56567ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
56577ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
5658289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5659289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenTypeNVX;
5660289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5661289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryTypeNVX {
56627ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
56637ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
56647ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
56657ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
56667ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
56677ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
56687ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
56697ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
5670289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5671289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryTypeNVX;
5672289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5673289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5674289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
5675289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
5676289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
5677289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
5678289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
5679289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5680289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutUsageFlagBitsNVX;
5681289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
5682289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5683289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryUsageFlagBitsNVX {
5684289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
5685289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
5686289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5687289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryUsageFlagBitsNVX;
5688289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkObjectEntryUsageFlagsNVX;
5689289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5690289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsFeaturesNVX {
5691289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5692289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5693289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBool32           computeBindingPointSupport;
5694289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsFeaturesNVX;
5695289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5696289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsLimitsNVX {
5697289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5698289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5699289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxIndirectCommandsLayoutTokenCount;
5700289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxObjectEntryCounts;
5701289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceCountBufferOffsetAlignment;
5702289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceIndexBufferOffsetAlignment;
5703289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minCommandsTokenBufferOffsetAlignment;
5704289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsLimitsNVX;
5705289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5706289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsTokenNVX {
5707289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5708289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                          buffer;
5709289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                      offset;
5710289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenNVX;
5711289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5712289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutTokenNVX {
5713289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5714289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          bindingUnit;
5715289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          dynamicCount;
5716289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          divisor;
5717289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutTokenNVX;
5718289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5719289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutCreateInfoNVX {
5720289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                            sType;
5721289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                                pNext;
5722289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineBindPoint                        pipelineBindPoint;
5723289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
5724289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                   tokenCount;
5725289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
5726289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutCreateInfoNVX;
5727289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5728289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdProcessCommandsInfoNVX {
5729289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5730289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5731289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                     objectTable;
5732289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
5733289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             indirectCommandsTokenCount;
5734289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
5735289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSequencesCount;
5736289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                      targetCommandBuffer;
5737289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesCountBuffer;
5738289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesCountOffset;
5739289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesIndexBuffer;
5740289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesIndexOffset;
5741289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdProcessCommandsInfoNVX;
5742289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5743289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdReserveSpaceForCommandsInfoNVX {
5744289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                sType;
5745289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                    pNext;
5746289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX               objectTable;
5747289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
5748289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                       maxSequencesCount;
5749289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdReserveSpaceForCommandsInfoNVX;
5750289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5751289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableCreateInfoNVX {
5752289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5753289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5754289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             objectCount;
5755289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
5756289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                      pObjectEntryCounts;
5757289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
5758289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxUniformBuffersPerDescriptor;
5759289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageBuffersPerDescriptor;
5760289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageImagesPerDescriptor;
5761289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSampledImagesPerDescriptor;
5762289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxPipelineLayouts;
5763289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableCreateInfoNVX;
5764289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5765289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableEntryNVX {
5766289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5767289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5768289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableEntryNVX;
5769289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5770289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePipelineEntryNVX {
5771289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5772289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5773289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipeline                    pipeline;
5774289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePipelineEntryNVX;
5775289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5776289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableDescriptorSetEntryNVX {
5777289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5778289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5779289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5780289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDescriptorSet               descriptorSet;
5781289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableDescriptorSetEntryNVX;
5782289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5783289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableVertexBufferEntryNVX {
5784289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5785289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5786289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
5787289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableVertexBufferEntryNVX;
5788289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5789289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableIndexBufferEntryNVX {
5790289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5791289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5792289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
579377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkIndexType                   indexType;
5794289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableIndexBufferEntryNVX;
5795289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5796289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePushConstantEntryNVX {
5797289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5798289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5799289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5800289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkShaderStageFlags            stageFlags;
5801289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePushConstantEntryNVX;
5802289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5803289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5804289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
5805289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
5806289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
5807289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
5808289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
5809289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
5810289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
5811289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
5812289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
5813289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5814289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5815289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
5816289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5817289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
5818289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5819289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
5820289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5821289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
5822289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5823289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
5824289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5825289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
5826289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5827289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
5828289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5829289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
5830289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5831289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
5832289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5833289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5834289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
5835289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5836289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableCreateInfoNVX*           pCreateInfo,
5837289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5838289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX*                           pObjectTable);
5839289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5840289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
5841289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5842289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5843289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5844289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5845289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
5846289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5847289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5848289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5849289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
5850289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5851289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5852289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
5853289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5854289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5855289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5856289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
5857289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5858289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5859289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
5860289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
5861289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
5862289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
5863289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5864289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5865ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_clip_space_w_scaling 1
5866ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
5867ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
5868ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5869ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportWScalingNV {
5870ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    xcoeff;
5871ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    ycoeff;
5872ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportWScalingNV;
5873ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5874ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportWScalingStateCreateInfoNV {
5875ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                sType;
5876ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                    pNext;
5877ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32                       viewportWScalingEnable;
5878ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                       viewportCount;
5879ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*    pViewportWScalings;
5880ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportWScalingStateCreateInfoNV;
5881ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5882ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5883ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
5884ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5885ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5886ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
5887ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5888ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstViewport,
5889ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    viewportCount,
5890ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*                 pViewportWScalings);
5891ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5892ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
589377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_direct_mode_display 1
589477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
589577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
589677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
589777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
589877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
589977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
590077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
590177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
590277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
590377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
590477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
590577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
590677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_acquire_xlib_display 1
590777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#include <X11/extensions/Xrandr.h>
590877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
590977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
591077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
591177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
591277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
591377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
591477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
591577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
591677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
591777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
591877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
591977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
592077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
592177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
592277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
592377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
592477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    RROutput                                    rrOutput,
592577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR*                               pDisplay);
592677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
592777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
592877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
592977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_surface_counter 1
593077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
593177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
593277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
593377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
593477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkSurfaceCounterFlagBitsEXT {
593577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
593677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
593777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCounterFlagBitsEXT;
593877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkSurfaceCounterFlagsEXT;
593977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
594077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSurfaceCapabilities2EXT {
594177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType                  sType;
594277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                            pNext;
594377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         minImageCount;
594477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageCount;
594577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       currentExtent;
594677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       minImageExtent;
594777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       maxImageExtent;
594877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageArrayLayers;
594977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
595077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
595177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
595277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
595377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
595477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCapabilities2EXT;
595577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
595677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
595777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
595877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
595977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
596077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
596177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
596277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR                                surface,
596377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
596477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
596577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
596677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_control 1
596777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
596877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
596977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
597077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
597177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayPowerStateEXT {
597277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
597377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
597477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_ON_EXT = 2,
597577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
597677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
597777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
597877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
597977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerStateEXT;
598077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
598177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDeviceEventTypeEXT {
598277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
598377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
598477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
598577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
598677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
598777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventTypeEXT;
598877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
598977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayEventTypeEXT {
599077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
599177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
599277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
599377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse 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),
599477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
599577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventTypeEXT;
599677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
599777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayPowerInfoEXT {
599877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType           sType;
599977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*               pNext;
600077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayPowerStateEXT    powerState;
600177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerInfoEXT;
600277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
600377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDeviceEventInfoEXT {
600477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType         sType;
600577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*             pNext;
600677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDeviceEventTypeEXT    deviceEvent;
600777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventInfoEXT;
600877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
600977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayEventInfoEXT {
601077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType          sType;
601177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*              pNext;
601277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayEventTypeEXT    displayEvent;
601377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventInfoEXT;
601477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
601577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSwapchainCounterCreateInfoEXT {
601677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
601777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
601877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT    surfaceCounters;
601977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSwapchainCounterCreateInfoEXT;
602077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
602177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
602277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
602377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
602477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
602577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
602677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
602777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
602877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
602977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
603077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
603177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
603277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
603377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
603477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
603577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
603677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
603777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
603877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
603977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
604077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
604177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
604277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
604377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
604477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
604577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
604677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
604777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
604877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSwapchainKHR                              swapchain,
604977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagBitsEXT                 counter,
605077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint64_t*                                   pCounterValue);
605177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
605277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
6053889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_display_timing 1
6054889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
6055889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
6056889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6057889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkRefreshCycleDurationGOOGLE {
6058889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    refreshDuration;
6059889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkRefreshCycleDurationGOOGLE;
6060889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6061889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPastPresentationTimingGOOGLE {
6062889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
6063889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
6064889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    actualPresentTime;
6065889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    earliestPresentTime;
6066889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    presentMargin;
6067889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPastPresentationTimingGOOGLE;
6068889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6069889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimeGOOGLE {
6070889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
6071889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
6072889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimeGOOGLE;
6073889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6074889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimesInfoGOOGLE {
6075889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkStructureType               sType;
6076889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const void*                   pNext;
6077889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t                      swapchainCount;
6078889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const VkPresentTimeGOOGLE*    pTimes;
6079889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimesInfoGOOGLE;
6080889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6081889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6082889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
6083889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
6084889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6085889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#ifndef VK_NO_PROTOTYPES
6086889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
6087889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
6088889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
6089889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
6090889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6091889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
6092889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
6093889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
6094889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t*                                   pPresentationTimingCount,
6095889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkPastPresentationTimingGOOGLE*             pPresentationTimings);
6096889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#endif
6097889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
6098ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_sample_mask_override_coverage 1
6099ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
6100ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
6101ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6102ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6103ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_geometry_shader_passthrough 1
6104ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
6105ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
6106ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6107ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6108ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_array2 1
6109ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
6110ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
6111ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6112ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6113ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_multiview_per_view_attributes 1
6114ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
6115ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
6116ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6117ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6118ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
6119ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
6120ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           perViewPositionAllComponents;
6121ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
6122ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6123ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6124ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6125ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_swizzle 1
6126ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
6127ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
6128ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6129ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6130ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkViewportCoordinateSwizzleNV {
6131ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
6132ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
6133ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
6134ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
6135ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
6136ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
6137ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
6138ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
6139ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
6140ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
6141ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
6142ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
6143ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportCoordinateSwizzleNV;
6144ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6145ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
6146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6147ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportSwizzleNV {
6148ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    x;
6149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    y;
6150ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    z;
6151ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    w;
6152ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportSwizzleNV;
6153ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6154ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
6155ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                sType;
6156ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                    pNext;
6157ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
6158ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                       viewportCount;
6159ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportSwizzleNV*                     pViewportSwizzles;
6160ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportSwizzleStateCreateInfoNV;
6161ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6162ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6163ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6164ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_discard_rectangles 1
6165ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
6166ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
6167ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6168ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6169ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDiscardRectangleModeEXT {
6170ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
6171ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
6172ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
6173ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
6174ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
6175ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
6176ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDiscardRectangleModeEXT;
6177ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6178ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
6179ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6180ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6181ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
6182f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    void*              pNext;
6183ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxDiscardRectangles;
6184ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
6185ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6186ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
6187ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                  sType;
6188ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                      pNext;
6189ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
6190ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDiscardRectangleModeEXT                        discardRectangleMode;
6191ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                         discardRectangleCount;
6192ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                                  pDiscardRectangles;
6193ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineDiscardRectangleStateCreateInfoEXT;
6194ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6195ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6196ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
6197ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6198ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
6199ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
6200ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
6201ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstDiscardRectangle,
6202ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    discardRectangleCount,
6203ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                             pDiscardRectangles);
6204ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
6205ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6206e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_swapchain_colorspace 1
6207edc88e78a30ca412a0a085a21f1fc1be7be5081fCourtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
6208e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
6209e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter
6210f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
6211d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_hdr_metadata 1
6212fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall#define VK_EXT_HDR_METADATA_SPEC_VERSION  1
6213d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
6214d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6215d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkXYColorEXT {
6216d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    x;
6217d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    y;
6218d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkXYColorEXT;
6219d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6220d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkHdrMetadataEXT {
6221d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkStructureType    sType;
6222d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const void*        pNext;
6223d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryRed;
6224d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryGreen;
6225d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryBlue;
6226d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       whitePoint;
6227d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxLuminance;
6228d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              minLuminance;
6229d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxContentLightLevel;
6230d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxFrameAverageLightLevel;
6231d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkHdrMetadataEXT;
6232d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6233d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6234d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
6235d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6236d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#ifndef VK_NO_PROTOTYPES
6237d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney GoeltzenleuchterVKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
6238d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkDevice                                    device,
6239d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    uint32_t                                    swapchainCount,
6240d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkSwapchainKHR*                       pSwapchains,
6241d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkHdrMetadataEXT*                     pMetadata);
6242d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#endif
6243d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
6244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_IOS_MVK
6245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_ios_surface 1
6246ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_SPEC_VERSION   2
6247ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
6248ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6249ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkIOSSurfaceCreateFlagsMVK;
6250ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6251ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkIOSSurfaceCreateInfoMVK {
6252ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
6253ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
6254ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkIOSSurfaceCreateFlagsMVK    flags;
6255ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pView;
6256ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkIOSSurfaceCreateInfoMVK;
6257ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6258ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6259ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
6260ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6261ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
6262ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
6263ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
6264ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkIOSSurfaceCreateInfoMVK*            pCreateInfo,
6265ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
6266ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
6267ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
6268ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_IOS_MVK */
6269ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6270ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_MACOS_MVK
6271ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_macos_surface 1
6272ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
6273ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
6274ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6275ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
6276ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6277ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMacOSSurfaceCreateInfoMVK {
6278ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                 sType;
6279ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pNext;
6280ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMacOSSurfaceCreateFlagsMVK    flags;
6281ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pView;
6282ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMacOSSurfaceCreateInfoMVK;
6283ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6284ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6285ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
6286ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
6287ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
6288ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
6289ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
6290ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkMacOSSurfaceCreateInfoMVK*          pCreateInfo,
6291ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
6292ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
6293ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
6294ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_MACOS_MVK */
6295ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
62967ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_sampler_filter_minmax 1
62977ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
62987ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
62997ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63007ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63017ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef enum VkSamplerReductionModeEXT {
63027ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
63037ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
63047ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
63057ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
63067ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT,
63077ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1),
63087ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
63097ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkSamplerReductionModeEXT;
63107ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63117ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkSamplerReductionModeCreateInfoEXT {
63127ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType              sType;
63137ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    const void*                  pNext;
63147ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkSamplerReductionModeEXT    reductionMode;
63157ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkSamplerReductionModeCreateInfoEXT;
63167ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63177ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
63187ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType    sType;
63197ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    void*              pNext;
63207ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           filterMinmaxSingleComponentFormats;
63217ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           filterMinmaxImageComponentMapping;
63227ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
63237ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63247ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63257ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63267ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_gpu_shader_int16 1
63277ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
63287ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
63297ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63307ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63317ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_blend_operation_advanced 1
63327ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
63337ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
63347ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63357ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63367ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef enum VkBlendOverlapEXT {
63377ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
63387ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
63397ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
63407ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
63417ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
63427ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
63437ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
63447ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkBlendOverlapEXT;
63457ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63467ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
63477ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType    sType;
63487ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    void*              pNext;
63497ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendCoherentOperations;
63507ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
63517ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63527ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
63537ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType    sType;
63547ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    void*              pNext;
63557ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    uint32_t           advancedBlendMaxColorAttachments;
63567ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendIndependentBlend;
63577ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendNonPremultipliedSrcColor;
63587ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendNonPremultipliedDstColor;
63597ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendCorrelatedOverlap;
63607ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32           advancedBlendAllOperations;
63617ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
63627ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63637ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
63647ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType      sType;
63657ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    const void*          pNext;
63667ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32             srcPremultiplied;
63677ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32             dstPremultiplied;
63687ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBlendOverlapEXT    blendOverlap;
63697ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
63707ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63717ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63727ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63737ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_fragment_coverage_to_color 1
63747ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
63757ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
63767ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63777ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
63787ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63797ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPipelineCoverageToColorStateCreateInfoNV {
63807ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType                                sType;
63817ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    const void*                                    pNext;
63827ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkPipelineCoverageToColorStateCreateFlagsNV    flags;
63837ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32                                       coverageToColorEnable;
63847ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    uint32_t                                       coverageToColorLocation;
63857ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPipelineCoverageToColorStateCreateInfoNV;
63867ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63877ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63887ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63897ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_framebuffer_mixed_samples 1
63907ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
63917ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
63927ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63937ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
63947ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef enum VkCoverageModulationModeNV {
63957ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
63967ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
63977ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
63987ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
63997ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
64007ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
64017ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
64027ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
64037ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkCoverageModulationModeNV;
64047ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64057ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
64067ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64077ba0ac79cde65898c97d93aaea17de8e833f522dJesse Halltypedef struct VkPipelineCoverageModulationStateCreateInfoNV {
64087ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkStructureType                                   sType;
64097ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    const void*                                       pNext;
64107ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkPipelineCoverageModulationStateCreateFlagsNV    flags;
64117ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkCoverageModulationModeNV                        coverageModulationMode;
64127ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    VkBool32                                          coverageModulationTableEnable;
64137ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    uint32_t                                          coverageModulationTableCount;
64147ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall    const float*                                      pCoverageModulationTable;
64157ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall} VkPipelineCoverageModulationStateCreateInfoNV;
64167ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64177ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64187ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64197ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_fill_rectangle 1
64207ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
64217ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
64227ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
64237ba0ac79cde65898c97d93aaea17de8e833f522dJesse Hall
642404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
642504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
642604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
642704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
642804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
6429