vulkan.h revision edc88e78a30ca412a0a085a21f1fc1be7be5081f
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
4605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_HEADER_VERSION 49
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,
149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX = -1000072003,
15056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
15104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
15256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
15304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
15404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
15504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStructureType {
15704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
158c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
159c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
160c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
161c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
162f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
163c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
165c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
1675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
169c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
170c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
171c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
172c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
173c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
1743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1803e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1813e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1853e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1873e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
191f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
1923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
197f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
1983dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
2003dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
2013dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
2023dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
2033dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
2043dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
2053dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
206bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
207bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
208bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
209bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
210bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
211f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
212f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
213f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
214f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
215f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
216f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
2172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
2182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
2192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
2202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
2212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
22256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
22356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
22456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
225ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000,
226ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001,
227ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002,
228289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
229289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
230289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
231289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
232289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
2331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
2341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
2351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
2361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
2371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
2381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
2391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
2401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
2411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
242ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
243ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001,
244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002,
245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
246ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
247ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
248ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
249ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
250ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
251ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
252ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
253ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
254ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
255289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
25677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
257ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
258ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
259ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHX = 1000071000,
260ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHX = 1000071001,
261ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHX = 1000071002,
262ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHX = 1000071003,
263ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHX = 1000071004,
264ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHX = 1000072000,
265ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHX = 1000072001,
266ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHX = 1000072002,
267ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073000,
268ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073001,
269ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHX = 1000073002,
270ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHX = 1000074000,
271ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHX = 1000074001,
272ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHX = 1000075000,
273ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHX = 1000076000,
274ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHX = 1000076001,
275ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHX = 1000077000,
276ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078000,
277ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078001,
278ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002,
279ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000,
280ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
281889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
282ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
289ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
29077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
29177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
29277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
29377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
29477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
29514866bbeca1ebcda93f43a3352934889a9f37c2bIan Elliott    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
296ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
297ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
298ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
299ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
300fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall    VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
301e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
302e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
303e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
304e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes    VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
305ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
306ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
30704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
308f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
309f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
31104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
31204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3133e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSystemAllocationScope {
3143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
3153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
3163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
3173fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
3183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
3193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
3203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
3213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
3223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
3233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkSystemAllocationScope;
32403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
3253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkInternalAllocationType {
3263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
3273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3283fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
3293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
3303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
3313fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkInternalAllocationType;
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormat {
33404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
335f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
336f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
337f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
338f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
339f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
340f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
341f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
342f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
36204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
364f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UNORM = 30,
365f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SNORM = 31,
366f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_USCALED = 32,
367f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 33,
368f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_UINT = 34,
369f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SINT = 35,
370f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8_SRGB = 36,
371f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 37,
372f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 38,
373f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 39,
374f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 40,
375f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 41,
376f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 42,
377f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 43,
378f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 44,
379f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 45,
380f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 46,
381f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 47,
382f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 48,
383f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 49,
384f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 50,
385f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
386f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
387f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
388f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
389f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
390f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
391f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
392f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
393f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
394f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
395f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
396f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
397f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
398f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
399f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
400f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
401f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
402f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
403f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
404f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UNORM = 70,
405f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SNORM = 71,
406f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_USCALED = 72,
407f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SSCALED = 73,
408f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_UINT = 74,
409f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SINT = 75,
410f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16_SFLOAT = 76,
411f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UNORM = 77,
412f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SNORM = 78,
413f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_USCALED = 79,
414f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SSCALED = 80,
415f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_UINT = 81,
416f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SINT = 82,
417f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16_SFLOAT = 83,
418f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UNORM = 84,
419f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SNORM = 85,
420f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_USCALED = 86,
421f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 87,
422f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_UINT = 88,
423f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SINT = 89,
424f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 90,
425f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 91,
426f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 92,
427f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 93,
428f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 94,
429f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 95,
430f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 96,
431f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
432f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_UINT = 98,
433f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SINT = 99,
434f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32_SFLOAT = 100,
435f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_UINT = 101,
436f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SINT = 102,
437f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32_SFLOAT = 103,
438f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_UINT = 104,
439f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SINT = 105,
440f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 106,
441f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 107,
442f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 108,
443f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
444f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_UINT = 110,
445f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SINT = 111,
446f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64_SFLOAT = 112,
447f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_UINT = 113,
448f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SINT = 114,
449f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64_SFLOAT = 115,
450f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_UINT = 116,
451f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SINT = 117,
452f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 118,
453f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_UINT = 119,
454f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SINT = 120,
455f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
456f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
457f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
458f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM = 124,
459f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
460f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT = 126,
461f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_S8_UINT = 127,
462f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 128,
463f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 129,
464f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
465f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
466f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
467f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
468f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
469f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_UNORM_BLOCK = 135,
470f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC2_SRGB_BLOCK = 136,
471f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_UNORM_BLOCK = 137,
472f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC3_SRGB_BLOCK = 138,
473f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_UNORM_BLOCK = 139,
474f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC4_SNORM_BLOCK = 140,
475f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_UNORM_BLOCK = 141,
476f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC5_SNORM_BLOCK = 142,
477f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
478f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
479f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_UNORM_BLOCK = 145,
480f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_BC7_SRGB_BLOCK = 146,
481f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
482f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
483f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
484f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
485f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
486f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
487f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
488f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
489f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
490f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
491f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
492f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
493f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
494f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
495f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
496f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
497f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
498f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
499f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
500f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
501f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
502f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
503f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
504f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
505f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
506f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
507f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
508f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
509f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
510f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
511f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
512f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
513f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
514f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
515f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
516f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
517f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
518f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
519289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
520289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
521289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
522289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
523289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
524289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
525289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
526289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
52704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
528f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
529f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
53004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
53104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageType {
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
53704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
5393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageTiling {
544c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 0,
545c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_LINEAR = 1,
546c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
547c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
5483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPhysicalDeviceType {
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
55504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
55804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
5603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryType {
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
567a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_TIMESTAMP = 2,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
569a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
5703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
57204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSharingMode {
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
5793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageLayout {
5845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
5855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
5865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
5875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
5885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
5895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
5903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
5913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
5925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
593bd88884111a3ef38322741c15de9bd215f7a7eb9Jesse Hall    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
594af3a1117ffa206a6e3143edf32c494b64e39f303Chris Forbes    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
5955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
5965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
5973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
5985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
5995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageViewType {
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
6113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkComponentSwizzle {
61665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
61765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ZERO = 1,
61865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_ONE = 2,
61965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_R = 3,
62065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_G = 4,
62165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_B = 5,
62265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_A = 6,
62365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
62465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
62565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
62665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
62765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentSwizzle;
62804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkVertexInputRate {
63065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_VERTEX = 0,
63165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
63265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
63365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
63465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
63565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
63665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkVertexInputRate;
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPrimitiveTopology {
63904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
64004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
64304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
64404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
6453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
6463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
6473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
6483fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
649091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
65004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
651091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
652091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
65304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
65404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
65504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPolygonMode {
65765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_FILL = 0,
65865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_LINE = 1,
65965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_POINT = 2,
66065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
66165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
66265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
66365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
66465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkPolygonMode;
66504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFrontFace {
6673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
6683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_CLOCKWISE = 1,
6693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
6703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
6713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompareOp {
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
67704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
6793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
68004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
68104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
6823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
68504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
6863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
68704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
68804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
68904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilOp {
69104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
69204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
69304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
6943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
6953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
6973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
6983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
7003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
7013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkLogicOp {
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
70904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
7113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_NO_OP = 5,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
7153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_EQUIVALENT = 9,
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
72004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
72204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
7243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
72704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendFactor {
72965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ZERO = 0,
73065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE = 1,
73165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_COLOR = 2,
73265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
73365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_COLOR = 4,
73465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
73565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA = 6,
73665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
73765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_DST_ALPHA = 8,
73865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
73965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
74065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
74165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
74265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
74365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
74465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_COLOR = 15,
74565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
74665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
74765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
74865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
74965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
75065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
75165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
75265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkBlendFactor;
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBlendOp {
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
7623fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDynamicState {
7675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
7685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
7695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
7705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
7715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
7725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
7735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
7745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
7755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
776ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
777ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
7785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
7795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
7803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
7815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
7825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
7835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
7843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFilter {
78523ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_NEAREST = 0,
78623ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_LINEAR = 1,
7872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FILTER_CUBIC_IMG = 1000015000,
78823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
78923ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
7903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
79123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
79223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkFilter;
79304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
7943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerMipmapMode {
7953dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
7963dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
7973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
79823ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
7993dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
80023ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
80123ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerMipmapMode;
80204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSamplerAddressMode {
804c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
805c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
806c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
807c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
808c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
809c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
8102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
8112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
81223ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
81323ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall} VkSamplerAddressMode;
81404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBorderColor {
81604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
81704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
82204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
8243fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
82504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
82604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorType {
82904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
83004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
83104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
83204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
83304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
83404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
83504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
83804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
83904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
84004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
8423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentLoadOp {
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
8523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
85404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
85504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentStoreOp {
85704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
85804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
85904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
86004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
8613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
86304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineBindPoint {
866c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
867c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
868c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
869c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
8703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
87204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferLevel {
8753fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
8763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
8773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
8783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
8793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
8803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
8813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferLevel;
88204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkIndexType {
88404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
88504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
88604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
88704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
8883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
88904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
8923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSubpassContents {
89365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_INLINE = 0,
89465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
89565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
89665ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
89765ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
89865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
89965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkSubpassContents;
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef enum VkObjectType {
90205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_UNKNOWN = 0,
90305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_INSTANCE = 1,
90405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
90505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEVICE = 3,
90605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_QUEUE = 4,
90705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SEMAPHORE = 5,
90805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
90905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_FENCE = 7,
91005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
91105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BUFFER = 9,
91205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_IMAGE = 10,
91305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_EVENT = 11,
91405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_QUERY_POOL = 12,
91505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
91605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
91705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SHADER_MODULE = 15,
91805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
91905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
92005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_RENDER_PASS = 18,
92105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_PIPELINE = 19,
92205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
92305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SAMPLER = 21,
92405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
92505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
92605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
92705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_COMMAND_POOL = 25,
92805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
92905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
93005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
93105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
93205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
93305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
93405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
93505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
93605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
93705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
93805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
93905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
94005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkObjectType;
94105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
942a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkInstanceCreateFlags;
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFormatFeatureFlagBits {
94504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
94604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
94704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
94804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
95004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
95104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
95204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
95304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
95404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
9553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
9563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
95733faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
9582676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
95977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
96077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
9612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
96204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
96304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
96404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageUsageFlagBits {
9663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
9673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
96904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
97004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
9715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
9742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageCreateFlagBits {
9795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
9805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
9815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
9825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
9835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
984ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
98577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
9862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
9875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
9885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
9895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
9903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSampleCountFlagBits {
9915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
9925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
9935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
9945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
9955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
9965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
9975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
9982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
9995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
10005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
10015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueueFlagBits {
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
100565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_QUEUE_TRANSFER_BIT = 0x00000004,
1006b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
10072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
100804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
100904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryPropertyFlagBits {
1012d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
1013d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
1014d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
1015d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
1016d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
10172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkMemoryHeapFlagBits {
1022d1af812f20e0793d94702817d441ab799bf46df7Jesse Hall    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
1023ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
10242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
1027a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceCreateFlags;
1028a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDeviceQueueCreateFlags;
1029543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall
1030543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef enum VkPipelineStageFlagBits {
1031543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
1032543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
1033543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
1034543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
1035543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
1036543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1037543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
1038543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
1039543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
1040543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1041543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1042543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1043543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1044543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1045543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1046543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1047543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1048289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
10492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1050543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall} VkPipelineStageFlagBits;
1051543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Halltypedef VkFlags VkPipelineStageFlags;
105204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
105304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10543e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkImageAspectFlagBits {
1055a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1056a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1057a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1058a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
10592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1060a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
10613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkImageAspectFlags;
1062a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
10633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSparseImageFormatFlagBits {
1064b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1065b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1066b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
10672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
106804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
106904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
1070091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall
1071091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Halltypedef enum VkSparseMemoryBindFlagBits {
1072091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
10732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1074091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall} VkSparseMemoryBindFlagBits;
107504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
107604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkFenceCreateFlagBits {
107804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
10792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
108004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
108104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
108204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
108304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
1084a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkQueryPoolCreateFlags;
108504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryPipelineStatisticFlagBits {
1087ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1088ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1089ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1090ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1091ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1092ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1093ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1094ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1095ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1096ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1097ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
10982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
110004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
110104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkQueryResultFlagBits {
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
110404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
110504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
110604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
11072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
110804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
110904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
111004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferCreateFlagBits {
1112a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1113a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1114a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
11152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1116a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBufferCreateFlagBits;
1117a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferCreateFlags;
1118a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
11193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkBufferUsageFlagBits {
11203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
11213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
112204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
112704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
112804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
11292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
1132a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkBufferViewCreateFlags;
11335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
11353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCacheCreateFlags;
113604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPipelineCreateFlagBits {
11383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
11393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
11403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1141ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
1142ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
11432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkPipelineCreateFlagBits;
11453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineCreateFlags;
11463e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkPipelineShaderStageCreateFlags;
11473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
11483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkShaderStageFlagBits {
1149a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1150a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1151a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1152a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1153a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1154a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
11552676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1156a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
11572676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1158a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
1159a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1160a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
11613dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkFlags VkPipelineTessellationStateCreateFlags;
1162a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineViewportStateCreateFlags;
11633fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1164c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall
11653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCullModeFlagBits {
1166c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_NONE = 0,
1167c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1168c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall    VK_CULL_MODE_BACK_BIT = 0x00000002,
11692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
11702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1171c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Hall} VkCullModeFlagBits;
1172c7467b74d3411eb7b9fde67368fad1052eb51c8dJesse Halltypedef VkFlags VkCullModeFlags;
1173a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1174a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1175a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineColorBlendStateCreateFlags;
1176a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
11773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorComponentFlagBits {
117865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
117965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
118065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
118165ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
11822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
118365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkColorComponentFlagBits;
118465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Halltypedef VkFlags VkColorComponentFlags;
1185a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineDynamicStateCreateFlags;
1186a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkPipelineLayoutCreateFlags;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
1188a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkSamplerCreateFlags;
1189ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1190ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorSetLayoutCreateFlagBits {
1191ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1192ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1193ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorSetLayoutCreateFlagBits;
1194a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkDescriptorSetLayoutCreateFlags;
119504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
11963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDescriptorPoolCreateFlagBits {
1197fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
11982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1199fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
1200fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
1201fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
1202a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkFramebufferCreateFlags;
1203a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkRenderPassCreateFlags;
1204fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
12053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAttachmentDescriptionFlagBits {
12065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
12072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
12095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
1210ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
1211ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSubpassDescriptionFlagBits {
1212ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1213ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1214ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1215ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSubpassDescriptionFlagBits;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkAccessFlagBits {
12193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
12203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
12213e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
12223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
12233e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
12243e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
12253e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
12263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
12273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
12283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
12293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
12303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
12313e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
12323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_READ_BIT = 0x00002000,
12333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
12343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
12353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1236289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1237289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
12382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall} VkAccessFlagBits;
12403e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef VkFlags VkAccessFlags;
12413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall
12423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDependencyFlagBits {
1243dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
1245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
12462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1247dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall} VkDependencyFlagBits;
1248dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Halltypedef VkFlags VkDependencyFlags;
1249dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall
12503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolCreateFlagBits {
12513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
12523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
12532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateFlagBits;
12553fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolCreateFlags;
125604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12573e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandPoolResetFlagBits {
12583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
12592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolResetFlagBits;
12613fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandPoolResetFlags;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12633e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferUsageFlagBits {
12643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
12653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
12663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
12672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferUsageFlagBits;
12693fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferUsageFlags;
127004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1271f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef enum VkQueryControlFlagBits {
1272f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
12732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1274f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall} VkQueryControlFlagBits;
1275f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkQueryControlFlags;
1276f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
12773e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCommandBufferResetFlagBits {
12783fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
12792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferResetFlagBits;
12813fbc856120217247c72fb5ed88500000f3881c45Jesse Halltypedef VkFlags VkCommandBufferResetFlags;
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
12833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkStencilFaceFlagBits {
12845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
12855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
12862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
12872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
12885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
12895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1291e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
12923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
12943e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
12953e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
129603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1297e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
12983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
12993e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pOriginal,
13003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      alignment,
13023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1304e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
13053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pMemory);
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1308e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
13093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
13123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
131303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1314e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
13153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    void*                                       pUserData,
13163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    size_t                                      size,
13173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkInternalAllocationType                    allocationType,
13183e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall    VkSystemAllocationScope                     allocationScope);
131903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
1320e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
13215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkApplicationInfo {
1323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1324563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1325563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pApplicationName;
1326563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           applicationVersion;
1327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*        pEngineName;
1328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           engineVersion;
1329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           apiVersion;
13305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
13315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkInstanceCreateInfo {
1333563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1334563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkInstanceCreateFlags       flags;
1336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkApplicationInfo*    pApplicationInfo;
1337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledLayerCount;
1338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledLayerNames;
1339563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    enabledExtensionCount;
1340563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*          ppEnabledExtensionNames;
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
13433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAllocationCallbacks {
1344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    void*                                   pUserData;
1345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkAllocationFunction                pfnAllocation;
1346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkReallocationFunction              pfnReallocation;
1347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkFreeFunction                      pfnFree;
1348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
1349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    PFN_vkInternalFreeNotification          pfnInternalFree;
13503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkAllocationCallbacks;
135103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall
13523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceFeatures {
1353563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    robustBufferAccess;
1354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fullDrawIndexUint32;
1355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    imageCubeArray;
1356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    independentBlend;
1357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    geometryShader;
1358563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    tessellationShader;
1359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sampleRateShading;
1360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    dualSrcBlend;
1361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    logicOp;
1362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiDrawIndirect;
1363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    drawIndirectFirstInstance;
1364563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthClamp;
1365563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBiasClamp;
1366563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fillModeNonSolid;
1367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    depthBounds;
1368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    wideLines;
1369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    largePoints;
1370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    alphaToOne;
1371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    multiViewport;
1372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    samplerAnisotropy;
1373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionETC2;
1374563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionASTC_LDR;
1375563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    textureCompressionBC;
1376563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    occlusionQueryPrecise;
1377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    pipelineStatisticsQuery;
1378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    vertexPipelineStoresAndAtomics;
1379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    fragmentStoresAndAtomics;
1380563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderTessellationAndGeometryPointSize;
1381563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderImageGatherExtended;
1382563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageExtendedFormats;
1383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageMultisample;
1384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageReadWithoutFormat;
1385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageWriteWithoutFormat;
1386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderUniformBufferArrayDynamicIndexing;
1387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderSampledImageArrayDynamicIndexing;
1388563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageBufferArrayDynamicIndexing;
1389563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderStorageImageArrayDynamicIndexing;
1390563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderClipDistance;
1391563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderCullDistance;
1392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderFloat64;
1393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt64;
1394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderInt16;
1395563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceResidency;
1396563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    shaderResourceMinLod;
1397563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseBinding;
1398563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyBuffer;
1399563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage2D;
1400563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyImage3D;
1401563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency2Samples;
1402563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency4Samples;
1403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency8Samples;
1404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidency16Samples;
1405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    sparseResidencyAliased;
1406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    variableMultisampleRate;
1407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    inheritedQueries;
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFormatProperties {
1411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    linearTilingFeatures;
1412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    optimalTilingFeatures;
1413563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormatFeatureFlags    bufferFeatures;
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent3D {
1417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1418563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
1419563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    depth;
14205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
14215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
14223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageFormatProperties {
1423563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D            maxExtent;
1424563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMipLevels;
1425563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxArrayLayers;
1426563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampleCounts;
1427563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          maxResourceSize;
142804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
142904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14303e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceLimits {
1431563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension1D;
1432563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension2D;
1433563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimension3D;
1434563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageDimensionCube;
1435563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxImageArrayLayers;
1436563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelBufferElements;
1437563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxUniformBufferRange;
1438563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxStorageBufferRange;
1439563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPushConstantsSize;
1440563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxMemoryAllocationCount;
1441563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSamplerAllocationCount;
1442563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          bufferImageGranularity;
1443563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          sparseAddressSpaceSize;
1444563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxBoundDescriptorSets;
1445563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSamplers;
1446563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorUniformBuffers;
1447563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageBuffers;
1448563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorSampledImages;
1449563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorStorageImages;
1450563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageDescriptorInputAttachments;
1451563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxPerStageResources;
1452563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSamplers;
1453563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffers;
1454563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetUniformBuffersDynamic;
1455563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffers;
1456563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageBuffersDynamic;
1457563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetSampledImages;
1458563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetStorageImages;
1459563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDescriptorSetInputAttachments;
1460563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributes;
1461563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindings;
1462563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputAttributeOffset;
1463563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexInputBindingStride;
1464563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxVertexOutputComponents;
1465563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationGenerationLevel;
1466563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationPatchSize;
1467563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexInputComponents;
1468563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerVertexOutputComponents;
1469563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlPerPatchOutputComponents;
1470563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationControlTotalOutputComponents;
1471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationInputComponents;
1472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTessellationEvaluationOutputComponents;
1473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryShaderInvocations;
1474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryInputComponents;
1475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputComponents;
1476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryOutputVertices;
1477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxGeometryTotalOutputComponents;
1478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentInputComponents;
1479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentOutputAttachments;
1480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentDualSrcAttachments;
1481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFragmentCombinedOutputResources;
1482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeSharedMemorySize;
1483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupCount[3];
1484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupInvocations;
1485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxComputeWorkGroupSize[3];
1486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelPrecisionBits;
1487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subTexelPrecisionBits;
1488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipmapPrecisionBits;
1489563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndexedIndexValue;
1490563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxDrawIndirectCount;
1491563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerLodBias;
1492563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxSamplerAnisotropy;
1493563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewports;
1494563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxViewportDimensions[2];
1495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 viewportBoundsRange[2];
1496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              viewportSubPixelBits;
1497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                minMemoryMapAlignment;
1498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minTexelBufferOffsetAlignment;
1499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minUniformBufferOffsetAlignment;
1500563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          minStorageBufferOffsetAlignment;
1501563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelOffset;
1502563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelOffset;
1503563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t               minTexelGatherOffset;
1504563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxTexelGatherOffset;
1505563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 minInterpolationOffset;
1506563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 maxInterpolationOffset;
1507563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              subPixelInterpolationOffsetBits;
1508563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferWidth;
1509563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferHeight;
1510563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxFramebufferLayers;
1511563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferColorSampleCounts;
1512563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferDepthSampleCounts;
1513563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferStencilSampleCounts;
1514563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
1515563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxColorAttachments;
1516563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageColorSampleCounts;
1517563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageIntegerSampleCounts;
1518563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageDepthSampleCounts;
1519563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    sampledImageStencilSampleCounts;
1520563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlags    storageImageSampleCounts;
1521563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxSampleMaskWords;
1522563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              timestampComputeAndGraphics;
1523563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 timestampPeriod;
1524563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxClipDistances;
1525563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCullDistances;
1526563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              maxCombinedClipAndCullDistances;
1527563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              discreteQueuePriorities;
1528563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeRange[2];
1529563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthRange[2];
1530563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 pointSizeGranularity;
1531563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                 lineWidthGranularity;
1532563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              strictLines;
1533563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32              standardSampleLocations;
1534563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyOffsetAlignment;
1535563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
1536563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize          nonCoherentAtomSize;
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceSparseProperties {
1540563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DBlockShape;
1541563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard2DMultisampleBlockShape;
1542563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyStandard3DBlockShape;
1543563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyAlignedMipSize;
1544563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32    residencyNonResidentStrict;
15455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
15465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
15473e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceProperties {
1548563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            apiVersion;
1549563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            driverVersion;
1550563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            vendorID;
1551563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                            deviceID;
1552563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceType                deviceType;
1553563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1554563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
1555563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceLimits              limits;
1556563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPhysicalDeviceSparseProperties    sparseProperties;
155704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueueFamilyProperties {
1560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueueFlags    queueFlags;
1561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        queueCount;
1562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        timestampValidBits;
1563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D      minImageTransferGranularity;
15645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryType {
1567563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryPropertyFlags    propertyFlags;
1568563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 heapIndex;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryHeap {
1572563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize         size;
1573563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeapFlags    flags;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPhysicalDeviceMemoryProperties {
1577563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeCount;
1578563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
1579563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryHeapCount;
1580563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15833e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceQueueCreateInfo {
1584563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
1585563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
1586563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceQueueCreateFlags    flags;
1587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
1588563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueCount;
1589563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const float*                pQueuePriorities;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
15923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDeviceCreateInfo {
1593563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
1594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
1595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceCreateFlags                flags;
1596563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           queueCreateInfoCount;
1597563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
1598563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledLayerCount;
1599563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledLayerNames;
1600563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           enabledExtensionCount;
1601563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char* const*                 ppEnabledExtensionNames;
1602563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
160404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtensionProperties {
1606563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1607563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
160804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
160904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkLayerProperties {
1611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
1612563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    specVersion;
1613563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    implementationVersion;
1614563380d389732337a84e7455caa01ec955ebee30Jesse Hall    char        description[VK_MAX_DESCRIPTION_SIZE];
161504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
161604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubmitInfo {
1618563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
1619563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
1620563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       waitSemaphoreCount;
1621563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pWaitSemaphores;
1622563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineStageFlags*    pWaitDstStageMask;
1623563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       commandBufferCount;
1624563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBuffer*         pCommandBuffers;
1625563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       signalSemaphoreCount;
1626563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*             pSignalSemaphores;
1627a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1628a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
16293e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryAllocateInfo {
1630563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1631563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1632563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       allocationSize;
1633563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           memoryTypeIndex;
16343fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkMemoryAllocateInfo;
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16363e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMappedMemoryRange {
1637563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
1638563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
1639563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory     memory;
1640563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
1641563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkMemoryRequirements {
1645563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1646563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    alignment;
1647563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        memoryTypeBits;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16503e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageFormatProperties {
1651563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags          aspectMask;
1652563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageGranularity;
1653563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatFlags    flags;
165404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
165504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16563e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryRequirements {
1657563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseImageFormatProperties    formatProperties;
1658563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageMipTailFirstLod;
1659563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailSize;
1660563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailOffset;
1661563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                     imageMipTailStride;
166204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
166304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseMemoryBind {
1665563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               resourceOffset;
1666563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               size;
1667563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1668563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1669563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1670a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseMemoryBind;
1671a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseBufferMemoryBindInfo {
1673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                     buffer;
1674563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1675563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1676a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseBufferMemoryBindInfo;
1677a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
16783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageOpaqueMemoryBindInfo {
1679563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                      image;
1680563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                     bindCount;
1681563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseMemoryBind*    pBinds;
1682a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageOpaqueMemoryBindInfo;
168304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16843e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresource {
1685563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1686563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
1687563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              arrayLayer;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset3D {
1691563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1692563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
1693563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    z;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
169504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBind {
1697563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresource         subresource;
1698563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                 offset;
1699563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                 extent;
1700563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceMemory             memory;
1701563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               memoryOffset;
1702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSparseMemoryBindFlags    flags;
1703a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkSparseImageMemoryBind;
1704a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
17053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSparseImageMemoryBindInfo {
1706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                           image;
1707563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          bindCount;
1708563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSparseImageMemoryBind*    pBinds;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
171004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17113e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBindSparseInfo {
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1714a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    waitSemaphoreCount;
1715a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1716a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    bufferBindCount;
1717a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
1718a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageOpaqueBindCount;
1719a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
1720a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    imageBindCount;
1721a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSparseImageMemoryBindInfo*          pImageBinds;
1722a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    signalSemaphoreCount;
1723a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1724a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkBindSparseInfo;
1725a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
17263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFenceCreateInfo {
1727563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1728563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1729563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFenceCreateFlags    flags;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17323e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSemaphoreCreateInfo {
1733563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType           sType;
1734563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*               pNext;
1735563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSemaphoreCreateFlags    flags;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
173704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkEventCreateInfo {
1739563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType       sType;
1740563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*           pNext;
1741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkEventCreateFlags    flags;
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17443e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkQueryPoolCreateInfo {
1745563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
1746563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
1747563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPoolCreateFlags           flags;
1748563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryType                      queryType;
1749563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queryCount;
1750563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCreateInfo {
1754563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
1755563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
1756563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferCreateFlags    flags;
1757563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize           size;
1758563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferUsageFlags     usage;
1759563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode          sharingMode;
1760563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               queueFamilyIndexCount;
1761563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*        pQueueFamilyIndices;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferViewCreateInfo {
1765563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1766563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1767563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBufferViewCreateFlags    flags;
1768563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer                   buffer;
1769563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1770563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               offset;
1771563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize               range;
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCreateInfo {
1775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
1776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
1777563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageCreateFlags       flags;
1778563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageType              imageType;
1779563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                 format;
1780563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D               extent;
1781563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 mipLevels;
1782563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 arrayLayers;
1783563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits    samples;
1784563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageTiling            tiling;
1785563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags        usage;
1786563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode            sharingMode;
1787563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 queueFamilyIndexCount;
1788563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pQueueFamilyIndices;
1789563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout            initialLayout;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17923e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubresourceLayout {
1793563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
1794563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
1795563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    rowPitch;
1796563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    arrayPitch;
1797563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    depthPitch;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18003e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComponentMapping {
1801563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    r;
1802563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    g;
1803563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    b;
1804563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentSwizzle    a;
180565ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkComponentMapping;
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18073e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceRange {
1808563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
1809563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseMipLevel;
1810563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              levelCount;
1811563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
1812563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
181304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageViewCreateInfo {
1816563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
1817563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
1818563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewCreateFlags     flags;
1819563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
1820563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageViewType            viewType;
1821563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                   format;
1822563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkComponentMapping         components;
1823563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
182404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
182504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkShaderModuleCreateInfo {
1827563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType              sType;
1828563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                  pNext;
1829563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModuleCreateFlags    flags;
1830563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                       codeSize;
1831563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*              pCode;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18343e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineCacheCreateInfo {
1835563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
1836563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
1837563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCacheCreateFlags    flags;
1838563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                        initialDataSize;
1839563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pInitialData;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationMapEntry {
1843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    constantID;
1844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
1845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t      size;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSpecializationInfo {
1849563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                           mapEntryCount;
1850563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationMapEntry*    pMapEntries;
1851563380d389732337a84e7455caa01ec955ebee30Jesse Hall    size_t                             dataSize;
1852563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pData;
185304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18553e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineShaderStageCreateInfo {
1856563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                     sType;
1857563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                         pNext;
1858563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateFlags    flags;
1859563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlagBits               stage;
1860563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderModule                      module;
1861563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                         pName;
1862563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSpecializationInfo*         pSpecializationInfo;
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputBindingDescription {
1866563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             binding;
1867563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t             stride;
1868563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkVertexInputRate    inputRate;
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18713e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkVertexInputAttributeDescription {
1872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    location;
1873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    binding;
1874563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat    format;
1875563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    offset;
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
187704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18783e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineVertexInputStateCreateInfo {
187904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
188004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1881a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPipelineVertexInputStateCreateFlags       flags;
188203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexBindingDescriptionCount;
188304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
188403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    vertexAttributeDescriptionCount;
188504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
188704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineInputAssemblyStateCreateInfo {
1889563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1890563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1891563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineInputAssemblyStateCreateFlags    flags;
1892563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPrimitiveTopology                        topology;
1893563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   primitiveRestartEnable;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
189504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
18963e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineTessellationStateCreateInfo {
1897563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1898563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1899563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineTessellationStateCreateFlags    flags;
1900563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                  patchControlPoints;
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkViewport {
1904563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    x;
1905563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    y;
1906563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    width;
1907563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    height;
1908563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    minDepth;
1909563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float    maxDepth;
19105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
19115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkOffset2D {
1913563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    x;
1914563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t    y;
19155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
19165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19173e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkExtent2D {
1918563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    width;
1919563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    height;
19205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
19215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19223e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRect2D {
1923563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D    offset;
1924563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    extent;
19255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
19265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineViewportStateCreateInfo {
1928563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                       sType;
1929563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                           pNext;
1930563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineViewportStateCreateFlags    flags;
1931563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              viewportCount;
1932563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkViewport*                     pViewports;
1933563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                              scissorCount;
1934563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkRect2D*                       pScissors;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19373e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineRasterizationStateCreateInfo {
1938563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                            sType;
1939563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                pNext;
1940563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineRasterizationStateCreateFlags    flags;
1941563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthClampEnable;
1942563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   rasterizerDiscardEnable;
1943563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPolygonMode                              polygonMode;
1944563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCullModeFlags                            cullMode;
1945563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFrontFace                                frontFace;
1946563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                   depthBiasEnable;
1947563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasConstantFactor;
1948563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasClamp;
1949563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      depthBiasSlopeFactor;
1950563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                      lineWidth;
19513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkPipelineRasterizationStateCreateInfo;
195204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19533e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineMultisampleStateCreateInfo {
1954563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
1955563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
1956563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineMultisampleStateCreateFlags    flags;
1957563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits                    rasterizationSamples;
1958563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 sampleShadingEnable;
1959563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                    minSampleShading;
1960563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampleMask*                      pSampleMask;
1961563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToCoverageEnable;
1962563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                 alphaToOneEnable;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkStencilOpState {
1966563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    failOp;
1967563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    passOp;
1968563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOp    depthFailOp;
1969563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp    compareOp;
1970563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       compareMask;
1971563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       writeMask;
1972563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t       reference;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19753e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDepthStencilStateCreateInfo {
1976563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                           sType;
1977563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                               pNext;
1978563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDepthStencilStateCreateFlags    flags;
1979563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthTestEnable;
1980563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthWriteEnable;
1981563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp                               depthCompareOp;
1982563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  depthBoundsTestEnable;
1983563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                  stencilTestEnable;
1984563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          front;
1985563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStencilOpState                          back;
1986563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     minDepthBounds;
1987563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                     maxDepthBounds;
198804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
198904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendAttachmentState {
1991563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                 blendEnable;
1992563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcColorBlendFactor;
1993563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstColorBlendFactor;
1994563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                colorBlendOp;
1995563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            srcAlphaBlendFactor;
1996563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendFactor            dstAlphaBlendFactor;
1997563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBlendOp                alphaBlendOp;
1998563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorComponentFlags    colorWriteMask;
199904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
200004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20013e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineColorBlendStateCreateInfo {
2002563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                               sType;
2003563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                   pNext;
2004563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineColorBlendStateCreateFlags          flags;
2005563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                                      logicOpEnable;
2006563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkLogicOp                                     logicOp;
2007563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                      attachmentCount;
2008563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendAttachmentState*    pAttachments;
2009563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                                         blendConstants[4];
201004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
201104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20123e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineDynamicStateCreateInfo {
2013563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                      sType;
2014563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                          pNext;
2015563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineDynamicStateCreateFlags    flags;
2016563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                             dynamicStateCount;
2017563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDynamicState*                pDynamicStates;
20185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
20195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
20203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkGraphicsPipelineCreateInfo {
2021563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                                  sType;
2022563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                                      pNext;
2023563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags                            flags;
2024563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         stageCount;
2025563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineShaderStageCreateInfo*           pStages;
2026563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
2027563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
2028563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
2029563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineViewportStateCreateInfo*         pViewportState;
2030563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
2031563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
2032563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
2033563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
2034563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
2035563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                                 layout;
2036563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                                     renderPass;
2037563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                                         subpass;
2038563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                                       basePipelineHandle;
2039563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                                          basePipelineIndex;
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20423e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkComputePipelineCreateInfo {
2043563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                    sType;
2044563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                        pNext;
2045563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineCreateFlags              flags;
2046563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineShaderStageCreateInfo    stage;
2047563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayout                   layout;
2048563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipeline                         basePipelineHandle;
2049563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t                            basePipelineIndex;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPushConstantRange {
2053563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2054563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              offset;
2055563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              size;
205604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
205704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20583e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPipelineLayoutCreateInfo {
2059563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2060563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2061563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineLayoutCreateFlags     flags;
2062563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        setLayoutCount;
2063563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
2064563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        pushConstantRangeCount;
2065563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkPushConstantRange*      pPushConstantRanges;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20683e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSamplerCreateInfo {
2069563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2070563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2071563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerCreateFlags    flags;
2072563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                magFilter;
2073563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFilter                minFilter;
2074563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerMipmapMode     mipmapMode;
2075563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeU;
2076563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeV;
2077563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSamplerAddressMode    addressModeW;
2078563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   mipLodBias;
2079563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                anisotropyEnable;
2080563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxAnisotropy;
2081563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                compareEnable;
2082563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompareOp             compareOp;
2083563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   minLod;
2084563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                   maxLod;
2085563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBorderColor           borderColor;
2086563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                unnormalizedCoordinates;
208704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
208804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutBinding {
2090563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              binding;
2091563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType      descriptorType;
2092563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              descriptorCount;
2093563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkShaderStageFlags    stageFlags;
2094563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSampler*      pImmutableSamplers;
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20973e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetLayoutCreateInfo {
2098563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                        sType;
2099563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                            pNext;
2100563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSetLayoutCreateFlags       flags;
2101563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                               bindingCount;
2102563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayoutBinding*    pBindings;
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
210404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21053e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolSize {
2106563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType    type;
2107563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t            descriptorCount;
210865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkDescriptorPoolSize;
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21103e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorPoolCreateInfo {
2111563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
2112563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
2113563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPoolCreateFlags    flags;
2114563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       maxSets;
2115563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                       poolSizeCount;
2116563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorPoolSize*    pPoolSizes;
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21193e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorSetAllocateInfo {
2120563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
2121563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
2122563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorPool                descriptorPool;
2123563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        descriptorSetCount;
2124563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorSetLayout*    pSetLayouts;
21253fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDescriptorSetAllocateInfo;
2126fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
21273e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorImageInfo {
2128563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampler        sampler;
2129563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageView      imageView;
2130563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    imageLayout;
2131a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
2132a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
21333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDescriptorBufferInfo {
2134563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer        buffer;
2135563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    offset;
2136563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    range;
21375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
21385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
21393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkWriteDescriptorSet {
2140563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2141563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2142563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet                  dstSet;
2143563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstBinding;
2144563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         dstArrayElement;
2145563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         descriptorCount;
2146563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorType                 descriptorType;
2147563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorImageInfo*     pImageInfo;
2148563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkDescriptorBufferInfo*    pBufferInfo;
2149563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkBufferView*              pTexelBufferView;
215004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
215104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21523e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCopyDescriptorSet {
2153563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2154563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2155563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    srcSet;
2156563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcBinding;
2157563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcArrayElement;
2158563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDescriptorSet    dstSet;
2159563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstBinding;
2160563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstArrayElement;
2161563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           descriptorCount;
216204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
216304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21643e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkFramebufferCreateInfo {
2165563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2166563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2167563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebufferCreateFlags    flags;
2168563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                renderPass;
2169563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    attachmentCount;
2170563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkImageView*          pAttachments;
2171563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    width;
2172563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    height;
2173563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    layers;
217404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
217504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentDescription {
2177563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentDescriptionFlags    flags;
2178563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                        format;
2179563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSampleCountFlagBits           samples;
2180563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              loadOp;
2181563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             storeOp;
2182563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentLoadOp              stencilLoadOp;
2183563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAttachmentStoreOp             stencilStoreOp;
2184563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   initialLayout;
2185563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout                   finalLayout;
218604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
218704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21883e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkAttachmentReference {
2189563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t         attachment;
2190563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout    layout;
219104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
219204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDescription {
2194563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSubpassDescriptionFlags       flags;
2195563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineBindPoint             pipelineBindPoint;
2196563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        inputAttachmentCount;
2197563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pInputAttachments;
2198563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        colorAttachmentCount;
2199563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pColorAttachments;
2200563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pResolveAttachments;
2201563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentReference*    pDepthStencilAttachment;
2202563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                        preserveAttachmentCount;
2203563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                 pPreserveAttachments;
220404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
220504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22063e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSubpassDependency {
2207563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                srcSubpass;
2208563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                dstSubpass;
2209563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    srcStageMask;
2210563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPipelineStageFlags    dstStageMask;
2211563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           srcAccessMask;
2212563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags           dstAccessMask;
2213563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDependencyFlags       dependencyFlags;
221404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
221504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22163e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkRenderPassCreateInfo {
2217563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
2218563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
2219563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPassCreateFlags           flags;
2220563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          attachmentCount;
2221563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkAttachmentDescription*    pAttachments;
2222563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          subpassCount;
2223563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDescription*       pSubpasses;
2224563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          dependencyCount;
2225563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSubpassDependency*        pDependencies;
222604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22283e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandPoolCreateInfo {
2229563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType             sType;
2230563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                 pNext;
2231563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPoolCreateFlags    flags;
2232563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    queueFamilyIndex;
22333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandPoolCreateInfo;
223404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22353e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkCommandBufferAllocateInfo {
2236563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType         sType;
2237563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*             pNext;
2238563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandPool           commandPool;
2239563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferLevel    level;
2240563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                commandBufferCount;
22413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferAllocateInfo;
224204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22433dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferInheritanceInfo {
2244563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
2245563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
2246563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass                     renderPass;
2247563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         subpass;
2248563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer                    framebuffer;
2249563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         occlusionQueryEnable;
2250563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryControlFlags              queryFlags;
2251563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkQueryPipelineStatisticFlags    pipelineStatistics;
22523dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkCommandBufferInheritanceInfo;
22533dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
22543dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkCommandBufferBeginInfo {
2255563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                          sType;
2256563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                              pNext;
2257563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCommandBufferUsageFlags                flags;
2258563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
22593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkCommandBufferBeginInfo;
226004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferCopy {
2262563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    srcOffset;
2263563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    dstOffset;
2264563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize    size;
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
226604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22673e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageSubresourceLayers {
2268563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2269563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              mipLevel;
2270563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              baseArrayLayer;
2271563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              layerCount;
227265ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall} VkImageSubresourceLayers;
22735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
22743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageCopy {
2275563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2276563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2277563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2278563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2279563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
228004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageBlit {
2283563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2284563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffsets[2];
2285563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2286563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffsets[2];
228704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22893e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferImageCopy {
2290563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize                bufferOffset;
2291563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferRowLength;
2292563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                    bufferImageHeight;
2293563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    imageSubresource;
2294563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  imageOffset;
2295563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  imageExtent;
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearColorValue {
2299563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       float32[4];
2300563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     int32[4];
2301563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    uint32[4];
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
230304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearDepthStencilValue {
2305563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float       depth;
2306563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    stencil;
23075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
23085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
23093e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef union VkClearValue {
2310563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearColorValue           color;
2311563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearDepthStencilValue    depthStencil;
2312ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2313ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
23143e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearAttachment {
2315563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageAspectFlags    aspectMask;
2316563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t              colorAttachment;
2317563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkClearValue          clearValue;
2318ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2319ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
23203e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkClearRect {
2321563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D    rect;
2322563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    baseArrayLayer;
2323563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    layerCount;
2324a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23263e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkImageResolve {
2327563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    srcSubresource;
2328563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  srcOffset;
2329563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceLayers    dstSubresource;
2330563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset3D                  dstOffset;
2331563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent3D                  extent;
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23343dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkMemoryBarrier {
2335563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2336563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2337563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2338563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
23393dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkMemoryBarrier;
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23413e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkBufferMemoryBarrier {
2342563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
2343563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
2344563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      srcAccessMask;
2345563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags      dstAccessMask;
2346563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           srcQueueFamilyIndex;
2347563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t           dstQueueFamilyIndex;
2348563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBuffer           buffer;
2349563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       offset;
2350563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDeviceSize       size;
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23533dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkImageMemoryBarrier {
2354563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType            sType;
2355563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                pNext;
2356563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              srcAccessMask;
2357563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAccessFlags              dstAccessMask;
2358563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              oldLayout;
2359563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageLayout              newLayout;
2360563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   srcQueueFamilyIndex;
2361563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                   dstQueueFamilyIndex;
2362563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImage                    image;
2363563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageSubresourceRange    subresourceRange;
23643dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkImageMemoryBarrier;
23653dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
23663dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef struct VkRenderPassBeginInfo {
2367563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType        sType;
2368563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*            pNext;
2369563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRenderPass           renderPass;
2370563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFramebuffer          framebuffer;
2371563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D               renderArea;
2372563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t               clearValueCount;
2373563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkClearValue*    pClearValues;
23743dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall} VkRenderPassBeginInfo;
23753dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall
23763e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDispatchIndirectCommand {
2377563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    x;
2378563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    y;
2379563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    z;
23803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDispatchIndirectCommand;
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23823e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndexedIndirectCommand {
2383563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    indexCount;
2384563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2385563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstIndex;
2386563380d389732337a84e7455caa01ec955ebee30Jesse Hall    int32_t     vertexOffset;
2387563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
23883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndexedIndirectCommand;
238904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23903e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDrawIndirectCommand {
2391563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    vertexCount;
2392563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    instanceCount;
2393563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstVertex;
2394563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t    firstInstance;
23953fbc856120217247c72fb5ed88500000f3881c45Jesse Hall} VkDrawIndirectCommand;
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2398e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2399e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2400e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2401e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2402e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2403e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2404e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2405e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2406e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2407e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2408e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2409e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2410e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2411e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2412e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2413e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2414e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2415e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2416e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2417e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2418e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2419e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2420e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2421e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2423e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2424e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2426e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2427e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2428e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2429e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2430e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2431e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2432e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2433e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2434e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2435e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2436e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2437e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2438e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2439e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2440e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2441e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2442e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2443e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2444e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2445e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2446e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2447f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse 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);
2448e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2449e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2450e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2451e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2452e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2453e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2454e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2455e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2456e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2457e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2458e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2459e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2460e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2461e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2462e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2463e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2464e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2465e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2466e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2467e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2468e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2469e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2470e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2471e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2472e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2473e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2474e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2475e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2476e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2477e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2478e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2479e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2480e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2481e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2482e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2483e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2484e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2485e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2486e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2487e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2488e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2489e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2490e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2491e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2492f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2493f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2494e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2495e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2496e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2497e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2498e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2499e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2500e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2501e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse 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);
2502e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2503f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2504e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2505e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2506e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2507e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2508ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
2509e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2510e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2511e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2512e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2513e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2514e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
251556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2516e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2517e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2518e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2519e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2520e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2521e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2522e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
25233dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
25243dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse 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);
25253dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
25263dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2527f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
25283dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2529f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2530f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2531e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2532e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2533e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
25343dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2536563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
2537e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
25393fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2542e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
254303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkInstance                                  instance,
25443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2546e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2551e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2555e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2560e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
25665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2569e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2573e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
257503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pQueueFamilyPropertyCount,
25765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2578e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2582e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2586e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2590e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
25933fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2596e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
259703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDevice                                    device,
25983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2600e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
260203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2605e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
260803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2611e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
261203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2615e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
261703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2620e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2626e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2628a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2629b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const VkSubmitInfo*                         pSubmits,
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2632e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2635e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2638e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMemoryAllocateInfo*                 pAllocateInfo,
26413fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
26423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory*                             pMemory);
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2644e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26463fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2649e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2657e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory);
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2661e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26633fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
26643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2666e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
26683fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryRangeCount,
26693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkMappedMemoryRange*                  pMemoryRanges);
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2671e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2676e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
26793fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2682e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
26853fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceMemory                              memory,
26863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                memoryOffset);
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2688e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2693e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2698e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
270103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pSparseMemoryRequirementCount,
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2704e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
2708091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall    VkSampleCountFlagBits                       samples,
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
271103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2714e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
271603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    bindInfoCount,
2717a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkBindSparseInfo*                     pBindInfo,
2718a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkFence                                     fence);
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2720e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
27233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2726e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
272803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFence                                     fence,
27293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
273004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2731e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
273204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
273404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
273504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2736e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
273704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
273804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
273904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2740e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
274104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2747e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
27503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2753e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
275503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSemaphore                                 semaphore,
27563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2758e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
27613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2764e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
276603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkEvent                                     event,
27673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2769e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2773e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2777e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2781e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
27843fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2787e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
278903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkQueryPool                                 queryPool,
27903fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
2795f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2797a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2799a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
280104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2802e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
280404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
28053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
280704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2808e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
280904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBuffer                                    buffer,
28113fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2813e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
28163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2819e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkBufferView                                bufferView,
28223fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2824e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
28273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2830e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImage                                     image,
28333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
283404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2835e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2841e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
28443fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2847e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
284903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkImageView                                 imageView,
28503fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2852e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
28553fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2858e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286003b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkShaderModule                              shaderModule,
28613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2863e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
28663fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2869e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287103b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineCache                             pipelineCache,
28723fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2874e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2877a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2880e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
28823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineCache                             dstCache,
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2886e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
288903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
28913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2894e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
289703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    createInfoCount,
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
28993fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2902e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
290403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipeline                                  pipeline,
29053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2907e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
29103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2913e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
291503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkPipelineLayout                            pipelineLayout,
29163fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2918e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
29213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2924e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
292603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkSampler                                   sampler,
29273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2929e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
29323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2935e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
293703b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorSetLayout                       descriptorSetLayout,
29383fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2940e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
29433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2946e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
294803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDescriptorPool                            descriptorPool,
29493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2951e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2953fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2954fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2956e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
29583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
29595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2961e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
296403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2967e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2969b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorWriteCount,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
2971b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    descriptorCopyCount,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2974e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
29773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2980e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
298203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkFramebuffer                               framebuffer,
29833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2985e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
29883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2991e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
299303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkRenderPass                                renderPass,
29943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2996e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3001e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
300204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
30033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandPoolCreateInfo*              pCreateInfo,
30043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator,
30053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPool*                              pCommandPool);
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3007e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
300965ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
30103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkAllocationCallbacks*                pAllocator);
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3012e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
301465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
30153fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandPoolResetFlags                     flags);
301604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3017e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
301804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
30193fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferAllocateInfo*          pAllocateInfo,
30203fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer*                            pCommandBuffers);
302104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3022e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
302304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
302465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkCommandPool                               commandPool,
302503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    commandBufferCount,
30263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
302704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3028e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
30293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBufferBeginInfo*             pBeginInfo);
303104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3032e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
30333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
303404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3035e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
30363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBufferResetFlags                   flags);
303804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3039e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
30403fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
304104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
304204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
304304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3044e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
30453fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3046f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstViewport,
30475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
30485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
30495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3050e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
30513fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3052f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstScissor,
30535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
30545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
30555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3056e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
30573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
30595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3060e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
30613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3062a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
30635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
3064a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
306504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3066e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
30673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3068b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    const float                                 blendConstants[4]);
306904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3070e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
30713fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
30735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
307404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3075e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
30763fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
307865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    compareMask);
30795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3080e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
30813fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
308365ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    writeMask);
30845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
3085e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
30863fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
30875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
308865ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    uint32_t                                    reference);
308904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3090e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
30913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
309204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
309304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
309404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
309503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    descriptorSetCount,
309604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
309704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
309804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
309904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3100e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
31013fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
310204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
310304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
310404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
310504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3106e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
31073fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3108f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstBinding,
310904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
311004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
311104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
311204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3113e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
31143fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
311504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
31165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
31175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
31185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
311904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3120e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
31213fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
312204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
31235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
31245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
312504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
31265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
312704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3128e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
31293fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
313004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
313104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
313203b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
313304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
313404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3135e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
31363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
313704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
313804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
313903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    drawCount,
314004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
314104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3142e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
31433fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3144ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
3145ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
3146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
314704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3148e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
31493fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
315004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
315104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
315204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3153e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
31543fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
315504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
31563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
315704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
315804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
315904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3160e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
31613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
316204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
316304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31643fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
316604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
316704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
316804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3169e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
31703fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
317104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
317204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31733fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31743fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
317504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
317604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
317723ff73fe377acb99b5ea1824d5a11320bdaee745Jesse Hall    VkFilter                                    filter);
317804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3179e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
31803fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
318104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
31823fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
31833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
318404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
318504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
318604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3187e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
31883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
318904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
319004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
31913fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
319204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
319304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
319404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3195e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
31963fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
31973fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
31983fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
319904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
320056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*                                 pData);
320104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3202e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
32033fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
32053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3206b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkDeviceSize                                size,
320704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
320804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3209e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
32103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
321104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
321204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
321304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
321404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
321504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
321604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3217e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
32183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
321904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
322004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
32215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
322204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
322304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
322404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3225e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
32263fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
3227ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
3228ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
322904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
3230a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
323104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3232e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
32333fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
323404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
323504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
32363fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImage                                     dstImage,
32373fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkImageLayout                               dstImageLayout,
323804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
323904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
324004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3241e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
32423fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
324404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
324504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3246e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
32473fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
324804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
324904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
325004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3251e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
32523fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
325304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
325404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
325504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
32563fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
32573fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
32583dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
32593dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
32603dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
32613dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
32623dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
326304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3264e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
32653fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
326604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
32673fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkPipelineStageFlags                        dstStageMask,
3268dc6d36cb7f1d35059ae8153168e379fc925cb468Jesse Hall    VkDependencyFlags                           dependencyFlags,
32693fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    uint32_t                                    memoryBarrierCount,
32703dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkMemoryBarrier*                      pMemoryBarriers,
32713dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    bufferMemoryBarrierCount,
32723dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
32733dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    imageMemoryBarrierCount,
32743dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
327504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3276e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
32773fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
327804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
32793dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query,
328004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
328104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3282e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
32833fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
328404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
32853dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
328604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3287e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
32883fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
328904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3290f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
329104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
329204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3293e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
32943fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
32956f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
3296a3a7a1d37bdfad56245b75edac49f8aceded321dJesse Hall    VkQueryPool                                 queryPool,
32973dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    query);
329804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3299e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
33003fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
330104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
3302f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t                                    firstQuery,
330304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
33043fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkBuffer                                    dstBuffer,
33053fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkDeviceSize                                dstOffset,
3306a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
330704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
330804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3309e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
33103fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
331104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
331204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
331303b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    offset,
331403b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t                                    size,
3315f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    const void*                                 pValues);
331604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3317e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
33183fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
331904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
332065ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
332104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3322e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
33233fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
332465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VkSubpassContents                           contents);
332504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3326e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
33273fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer);
332804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3329e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
33303fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    VkCommandBuffer                             commandBuffer,
33313dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    commandBufferCount,
33323fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    const VkCommandBuffer*                      pCommandBuffers);
333304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
333404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3335091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_surface 1
33363fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
33371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
333833faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_SURFACE_SPEC_VERSION       25
33393e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
33402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
33411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33433e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkColorSpaceKHR {
33442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
3345bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
3346bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
3347c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
3348c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
3349c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
3350c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
3351c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
3352c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
3353c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
3354c45673f8f14ecbcf49683ef7dd62dd4123a57fe5Courtney Goeltzenleuchter    VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
33557f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
33567f558ede108cdb5579e89ca7137013279fa9b1b7Courtney Goeltzenleuchter    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
3357bca34c90fdef4e8132ca34a3f9493ab93c603ae7Courtney Goeltzenleuchter    VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
3358edc88e78a30ca412a0a085a21f1fc1be7be5081fCourtney Goeltzenleuchter    VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
33592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
33602676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
33612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
33622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
33631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33653e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkPresentModeKHR {
33661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
33671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
33681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
336903b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
33701d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
33711d5f68c10560a82fd3278e17e934ee3bff328374Chris Forbes    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
33722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
33732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
33742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
33752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
33761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
33771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkSurfaceTransformFlagBitsKHR {
3380f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
33819ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
33829ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
33839ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
33849ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
33859ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
33869ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
33879ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
33881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
33892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
33901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
33911356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
33921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33933e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkCompositeAlphaFlagBitsKHR {
3394a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3395a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3396a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3397a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
33982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3399a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkCompositeAlphaFlagBitsKHR;
3400a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Halltypedef VkFlags VkCompositeAlphaFlagsKHR;
3401a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
34023e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceCapabilitiesKHR {
3403563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3404563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageCount;
3405563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       currentExtent;
3406563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       minImageExtent;
3407563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       maxImageExtent;
3408563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         maxImageArrayLayers;
3409563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
3410563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
3411563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
3412563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
3413b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkSurfaceCapabilitiesKHR;
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34153e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSurfaceFormatKHR {
3416563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat           format;
3417563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR    colorSpace;
34181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
34191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3420b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3421f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3422e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3423e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3424e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3425e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3426b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3427563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3428e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3429f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkInstance                                  instance,
3430f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSurfaceKHR                                surface,
34310e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
3432b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3433e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3434b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3435b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t                                    queueFamilyIndex,
3436b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3437b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkBool32*                                   pSupported);
3438b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3439e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3440b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3441b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3442b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3443b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3444e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3445b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3446b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3447b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pSurfaceFormatCount,
3448b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceFormatKHR*                         pSurfaceFormats);
3449b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3450e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3451b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPhysicalDevice                            physicalDevice,
3452b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkSurfaceKHR                                surface,
3453b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    uint32_t*                                   pPresentModeCount,
3454b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall    VkPresentModeKHR*                           pPresentModes);
3455b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall#endif
3456b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3457091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_swapchain 1
34583fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3459b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
34602676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
34613e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3462b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
3463ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
3464ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkSwapchainCreateFlagBitsKHR {
3465ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
3466ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3467ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkSwapchainCreateFlagBitsKHR;
3468f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkSwapchainCreateFlagsKHR;
3469f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall
34703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkSwapchainCreateInfoKHR {
3471563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                  sType;
3472563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                      pNext;
3473563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainCreateFlagsKHR        flags;
3474563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceKHR                     surface;
3475563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         minImageCount;
3476563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkFormat                         imageFormat;
3477563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkColorSpaceKHR                  imageColorSpace;
3478563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                       imageExtent;
3479563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         imageArrayLayers;
3480563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkImageUsageFlags                imageUsage;
3481563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSharingMode                    imageSharingMode;
3482563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                         queueFamilyIndexCount;
3483563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*                  pQueueFamilyIndices;
3484563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR    preTransform;
3485563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
3486563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkPresentModeKHR                 presentMode;
3487563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                         clipped;
3488563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSwapchainKHR                   oldSwapchain;
34891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
34901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34913e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkPresentInfoKHR {
3492563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType          sType;
3493563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*              pNext;
3494563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 waitSemaphoreCount;
3495563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSemaphore*       pWaitSemaphores;
3496563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                 swapchainCount;
3497563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const VkSwapchainKHR*    pSwapchains;
3498563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const uint32_t*          pImageIndices;
3499563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkResult*                pResults;
35001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
35011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3503f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3504f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3505f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3506f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3507f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
35081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3509563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3510e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3511f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3512f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfo,
35130e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3514f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR*                             pSwapchain);
35151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3516e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3517f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3518f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
35190e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator);
35201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3521e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3522f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3523f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3524f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pSwapchainImageCount,
3525f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkImage*                                    pSwapchainImages);
35261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3527e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3528f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkDevice                                    device,
3529f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSwapchainKHR                              swapchain,
3530f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint64_t                                    timeout,
3531f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkSemaphore                                 semaphore,
3532f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkFence                                     fence,
3533f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    uint32_t*                                   pImageIndex);
35341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3535e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3536f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    VkQueue                                     queue,
3537f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkPresentInfoKHR*                     pPresentInfo);
35381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
35391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3540091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display 1
35413fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
35423fbc856120217247c72fb5ed88500000f3881c45Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
35431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3544543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SPEC_VERSION       21
35453e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
35461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35483e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3549f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3550f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3551f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3552f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
35532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
35541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
35551356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
35562676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkFlags VkDisplayModeCreateFlagsKHR;
3557f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Halltypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
35581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35593e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPropertiesKHR {
3560563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR                  display;
3561563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const char*                   displayName;
3562563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalDimensions;
3563563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                    physicalResolution;
3564563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagsKHR    supportedTransforms;
3565563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      planeReorderPossible;
3566563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32                      persistentContent;
35671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
35681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeParametersKHR {
3570563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D    visibleRegion;
3571563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t      refreshRate;
3572a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayModeParametersKHR;
35731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35743e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModePropertiesKHR {
3575563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR              displayMode;
3576563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR    parameters;
35771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
35781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35793e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayModeCreateInfoKHR {
3580563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3581563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3582563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeCreateFlagsKHR    flags;
3583563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeParametersKHR     parameters;
35841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
35851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35863e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlaneCapabilitiesKHR {
3587563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
3588563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minSrcPosition;
3589563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxSrcPosition;
3590563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minSrcExtent;
3591563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxSrcExtent;
3592563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     minDstPosition;
3593563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkOffset2D                     maxDstPosition;
3594563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     minDstExtent;
3595563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                     maxDstExtent;
3596a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplayPlaneCapabilitiesKHR;
35971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
35983e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPlanePropertiesKHR {
3599563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayKHR    currentDisplay;
3600563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t        currentStackIndex;
3601b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall} VkDisplayPlanePropertiesKHR;
3602b00daadc165d4c3fad13b7cc4aeaa1e85e6df9a0Jesse Hall
36033e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplaySurfaceCreateInfoKHR {
3604563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3605563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3606563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplaySurfaceCreateFlagsKHR    flags;
3607563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayModeKHR                  displayMode;
3608563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeIndex;
3609563380d389732337a84e7455caa01ec955ebee30Jesse Hall    uint32_t                          planeStackIndex;
3610563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkSurfaceTransformFlagBitsKHR     transform;
3611563380d389732337a84e7455caa01ec955ebee30Jesse Hall    float                             globalAlpha;
3612563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
3613563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkExtent2D                        imageExtent;
3614a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall} VkDisplaySurfaceCreateInfoKHR;
36151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3617e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3618e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
36193dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3620e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
36212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
36229ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
36230e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3625563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3626e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
36271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
362803b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
36291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
36301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3631e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3632a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3633a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t*                                   pPropertyCount,
3634a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
3635a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3636e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3637a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
36383dd678a6a30e2d94bfd570ec43ffd379e9c5d409Jesse Hall    uint32_t                                    planeIndex,
3639f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    uint32_t*                                   pDisplayCount,
3640f4ab2b18391ab5045b44af9ea1d5698af7c2a0cdJesse Hall    VkDisplayKHR*                               pDisplays);
3641a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3642e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
36431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
364503b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    uint32_t*                                   pPropertyCount,
364603b6fe1b099764c6010c173c1416ea102cdfe5a4Jesse Hall    VkDisplayModePropertiesKHR*                 pProperties);
36471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3648e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
36491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
36511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
36520e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
36541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3655e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
36561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
36579ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDisplayModeKHR                            mode,
36581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
3659a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3660a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3661e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3662a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkInstance                                  instance,
3663a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
36640e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
3665a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkSurfaceKHR*                               pSurface);
36661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
36671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3668091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_display_swapchain 1
3669543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
36703e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
36711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36723e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Halltypedef struct VkDisplayPresentInfoKHR {
3673563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType    sType;
3674563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*        pNext;
3675563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           srcRect;
3676563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkRect2D           dstRect;
3677563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkBool32           persistent;
36781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
36791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
36819ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
36829ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall
3683563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
36849ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
36859ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkDevice                                    device,
36869ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    uint32_t                                    swapchainCount,
36879ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkSwapchainCreateInfoKHR*             pCreateInfos,
36889ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    const VkAllocationCallbacks*                pAllocator,
36899ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall    VkSwapchainKHR*                             pSwapchains);
36909ba8bc8d8769cd4d7b56b44222323b7f06783b11Jesse Hall#endif
36911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3692a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_KHR
3693091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xlib_surface 1
36941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
36951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3696543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3697091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
36981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3699f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3700f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3701f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXlibSurfaceCreateInfoKHR {
3702563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                sType;
3703563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                    pNext;
3704563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXlibSurfaceCreateFlagsKHR    flags;
3705563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Display*                       dpy;
3706563380d389732337a84e7455caa01ec955ebee30Jesse Hall    Window                         window;
3707f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXlibSurfaceCreateInfoKHR;
3708f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3709f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3710f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3711e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
37121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3713563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3714e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
37151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3716f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
37170e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3719a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3720e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3721a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3722a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3723a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    Display*                                    dpy,
372465ab552c18df3e94c5d275294a20dd4d20dda119Jesse Hall    VisualID                                    visualID);
37251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
3726a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_KHR */
37271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3729091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_xcb_surface 1
37301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
37311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3732543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
37333e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
37341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3735f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3736f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3737f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkXcbSurfaceCreateInfoKHR {
3738563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3739563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3740563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkXcbSurfaceCreateFlagsKHR    flags;
3741563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_connection_t*             connection;
3742563380d389732337a84e7455caa01ec955ebee30Jesse Hall    xcb_window_t                  window;
3743f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkXcbSurfaceCreateInfoKHR;
3744f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3745f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3746f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3747e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
37481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3749563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3750e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
37511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3752f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
37530e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3755a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3756e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3757a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3758a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3759a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_connection_t*                           connection,
3760a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    xcb_visualid_t                              visual_id);
37611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
37631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3765091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_wayland_surface 1
37661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
37671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3768fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
37693e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
37701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3771f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3772f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3773f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWaylandSurfaceCreateInfoKHR {
3774563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3775563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3776563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWaylandSurfaceCreateFlagsKHR    flags;
3777563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_display*                display;
3778563380d389732337a84e7455caa01ec955ebee30Jesse Hall    struct wl_surface*                surface;
3779f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWaylandSurfaceCreateInfoKHR;
3780f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3781f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3782f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3783e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
37841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3785563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3786e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
37871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3788f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
37890e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
37901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3791a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3792e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3793a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3794a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3795a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    struct wl_display*                          display);
37961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
37971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
37981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
37991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3800091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_mir_surface 1
38011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
38021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3803543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
38043e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
38051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3806f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3807f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3808f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkMirSurfaceCreateInfoKHR {
3809563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType               sType;
3810563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                   pNext;
3811563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkMirSurfaceCreateFlagsKHR    flags;
3812563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirConnection*                connection;
3813563380d389732337a84e7455caa01ec955ebee30Jesse Hall    MirSurface*                   mirSurface;
3814f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkMirSurfaceCreateInfoKHR;
3815f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3816f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3817f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3818e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
38191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3820563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3821e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
38221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3823f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
38240e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3826a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3827e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3828a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3829a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex,
3830a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    MirConnection*                              connection);
38311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
38331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3835091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_android_surface 1
38361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
383733faaad096afbd0b103bd1284ce5b78cce74aa01Jesse Hall#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
38383e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
38391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3840f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3841f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3842f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkAndroidSurfaceCreateInfoKHR {
3843563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                   sType;
3844563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                       pNext;
3845563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkAndroidSurfaceCreateFlagsKHR    flags;
384682afc95f7ed4e896a15d8b2a20d4f4521ed100c2Alistair Strachan    struct ANativeWindow*             window;
3847f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkAndroidSurfaceCreateInfoKHR;
3848f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3849f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3850f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
38511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3852563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3853e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
38541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3855f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
38560e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
38581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
38601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3862091ed9e69400edcc549c9b11635d1a305d6b5a83Jesse Hall#define VK_KHR_win32_surface 1
38631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
38641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3865543a7ffb9845637b4dc0d40898bf5b1057dbc3eaJesse Hall#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
38663e0dc8f0d9f4de86ac61c4d3c33c3958f35e0a25Jesse Hall#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
38671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3868f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3869f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3870f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef struct VkWin32SurfaceCreateInfoKHR {
3871563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkStructureType                 sType;
3872563380d389732337a84e7455caa01ec955ebee30Jesse Hall    const void*                     pNext;
3873563380d389732337a84e7455caa01ec955ebee30Jesse Hall    VkWin32SurfaceCreateFlagsKHR    flags;
3874563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HINSTANCE                       hinstance;
3875563380d389732337a84e7455caa01ec955ebee30Jesse Hall    HWND                            hwnd;
3876f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall} VkWin32SurfaceCreateInfoKHR;
3877f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3878f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall
3879f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3880e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
38811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
3882563380d389732337a84e7455caa01ec955ebee30Jesse Hall#ifndef VK_NO_PROTOTYPES
3883e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
38841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
3885f9fa9a50d5e87dacce36ef2a56b392fc053cf8ceJesse Hall    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
38860e74f00af03b7e705774d0dcf69c2ba8ce7a15a8Jesse Hall    const VkAllocationCallbacks*                pAllocator,
38871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
3888a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall
3889e1b12783fff0b8e2defcc94c54fac8d737e6b996Jesse HallVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3890a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    VkPhysicalDevice                            physicalDevice,
3891a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    uint32_t                                    queueFamilyIndex);
38921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
38931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
38941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
38952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_sampler_mirror_clamp_to_edge 1
38962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
38972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
38982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
38991194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_get_physical_device_properties2 1
39011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
39021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
39031194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceFeatures2KHR {
39051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType             sType;
39061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                       pNext;
39071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures    features;
39081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceFeatures2KHR;
39091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39101194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceProperties2KHR {
39111194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType               sType;
39121194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                         pNext;
39131194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties    properties;
39141194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceProperties2KHR;
39151194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39161194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkFormatProperties2KHR {
39171194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
39181194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                 pNext;
39191194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties    formatProperties;
39201194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkFormatProperties2KHR;
39211194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39221194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkImageFormatProperties2KHR {
39231194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
39241194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
39251194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties    imageFormatProperties;
39261194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkImageFormatProperties2KHR;
39271194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39281194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceImageFormatInfo2KHR {
39291194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType       sType;
39301194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*           pNext;
39311194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat              format;
39321194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType           type;
39331194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling         tiling;
39341194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags     usage;
39351194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageCreateFlags    flags;
39361194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceImageFormatInfo2KHR;
39371194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39381194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkQueueFamilyProperties2KHR {
39391194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType            sType;
39401194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                      pNext;
39411194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties    queueFamilyProperties;
39421194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkQueueFamilyProperties2KHR;
39431194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39441194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceMemoryProperties2KHR {
39451194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                     sType;
39461194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                               pNext;
39471194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties    memoryProperties;
39481194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceMemoryProperties2KHR;
39491194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39501194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkSparseImageFormatProperties2KHR {
39511194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType                  sType;
39521194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    void*                            pNext;
39531194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties    properties;
39541194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkSparseImageFormatProperties2KHR;
39551194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39561194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
39571194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkStructureType          sType;
39581194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const void*              pNext;
39591194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                 format;
39601194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageType              type;
39611194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSampleCountFlagBits    samples;
39621194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageUsageFlags        usage;
39631194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageTiling            tiling;
39641194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes} VkPhysicalDeviceSparseImageFormatInfo2KHR;
39651194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39661194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39671194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
39681194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
39691194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
39701194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
39711194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
39721194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
39731194edeee85370eeb1794d9016759ad58454d2f9Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
39741194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39751194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#ifndef VK_NO_PROTOTYPES
39761194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
39771194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39781194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceFeatures2KHR*               pFeatures);
39791194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39801194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
39811194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39821194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceProperties2KHR*             pProperties);
39831194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39841194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
39851194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39861194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormat                                    format,
39871194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkFormatProperties2KHR*                     pFormatProperties);
39881194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39891194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
39901194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39911194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
39921194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkImageFormatProperties2KHR*                pImageFormatProperties);
39931194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39941194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
39951194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
39961194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pQueueFamilyPropertyCount,
39971194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
39981194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
39991194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
40001194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40011194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
40021194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
40031194edeee85370eeb1794d9016759ad58454d2f9Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
40041194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkPhysicalDevice                            physicalDevice,
40051194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
40061194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    uint32_t*                                   pPropertyCount,
40071194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes    VkSparseImageFormatProperties2KHR*          pProperties);
40081194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes#endif
40091194edeee85370eeb1794d9016759ad58454d2f9Chris Forbes
401077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_shader_draw_parameters 1
401177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
401277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
4013cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
4014cb35113761ae7afc26c7bffc529b590575a9f4d7Ian Elliott
401577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_maintenance1 1
401677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_SPEC_VERSION  1
401777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
40182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
401977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkCommandPoolTrimFlagsKHR;
40202e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
402177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
40222e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
40232e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#ifndef VK_NO_PROTOTYPES
402477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
40252e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes    VkDevice                                    device,
402677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPool                               commandPool,
402777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCommandPoolTrimFlagsKHR                   flags);
40282e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes#endif
40292e12cb80a8a1e23fef253911febf1797c835d02fChris Forbes
4030ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_push_descriptor 1
4031ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1
4032ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
4033ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4034ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
4035ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4036ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4037ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxPushDescriptors;
4038ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDevicePushDescriptorPropertiesKHR;
4039ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4040ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4041ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
4042ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4043ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4044ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
4045ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4046ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
4047ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4048ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4049ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    descriptorWriteCount,
4050ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites);
4051ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4052ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4053f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_incremental_present 1
4054f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
4055f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
4056f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4057f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkRectLayerKHR {
4058f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkOffset2D    offset;
4059f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkExtent2D    extent;
4060f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t      layer;
4061f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkRectLayerKHR;
4062f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4063f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkPresentRegionKHR {
4064f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t                 rectangleCount;
4065f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const VkRectLayerKHR*    pRectangles;
4066f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkPresentRegionKHR;
4067f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4068f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Halltypedef struct VkPresentRegionsKHR {
4069f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VkStructureType              sType;
4070f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const void*                  pNext;
4071f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    uint32_t                     swapchainCount;
4072f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    const VkPresentRegionKHR*    pRegions;
4073f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall} VkPresentRegionsKHR;
4074f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4075f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4076f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
4077ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_descriptor_update_template 1
4078ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
4079ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4080ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
4081ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
4082ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4083ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4084ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDescriptorUpdateTemplateTypeKHR {
4085ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
4086ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4087ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
4088ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
4089ad250840766ea76def08c0d9f0b04a09c32dab79Jesse 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),
4090ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
4091ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateTypeKHR;
4092ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4093ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
4094ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4095ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateEntryKHR {
4096ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstBinding;
4097ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            dstArrayElement;
4098ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            descriptorCount;
4099ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorType    descriptorType;
4100ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              offset;
4101ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    size_t              stride;
4102ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateEntryKHR;
4103ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4104ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDescriptorUpdateTemplateCreateInfoKHR {
4105ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                              sType;
4106ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                                        pNext;
4107ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateCreateFlagsKHR     flags;
4108ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     descriptorUpdateEntryCount;
4109ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateEntryKHR*    pDescriptorUpdateEntries;
4110ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateTypeKHR            templateType;
4111ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSetLayout                        descriptorSetLayout;
4112ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineBindPoint                          pipelineBindPoint;
4113ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                             pipelineLayout;
4114ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                     set;
4115ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDescriptorUpdateTemplateCreateInfoKHR;
4116ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4117ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4118ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
4119ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4120ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
4121ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
4122ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4123ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4124ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
4125ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4126ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
4127ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4128ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR*              pDescriptorUpdateTemplate);
4129ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4130ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
4131ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4132ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4133ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4134ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4135ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
4136ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4137ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorSet                             descriptorSet,
4138ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4139ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4140ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4141ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
4142ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4143ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate,
4144ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineLayout                            layout,
4145ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    set,
4146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pData);
4147ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4148ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
414905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_shared_presentable_image 1
415005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
415105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
415205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
415305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSharedPresentSurfaceCapabilitiesKHR {
415405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType      sType;
415505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                pNext;
415605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkImageUsageFlags    sharedPresentSupportedUsageFlags;
415705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSharedPresentSurfaceCapabilitiesKHR;
415805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
415905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
416005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
416105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
416205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#ifndef VK_NO_PROTOTYPES
416305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
416405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkDevice                                    device,
416505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSwapchainKHR                              swapchain);
416605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#endif
416705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
416805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_get_surface_capabilities2 1
416905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
417005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
417105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
417205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkPhysicalDeviceSurfaceInfo2KHR {
417305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType    sType;
417405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const void*        pNext;
417505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceKHR       surface;
417605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkPhysicalDeviceSurfaceInfo2KHR;
417705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
417805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSurfaceCapabilities2KHR {
417905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType             sType;
418005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                       pNext;
418105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceCapabilitiesKHR    surfaceCapabilities;
418205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSurfaceCapabilities2KHR;
418305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
418405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef struct VkSurfaceFormat2KHR {
418505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkStructureType       sType;
418605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    void*                 pNext;
418705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceFormatKHR    surfaceFormat;
418805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall} VkSurfaceFormat2KHR;
418905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
419005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
419105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
419205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
419305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
419405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#ifndef VK_NO_PROTOTYPES
419505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
419605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkPhysicalDevice                            physicalDevice,
419705556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
419805556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
419905556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
420005556b1dfdd37364c305ba8f9682558c5a6de2ffJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
420105556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkPhysicalDevice                            physicalDevice,
420205556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
420305556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    uint32_t*                                   pSurfaceFormatCount,
420405556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall    VkSurfaceFormat2KHR*                        pSurfaceFormats);
420505556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall#endif
420605556b1dfdd37364c305ba8f9682558c5a6de2ffJesse Hall
4207e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_debug_report 1
4208e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
4209e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4210f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  6
4211e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
42122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
4213e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4214e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4215e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportObjectTypeEXT {
4216e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
4217e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
4218e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
4219e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
4220e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
4221e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
4222e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
4223e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
4224e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
4225e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
4226e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
4227e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
4228e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
4229e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
4230e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
4231e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
4232e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
4233e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
4234e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
4235e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
4236e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
4237e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
4238e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
4239e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
4240e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
4241e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
4242e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
4243e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
4244e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
4245289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
4246289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
4247289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
4248289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
4249f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
42502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4251289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
4252289cb79d444c385185e4f357d3b2fe67a958e932Chris 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),
42532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
4254e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportObjectTypeEXT;
4255e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4256e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportErrorEXT {
4257e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
4258e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
42592676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
42602676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
42612676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
42622676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
4263e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportErrorEXT;
4264e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4265e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4266e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef enum VkDebugReportFlagBitsEXT {
4267e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
4268e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
4269e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
4270e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
4271e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
42722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
4273e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportFlagBitsEXT;
4274e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkFlags VkDebugReportFlagsEXT;
4275e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4276e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
4277e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4278e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4279e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4280e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4281e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4282e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4283e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage,
4284e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                                       pUserData);
4285e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4286e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4287e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef struct VkDebugReportCallbackCreateInfoEXT {
4288e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkStructureType                 sType;
4289e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const void*                     pNext;
4290e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT           flags;
4291e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    PFN_vkDebugReportCallbackEXT    pfnCallback;
4292e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    void*                           pUserData;
4293e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall} VkDebugReportCallbackCreateInfoEXT;
4294e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4295e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4296e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
4297e2948d83f352b9a093252a06757f76a88f5355d3Jesse Halltypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
4298e2948d83f352b9a093252a06757f76a88f5355d3Jesse 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);
4299e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4300e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#ifndef VK_NO_PROTOTYPES
4301e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
4302e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4303e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
4304e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator,
4305e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT*                   pCallback);
4306e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4307e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
4308e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4309e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportCallbackEXT                    callback,
4310e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const VkAllocationCallbacks*                pAllocator);
4311e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
4312e2948d83f352b9a093252a06757f76a88f5355d3Jesse HallVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
4313e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkInstance                                  instance,
4314e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportFlagsEXT                       flags,
4315e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    VkDebugReportObjectTypeEXT                  objectType,
4316e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    uint64_t                                    object,
4317e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    size_t                                      location,
4318e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    int32_t                                     messageCode,
4319e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pLayerPrefix,
4320e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall    const char*                                 pMessage);
4321e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall#endif
4322e2948d83f352b9a093252a06757f76a88f5355d3Jesse Hall
43232676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_glsl_shader 1
43242676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
43252676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
43262676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43272676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43282676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_filter_cubic 1
43292676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
43302676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
43312676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43322676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43332676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_rasterization_order 1
43342676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
43352676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
43362676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43372676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43382676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef enum VkRasterizationOrderAMD {
43392676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
43402676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
43412676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
43422676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
43432676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
43442676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
43452676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkRasterizationOrderAMD;
43462676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43472676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
43482676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType            sType;
43492676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                pNext;
43502676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkRasterizationOrderAMD    rasterizationOrder;
43512676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkPipelineRasterizationStateRasterizationOrderAMD;
43522676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43532676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43542676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
435556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_trinary_minmax 1
435656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
435756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
435856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
435956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
436056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_shader_explicit_vertex_parameter 1
436156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
436256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
436356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
436456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
43652676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_debug_marker 1
43668f49fcb42d560de4fcc9224226495b942a94bff4Jesse Hall#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
43672676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
43682676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43692676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectNameInfoEXT {
43702676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
43712676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
43722676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
43732676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
43742676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*                   pObjectName;
43752676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectNameInfoEXT;
43762676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43772676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerObjectTagInfoEXT {
43782676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType               sType;
43792676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pNext;
43802676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugReportObjectTypeEXT    objectType;
43812676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      object;
43822676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    uint64_t                      tagName;
43832676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    size_t                        tagSize;
43842676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*                   pTag;
43852676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerObjectTagInfoEXT;
43862676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43872676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef struct VkDebugMarkerMarkerInfoEXT {
43882676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkStructureType    sType;
43892676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const void*        pNext;
43902676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    const char*        pMarkerName;
43912676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    float              color[4];
43922676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall} VkDebugMarkerMarkerInfoEXT;
43932676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43942676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
43952676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
43962676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
43972676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
43982676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
43992676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Halltypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
44002676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
44012676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#ifndef VK_NO_PROTOTYPES
44022676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
44032676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
44042676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
44052676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
44062676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
44072676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDevice                                    device,
44082676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
44092676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
44102676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
44112676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
44122676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
44132676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
44142676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
44152676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer);
44162676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
44172676338dd692b7d1e1c276d82e6b0492db53ab2eJesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
44182676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkCommandBuffer                             commandBuffer,
44192676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
44202676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall#endif
44212676338dd692b7d1e1c276d82e6b0492db53ab2eJesse Hall
442256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_gcn_shader 1
442356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
442456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
442556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
442656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
442756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_dedicated_allocation 1
442856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
442956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
443056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
443156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationImageCreateInfoNV {
443256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
443356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
443456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
443556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationImageCreateInfoNV;
443656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
443756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationBufferCreateInfoNV {
443856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
443956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
444056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBool32           dedicatedAllocation;
444156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationBufferCreateInfoNV;
444256d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
444356d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Halltypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
444456d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkStructureType    sType;
444556d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    const void*        pNext;
444656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkImage            image;
444756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    VkBuffer           buffer;
444856d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall} VkDedicatedAllocationMemoryAllocateInfoNV;
444956d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
445056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall
445177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
4452289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_draw_indirect_count 1
4453289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
4454289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
4455289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4456289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4457289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
4458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4460289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
4461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4466289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4467289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4468289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4469289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
4470289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
4471289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    buffer,
4472289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                offset,
4473289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                                    countBuffer,
4474289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                                countBufferOffset,
4475289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    maxDrawCount,
4476289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    stride);
4477289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4478289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4479289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_negative_viewport_height 1
4480289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
4481289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
4482289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4483289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4484289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_gpu_shader_half_float 1
4485289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
4486289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
4487289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4488289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4489289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_shader_ballot 1
4490289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
4491289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
4492289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4493289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4494ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_multiview 1
4495ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_SPEC_VERSION     1
4496ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_MULTIVIEW_EXTENSION_NAME   "VK_KHX_multiview"
4497ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4498ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkRenderPassMultiviewCreateInfoKHX {
4499ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4500ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4501ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           subpassCount;
4502ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pViewMasks;
4503ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           dependencyCount;
4504ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const int32_t*     pViewOffsets;
4505ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           correlationMaskCount;
4506ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCorrelationMasks;
4507ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkRenderPassMultiviewCreateInfoKHX;
4508ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4509ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
4510ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4511ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4512ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiview;
4513ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewGeometryShader;
4514ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           multiviewTessellationShader;
4515ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewFeaturesKHX;
4516ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4517ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
4518ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4519ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4520ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewViewCount;
4521ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxMultiviewInstanceIndex;
4522ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPropertiesKHX;
4523ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4524ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4525ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4526289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_format_pvrtc 1
4527289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
4528289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
4529289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4530289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4531289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_capabilities 1
4532289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4533289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
4534289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4535289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4536289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
4537289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
4538289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
4539289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
4540289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
4541289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4542289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryHandleTypeFlagBitsNV;
4543289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
4544289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4545289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkExternalMemoryFeatureFlagBitsNV {
4546289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
4547289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
4548289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
4549289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4550289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryFeatureFlagBitsNV;
4551289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkExternalMemoryFeatureFlagsNV;
4552289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4553289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalImageFormatPropertiesNV {
4554289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageFormatProperties              imageFormatProperties;
4555289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
4556289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
4557289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
4558289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalImageFormatPropertiesNV;
4559289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4560289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4561289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
4562289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4563289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4564289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
4565289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
4566289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkFormat                                    format,
4567289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageType                                 type,
4568289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageTiling                               tiling,
4569289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageUsageFlags                           usage,
4570289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkImageCreateFlags                          flags,
4571289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
4572289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
4573289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4574289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4575289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory 1
4576289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
4577289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
4578289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4579289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExternalMemoryImageCreateInfoNV {
4580289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4581289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4582289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4583289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExternalMemoryImageCreateInfoNV;
4584289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4585289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryAllocateInfoNV {
4586289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4587289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4588289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4589289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryAllocateInfoNV;
4590289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4591289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4592289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4593289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4594289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_external_memory_win32 1
4595289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4596289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
4597289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4598289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkImportMemoryWin32HandleInfoNV {
4599289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
4600289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
4601289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV    handleType;
4602289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE                               handle;
4603289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkImportMemoryWin32HandleInfoNV;
4604289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4605289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkExportMemoryWin32HandleInfoNV {
4606289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType               sType;
4607289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                   pNext;
4608289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const SECURITY_ATTRIBUTES*    pAttributes;
4609289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    DWORD                         dwAccess;
4610289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkExportMemoryWin32HandleInfoNV;
4611289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4612289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4613289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
4614289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4615289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
4616289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
4617289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
4618289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceMemory                              memory,
4619289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkExternalMemoryHandleTypeFlagsNV           handleType,
4620289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    HANDLE*                                     pHandle);
4621289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
4622289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4623289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4624289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifdef VK_USE_PLATFORM_WIN32_KHR
4625289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_win32_keyed_mutex 1
4626289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
4627289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
4628289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4629289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
4630289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4631289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4632289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 acquireCount;
4633289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pAcquireSyncs;
4634289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pAcquireKeys;
4635289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*          pAcquireTimeoutMilliseconds;
4636289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 releaseCount;
4637289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkDeviceMemory*    pReleaseSyncs;
4638289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint64_t*          pReleaseKeys;
4639289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkWin32KeyedMutexAcquireReleaseInfoNV;
4640289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4641289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4642289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif /* VK_USE_PLATFORM_WIN32_KHR */
4643289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4644ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group 1
4645ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MAX_DEVICE_GROUP_SIZE_KHX      32
4646ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_SPEC_VERSION  1
4647ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
4648ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4649ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4650ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkPeerMemoryFeatureFlagBitsKHX {
4651ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
4652ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
4653ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
4654ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
4655ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4656ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPeerMemoryFeatureFlagBitsKHX;
4657ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPeerMemoryFeatureFlagsKHX;
4658ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4659ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkMemoryAllocateFlagBitsKHX {
4660ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
4661ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4662ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagBitsKHX;
4663ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMemoryAllocateFlagsKHX;
4664ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4665ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDeviceGroupPresentModeFlagBitsKHX {
4666ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
4667ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
4668ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
4669ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
4670ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4671ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentModeFlagBitsKHX;
4672ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
4673ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4674ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryAllocateFlagsInfoKHX {
4675ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType             sType;
4676ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                 pNext;
4677ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryAllocateFlagsKHX    flags;
4678ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                    deviceMask;
4679ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryAllocateFlagsInfoKHX;
4680ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4681ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindBufferMemoryInfoKHX {
4682ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4683ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4684ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBuffer           buffer;
4685ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
4686ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
4687ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
4688ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
4689ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindBufferMemoryInfoKHX;
4690ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4691ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemoryInfoKHX {
4692ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4693ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4694ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkImage            image;
4695ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory     memory;
4696ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceSize       memoryOffset;
4697ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceIndexCount;
4698ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pDeviceIndices;
4699ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           SFRRectCount;
4700ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pSFRRects;
4701ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemoryInfoKHX;
4702ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4703ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupRenderPassBeginInfoKHX {
4704ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4705ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4706ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4707ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceRenderAreaCount;
4708ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*    pDeviceRenderAreas;
4709ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupRenderPassBeginInfoKHX;
4710ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4711ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
4712ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4713ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4714ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4715ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupCommandBufferBeginInfoKHX;
4716ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4717ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSubmitInfoKHX {
4718ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4719ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4720ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           waitSemaphoreCount;
4721ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pWaitSemaphoreDeviceIndices;
4722ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           commandBufferCount;
4723ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pCommandBufferDeviceMasks;
4724ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           signalSemaphoreCount;
4725ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*    pSignalSemaphoreDeviceIndices;
4726ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSubmitInfoKHX;
4727ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4728ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupBindSparseInfoKHX {
4729ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4730ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4731ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           resourceDeviceIndex;
4732ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryDeviceIndex;
4733ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupBindSparseInfoKHX;
4734ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4735ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentCapabilitiesKHX {
4736ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
4737ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
4738ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
4739ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
4740ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentCapabilitiesKHX;
4741ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4742ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImageSwapchainCreateInfoKHX {
4743ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4744ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4745ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4746ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImageSwapchainCreateInfoKHX;
4747ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4748ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkBindImageMemorySwapchainInfoKHX {
4749ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4750ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4751ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4752ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           imageIndex;
4753ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkBindImageMemorySwapchainInfoKHX;
4754ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4755ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkAcquireNextImageInfoKHX {
4756ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4757ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
4758ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSwapchainKHR     swapchain;
4759ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint64_t           timeout;
4760ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore        semaphore;
4761ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkFence            fence;
4762ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           deviceMask;
4763ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkAcquireNextImageInfoKHX;
4764ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4765ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupPresentInfoKHX {
4766ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                        sType;
4767ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                            pNext;
4768ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                               swapchainCount;
4769ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*                        pDeviceMasks;
4770ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagBitsKHX    mode;
4771ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupPresentInfoKHX;
4772ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4773ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupSwapchainCreateInfoKHX {
4774ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                     sType;
4775ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                         pNext;
4776ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX    modes;
4777ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupSwapchainCreateInfoKHX;
4778ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4779ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4780ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
4781ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos);
4782ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos);
4783ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
4784ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
4785ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
4786ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
4787ad250840766ea76def08c0d9f0b04a09c32dab79Jesse 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);
4788ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
4789ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4790ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4791ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
4792ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4793ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    heapIndex,
4794ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    localDeviceIndex,
4795ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    remoteDeviceIndex,
4796ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPeerMemoryFeatureFlagsKHX*                pPeerMemoryFeatures);
4797ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4798ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX(
4799ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4800ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
4801ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindBufferMemoryInfoKHX*            pBindInfos);
4802ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4803ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX(
4804ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4805ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    bindInfoCount,
4806ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkBindImageMemoryInfoKHX*             pBindInfos);
4807ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4808ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
4809ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4810ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    deviceMask);
4811ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4812ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
4813ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4814ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentCapabilitiesKHX*        pDeviceGroupPresentCapabilities);
4815ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4816ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
4817ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4818ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
4819ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceGroupPresentModeFlagsKHX*           pModes);
4820ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4821ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
4822ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
4823ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAcquireNextImageInfoKHX*            pAcquireInfo,
4824ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pImageIndex);
4825ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4826ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
4827ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
4828ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupX,
4829ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupY,
4830ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    baseGroupZ,
4831ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountX,
4832ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountY,
4833ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    groupCountZ);
4834ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4835ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
4836ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
4837ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR                                surface,
4838ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pRectCount,
4839ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkRect2D*                                   pRects);
4840ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4841ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4842289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_validation_flags 1
4843289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
4844289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
4845289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4846289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4847289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkValidationCheckEXT {
4848289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_ALL_EXT = 0,
4849289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4850289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
4851289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
4852289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
4853289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationCheckEXT;
4854289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4855289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkValidationFlagsEXT {
4856289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType          sType;
4857289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*              pNext;
4858289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                 disabledValidationCheckCount;
4859289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkValidationCheckEXT*    pDisabledValidationChecks;
4860289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkValidationFlagsEXT;
4861289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4862289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
4863289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
486477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_VI_NN
486577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_vi_surface 1
486677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_SPEC_VERSION     1
486777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_NN_VI_SURFACE_EXTENSION_NAME   "VK_NN_vi_surface"
486877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
486977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkViSurfaceCreateFlagsNN;
487077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
487177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkViSurfaceCreateInfoNN {
487277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
487377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
487477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkViSurfaceCreateFlagsNN    flags;
487577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                       window;
487677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkViSurfaceCreateInfoNN;
487777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
487877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
487977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
488077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
488177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
488277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
488377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkInstance                                  instance,
488477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkViSurfaceCreateInfoNN*              pCreateInfo,
488577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
488677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR*                               pSurface);
488777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
488877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_VI_NN */
488977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
489077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_ballot 1
489177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
489277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
489377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
489477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
489577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_shader_subgroup_vote 1
489677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
489777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
489877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
489977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
4900ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_device_group_creation 1
4901ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
4902ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
4903ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4904ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceGroupPropertiesKHX {
4905ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType     sType;
4906f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    void*               pNext;
4907ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t            physicalDeviceCount;
4908ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
4909ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32            subsetAllocation;
4910ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceGroupPropertiesKHX;
4911ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4912ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkDeviceGroupDeviceCreateInfoKHX {
4913ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType            sType;
4914ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                pNext;
4915ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                   physicalDeviceCount;
4916ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDevice*    pPhysicalDevices;
4917ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDeviceGroupDeviceCreateInfoKHX;
4918ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4919ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4920ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
4921ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4922ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
4923ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
4924ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
4925ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t*                                   pPhysicalDeviceGroupCount,
4926ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDeviceGroupPropertiesKHX*         pPhysicalDeviceGroupProperties);
4927ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
4928ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4929ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_capabilities 1
4930ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_LUID_SIZE_KHX                  8
4931ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4932ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_memory_capabilities"
4933ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4934ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4935ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalMemoryHandleTypeFlagBitsKHX {
4936ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
4937ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
4938ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
4939ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHX = 0x00000008,
4940ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHX = 0x00000010,
4941ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHX = 0x00000020,
4942ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHX = 0x00000040,
4943ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4944ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryHandleTypeFlagBitsKHX;
4945ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalMemoryHandleTypeFlagsKHX;
4946ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4947ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalMemoryFeatureFlagBitsKHX {
4948ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHX = 0x00000001,
4949ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHX = 0x00000002,
4950ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHX = 0x00000004,
4951ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
4952ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryFeatureFlagBitsKHX;
4953ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalMemoryFeatureFlagsKHX;
4954ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4955ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryPropertiesKHX {
4956ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryFeatureFlagsKHX       externalMemoryFeatures;
4957ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    exportFromImportedHandleTypes;
4958ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    compatibleHandleTypes;
4959ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryPropertiesKHX;
4960ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4961ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalImageFormatInfoKHX {
4962ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4963ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4964ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4965ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalImageFormatInfoKHX;
4966ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4967ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalImageFormatPropertiesKHX {
4968ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                  sType;
4969ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                            pNext;
4970ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryPropertiesKHX    externalMemoryProperties;
4971ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalImageFormatPropertiesKHX;
4972ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4973ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalBufferInfoKHX {
4974ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
4975ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
4976ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBufferCreateFlags                      flags;
4977ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBufferUsageFlags                       usage;
4978ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
4979ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalBufferInfoKHX;
4980ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4981ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalBufferPropertiesKHX {
4982ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                  sType;
4983ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                            pNext;
4984ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryPropertiesKHX    externalMemoryProperties;
4985ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalBufferPropertiesKHX;
4986ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4987ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceIDPropertiesKHX {
4988ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
4989ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
4990ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            deviceUUID[VK_UUID_SIZE];
4991ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            driverUUID[VK_UUID_SIZE];
4992ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint8_t            deviceLUID[VK_LUID_SIZE_KHX];
4993ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           deviceLUIDValid;
4994ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceIDPropertiesKHX;
4995ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4996ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4997ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo, VkExternalBufferPropertiesKHX* pExternalBufferProperties);
4998ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
4999ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5000ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHX(
5001ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
5002ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo,
5003ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalBufferPropertiesKHX*              pExternalBufferProperties);
5004ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5005ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5006ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory 1
5007ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_SPEC_VERSION 1
5008ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHX_external_memory"
5009ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_QUEUE_FAMILY_EXTERNAL_KHX      (~0U-1)
5010ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5011ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryImageCreateInfoKHX {
5012ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
5013ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
5014ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
5015ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryImageCreateInfoKHX;
5016ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5017ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalMemoryBufferCreateInfoKHX {
5018ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
5019ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
5020ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
5021ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalMemoryBufferCreateInfoKHX;
5022ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5023ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportMemoryAllocateInfoKHX {
5024ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                       sType;
5025ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                           pNext;
5026ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagsKHX    handleTypes;
5027ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportMemoryAllocateInfoKHX;
5028ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5029ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5030ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5031f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHX
5032ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_win32 1
5033ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
5034ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32"
5035ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5036ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportMemoryWin32HandleInfoKHX {
5037ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5038ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5039ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
5040ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                   handle;
5041ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportMemoryWin32HandleInfoKHX;
5042ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5043ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportMemoryWin32HandleInfoKHX {
5044ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
5045ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
5046ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
5047ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    DWORD                         dwAccess;
5048ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    LPCWSTR                       name;
5049ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportMemoryWin32HandleInfoKHX;
5050ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5051ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryWin32HandlePropertiesKHX {
5052ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5053ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5054ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryTypeBits;
5055ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryWin32HandlePropertiesKHX;
5056ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5057ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5058ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
5059ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
5060ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5061ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5062ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHX(
5063ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5064ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory                              memory,
5065ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5066ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE*                                     pHandle);
5067ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5068ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX(
5069ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5070ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5071ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                      handle,
5072ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryWin32HandlePropertiesKHX*           pMemoryWin32HandleProperties);
5073ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5074f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHX */
5075ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5076ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_memory_fd 1
5077ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
5078ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHX_external_memory_fd"
5079ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5080ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportMemoryFdInfoKHX {
5081ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5082ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5083ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX    handleType;
5084ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                      fd;
5085ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportMemoryFdInfoKHX;
5086ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5087ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMemoryFdPropertiesKHX {
5088ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5089ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5090ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           memoryTypeBits;
5091ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMemoryFdPropertiesKHX;
5092ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5093ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5094ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd);
5095ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int fd, VkMemoryFdPropertiesKHX* pMemoryFdProperties);
5096ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5097ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5098ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHX(
5099ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5100ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDeviceMemory                              memory,
5101ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5102ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int*                                        pFd);
5103ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5104ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHX(
5105ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5106ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalMemoryHandleTypeFlagBitsKHX       handleType,
5107ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                         fd,
5108ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMemoryFdPropertiesKHX*                    pMemoryFdProperties);
5109ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5110ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5111ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
5112ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_win32_keyed_mutex 1
5113ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_WIN32_KEYED_MUTEX_SPEC_VERSION 1
5114ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHX_win32_keyed_mutex"
5115ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5116ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkWin32KeyedMutexAcquireReleaseInfoKHX {
5117ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType          sType;
5118ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*              pNext;
5119ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                 acquireCount;
5120ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDeviceMemory*    pAcquireSyncs;
5121ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*          pAcquireKeys;
5122ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint32_t*          pAcquireTimeouts;
5123ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                 releaseCount;
5124ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkDeviceMemory*    pReleaseSyncs;
5125ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*          pReleaseKeys;
5126ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkWin32KeyedMutexAcquireReleaseInfoKHX;
5127ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5128ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5129ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
5130ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5131ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_capabilities 1
5132ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
5133ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_semaphore_capabilities"
5134ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5135ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5136ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalSemaphoreHandleTypeFlagBitsKHX {
5137ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
5138ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
5139ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
5140ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHX = 0x00000008,
5141ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHX = 0x00000010,
5142ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5143ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphoreHandleTypeFlagBitsKHX;
5144ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHX;
5145ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5146ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkExternalSemaphoreFeatureFlagBitsKHX {
5147ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHX = 0x00000001,
5148ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHX = 0x00000002,
5149ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
5150ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphoreFeatureFlagBitsKHX;
5151ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkExternalSemaphoreFeatureFlagsKHX;
5152ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5153ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceExternalSemaphoreInfoKHX {
5154ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                             sType;
5155ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pNext;
5156ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType;
5157ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceExternalSemaphoreInfoKHX;
5158ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5159ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExternalSemaphorePropertiesKHX {
5160ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5161ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*                                    pNext;
5162ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    exportFromImportedHandleTypes;
5163ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    compatibleHandleTypes;
5164ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreFeatureFlagsKHX       externalSemaphoreFeatures;
5165ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExternalSemaphorePropertiesKHX;
5166ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5167ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5168ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties);
5169ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5170ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5171ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHX(
5172ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPhysicalDevice                            physicalDevice,
5173ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo,
5174ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphorePropertiesKHX*           pExternalSemaphoreProperties);
5175ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5176ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5177ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore 1
5178ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
5179ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHX_external_semaphore"
5180ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5181ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportSemaphoreCreateInfoKHX {
5182ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5183ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5184ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    handleTypes;
5185ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportSemaphoreCreateInfoKHX;
5186ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5187ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5188ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5189ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHX
5190ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_win32 1
5191ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
5192ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHX_external_semaphore_win32"
5193ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5194ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportSemaphoreWin32HandleInfoKHX {
5195ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                          sType;
5196ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                              pNext;
5197ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                              semaphore;
5198ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagsKHX    handleType;
5199ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE                                   handle;
5200ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportSemaphoreWin32HandleInfoKHX;
5201ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5202ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkExportSemaphoreWin32HandleInfoKHX {
5203ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
5204ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
5205ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const SECURITY_ATTRIBUTES*    pAttributes;
5206ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    DWORD                         dwAccess;
5207ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    LPCWSTR                       name;
5208ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkExportSemaphoreWin32HandleInfoKHX;
5209ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5210ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkD3D12FenceSubmitInfoKHX {
5211ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5212ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*        pNext;
5213ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           waitSemaphoreValuesCount;
5214ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*    pWaitSemaphoreValues;
5215ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           signalSemaphoreValuesCount;
5216ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const uint64_t*    pSignalSemaphoreValues;
5217ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkD3D12FenceSubmitInfoKHX;
5218ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5219ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5220ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHX)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo);
5221ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
5222ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5223ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5224ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHX(
5225ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5226ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkImportSemaphoreWin32HandleInfoKHX*  pImportSemaphoreWin32HandleInfo);
5227ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5228ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHX(
5229ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5230ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore,
5231ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType,
5232ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    HANDLE*                                     pHandle);
5233ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5234ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHX */
5235ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5236ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_external_semaphore_fd 1
5237ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
5238ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHX_external_semaphore_fd"
5239ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5240ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkImportSemaphoreFdInfoKHX {
5241ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                             sType;
5242ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                 pNext;
5243ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore;
5244ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType;
5245ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int                                         fd;
5246ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkImportSemaphoreFdInfoKHX;
5247ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5248ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5249ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHX)(VkDevice device, const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo);
5250ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, int* pFd);
5251ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5252ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5253ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHX(
5254ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5255ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkImportSemaphoreFdInfoKHX*           pImportSemaphoreFdInfo);
5256ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5257ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHX(
5258ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDevice                                    device,
5259ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSemaphore                                 semaphore,
5260ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkExternalSemaphoreHandleTypeFlagBitsKHX    handleType,
5261ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    int*                                        pFd);
5262ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5263ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5264289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_device_generated_commands 1
5265289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
5266289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
5267289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5268289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
5269289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
5270289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5271289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5272289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsTokenTypeNVX {
5273289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
5274289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
5275289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
5276289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
5277289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
5278289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
5279289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
5280289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
5281289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
5282289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
5283289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
5284289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5285289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenTypeNVX;
5286289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5287289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryTypeNVX {
5288289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
5289289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
5290289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
5291289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
5292289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
5293289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
5294289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
5295289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
5296289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
5297289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryTypeNVX;
5298289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5299289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5300289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
5301289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
5302289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
5303289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
5304289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
5305289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5306289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutUsageFlagBitsNVX;
5307289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
5308289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5309289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef enum VkObjectEntryUsageFlagBitsNVX {
5310289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
5311289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
5312289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
5313289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectEntryUsageFlagBitsNVX;
5314289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkFlags VkObjectEntryUsageFlagsNVX;
5315289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5316289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsFeaturesNVX {
5317289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5318289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5319289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBool32           computeBindingPointSupport;
5320289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsFeaturesNVX;
5321289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5322289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkDeviceGeneratedCommandsLimitsNVX {
5323289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType    sType;
5324289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*        pNext;
5325289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxIndirectCommandsLayoutTokenCount;
5326289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           maxObjectEntryCounts;
5327289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceCountBufferOffsetAlignment;
5328289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minSequenceIndexBufferOffsetAlignment;
5329289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t           minCommandsTokenBufferOffsetAlignment;
5330289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkDeviceGeneratedCommandsLimitsNVX;
5331289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5332289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsTokenNVX {
5333289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5334289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                          buffer;
5335289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                      offset;
5336289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsTokenNVX;
5337289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5338289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutTokenNVX {
5339289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsTokenTypeNVX    tokenType;
5340289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          bindingUnit;
5341289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          dynamicCount;
5342289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                          divisor;
5343289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutTokenNVX;
5344289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5345289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkIndirectCommandsLayoutCreateInfoNVX {
5346289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                            sType;
5347289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                                pNext;
5348289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineBindPoint                        pipelineBindPoint;
5349289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
5350289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                   tokenCount;
5351289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
5352289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkIndirectCommandsLayoutCreateInfoNVX;
5353289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5354289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdProcessCommandsInfoNVX {
5355289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5356289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5357289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                     objectTable;
5358289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
5359289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             indirectCommandsTokenCount;
5360289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
5361289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSequencesCount;
5362289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                      targetCommandBuffer;
5363289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesCountBuffer;
5364289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesCountOffset;
5365289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                             sequencesIndexBuffer;
5366289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceSize                         sequencesIndexOffset;
5367289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdProcessCommandsInfoNVX;
5368289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5369289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkCmdReserveSpaceForCommandsInfoNVX {
5370289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                sType;
5371289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                    pNext;
5372289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX               objectTable;
5373289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
5374289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                       maxSequencesCount;
5375289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkCmdReserveSpaceForCommandsInfoNVX;
5376289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5377289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableCreateInfoNVX {
5378289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkStructureType                      sType;
5379289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const void*                          pNext;
5380289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             objectCount;
5381289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
5382289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                      pObjectEntryCounts;
5383289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
5384289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxUniformBuffersPerDescriptor;
5385289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageBuffersPerDescriptor;
5386289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxStorageImagesPerDescriptor;
5387289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxSampledImagesPerDescriptor;
5388289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                             maxPipelineLayouts;
5389289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableCreateInfoNVX;
5390289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5391289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableEntryNVX {
5392289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5393289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5394289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableEntryNVX;
5395289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5396289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePipelineEntryNVX {
5397289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5398289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5399289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipeline                    pipeline;
5400289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePipelineEntryNVX;
5401289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5402289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableDescriptorSetEntryNVX {
5403289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5404289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5405289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5406289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDescriptorSet               descriptorSet;
5407289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableDescriptorSetEntryNVX;
5408289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5409289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableVertexBufferEntryNVX {
5410289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5411289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5412289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
5413289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableVertexBufferEntryNVX;
5414289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5415289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTableIndexBufferEntryNVX {
5416289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5417289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5418289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkBuffer                      buffer;
541977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkIndexType                   indexType;
5420289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTableIndexBufferEntryNVX;
5421289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5422289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef struct VkObjectTablePushConstantEntryNVX {
5423289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryTypeNVX          type;
5424289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectEntryUsageFlagsNVX    flags;
5425289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPipelineLayout              pipelineLayout;
5426289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkShaderStageFlags            stageFlags;
5427289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes} VkObjectTablePushConstantEntryNVX;
5428289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5429289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5430289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
5431289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
5432289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
5433289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
5434289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
5435289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
5436289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
5437289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
5438289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbestypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
5439289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5440289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#ifndef VK_NO_PROTOTYPES
5441289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
5442289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5443289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
5444289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5445289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
5446289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkCommandBuffer                             commandBuffer,
5447289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
5448289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5449289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
5450289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5451289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
5452289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5453289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
5454289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5455289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
5456289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5457289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
5458289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5459289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5460289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
5461289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5462289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableCreateInfoNVX*           pCreateInfo,
5463289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator,
5464289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX*                           pObjectTable);
5465289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5466289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
5467289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5468289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5469289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkAllocationCallbacks*                pAllocator);
5470289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5471289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
5472289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5473289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5474289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5475289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
5476289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5477289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5478289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
5479289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDevice                                    device,
5480289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkObjectTableNVX                            objectTable,
5481289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    uint32_t                                    objectCount,
5482289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
5483289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    const uint32_t*                             pObjectIndices);
5484289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5485289cb79d444c385185e4f357d3b2fe67a958e932Chris ForbesVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
5486289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkPhysicalDevice                            physicalDevice,
5487289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
5488289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
5489289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes#endif
5490289cb79d444c385185e4f357d3b2fe67a958e932Chris Forbes
5491ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_clip_space_w_scaling 1
5492ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
5493ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
5494ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5495ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportWScalingNV {
5496ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    xcoeff;
5497ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    float    ycoeff;
5498ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportWScalingNV;
5499ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5500ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportWScalingStateCreateInfoNV {
5501ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                sType;
5502ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                    pNext;
5503ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32                       viewportWScalingEnable;
5504ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                       viewportCount;
5505ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*    pViewportWScalings;
5506ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportWScalingStateCreateInfoNV;
5507ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5508ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5509ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
5510ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5511ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5512ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
5513ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5514ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstViewport,
5515ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    viewportCount,
5516ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportWScalingNV*                 pViewportWScalings);
5517ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5518ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
551977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_direct_mode_display 1
552077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
552177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
552277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
552377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
552477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
552577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
552677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
552777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
552877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
552977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
553077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
553177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
553277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_acquire_xlib_display 1
553377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#include <X11/extensions/Xrandr.h>
553477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
553577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
553677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
553777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
553877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
553977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
554077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
554177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
554277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
554377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
554477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
554577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display);
554677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
554777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
554877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
554977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    Display*                                    dpy,
555077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    RROutput                                    rrOutput,
555177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR*                               pDisplay);
555277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
555377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
555477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
555577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_surface_counter 1
555677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
555777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
555877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
555977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
556077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkSurfaceCounterFlagBitsEXT {
556177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
556277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
556377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCounterFlagBitsEXT;
556477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkFlags VkSurfaceCounterFlagsEXT;
556577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
556677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSurfaceCapabilities2EXT {
556777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType                  sType;
556877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    void*                            pNext;
556977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         minImageCount;
557077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageCount;
557177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       currentExtent;
557277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       minImageExtent;
557377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkExtent2D                       maxImageExtent;
557477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint32_t                         maxImageArrayLayers;
557577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagsKHR       supportedTransforms;
557677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceTransformFlagBitsKHR    currentTransform;
557777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
557877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkImageUsageFlags                supportedUsageFlags;
557977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
558077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSurfaceCapabilities2EXT;
558177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
558477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
558577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
558677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
558777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkPhysicalDevice                            physicalDevice,
558877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceKHR                                surface,
558977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
559077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
559177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_display_control 1
559377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
559477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
559577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
559777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayPowerStateEXT {
559877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
559977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
560077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_ON_EXT = 2,
560177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
560277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
560377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
560477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
560577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerStateEXT;
560677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
560777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDeviceEventTypeEXT {
560877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
560977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
561077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
561177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
561277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
561377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventTypeEXT;
561477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
561577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef enum VkDisplayEventTypeEXT {
561677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
561777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
561877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
561977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse 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),
562077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
562177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventTypeEXT;
562277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
562377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayPowerInfoEXT {
562477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType           sType;
562577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*               pNext;
562677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayPowerStateEXT    powerState;
562777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayPowerInfoEXT;
562877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
562977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDeviceEventInfoEXT {
563077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType         sType;
563177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*             pNext;
563277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDeviceEventTypeEXT    deviceEvent;
563377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDeviceEventInfoEXT;
563477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
563577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkDisplayEventInfoEXT {
563677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType          sType;
563777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*              pNext;
563877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayEventTypeEXT    displayEvent;
563977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkDisplayEventInfoEXT;
564077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
564177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef struct VkSwapchainCounterCreateInfoEXT {
564277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkStructureType             sType;
564377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const void*                 pNext;
564477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagsEXT    surfaceCounters;
564577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall} VkSwapchainCounterCreateInfoEXT;
564677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
564777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
564877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
564977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
565077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
565177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
565277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
565377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#ifndef VK_NO_PROTOTYPES
565477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
565577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
565677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
565777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
565877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
565977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
566077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
566177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
566277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
566377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
566477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
566577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
566677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
566777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDisplayKHR                                display,
566877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
566977ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    const VkAllocationCallbacks*                pAllocator,
567077ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkFence*                                    pFence);
567177ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
567277ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
567377ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkDevice                                    device,
567477ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSwapchainKHR                              swapchain,
567577ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    VkSurfaceCounterFlagBitsEXT                 counter,
567677ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall    uint64_t*                                   pCounterValue);
567777ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall#endif
567877ad05be8fa7f4d63b384cc134a55e25731cdaf6Jesse Hall
5679889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_display_timing 1
5680889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
5681889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
5682889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5683889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkRefreshCycleDurationGOOGLE {
5684889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    refreshDuration;
5685889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkRefreshCycleDurationGOOGLE;
5686889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5687889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPastPresentationTimingGOOGLE {
5688889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
5689889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
5690889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    actualPresentTime;
5691889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    earliestPresentTime;
5692889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    presentMargin;
5693889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPastPresentationTimingGOOGLE;
5694889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5695889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimeGOOGLE {
5696889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t    presentID;
5697889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint64_t    desiredPresentTime;
5698889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimeGOOGLE;
5699889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5700889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef struct VkPresentTimesInfoGOOGLE {
5701889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkStructureType               sType;
5702889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const void*                   pNext;
5703889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t                      swapchainCount;
5704889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    const VkPresentTimeGOOGLE*    pTimes;
5705889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall} VkPresentTimesInfoGOOGLE;
5706889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5707889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5708889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
5709889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
5710889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5711889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#ifndef VK_NO_PROTOTYPES
5712889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
5713889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
5714889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
5715889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
5716889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5717889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
5718889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkDevice                                    device,
5719889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkSwapchainKHR                              swapchain,
5720889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    uint32_t*                                   pPresentationTimingCount,
5721889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall    VkPastPresentationTimingGOOGLE*             pPresentationTimings);
5722889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall#endif
5723889cd9aa94a6b0a8b90116ad7b9c6d70ceeaa5e9Jesse Hall
5724ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_sample_mask_override_coverage 1
5725ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
5726ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
5727ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5728ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5729ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_geometry_shader_passthrough 1
5730ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
5731ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
5732ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5733ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5734ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_array2 1
5735ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
5736ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
5737ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5738ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5739ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_multiview_per_view_attributes 1
5740ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
5741ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
5742ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5743ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5744ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5745ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    void*              pNext;
5746ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkBool32           perViewPositionAllComponents;
5747ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
5748ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5749ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5750ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5751ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_viewport_swizzle 1
5752ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
5753ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
5754ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5755ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5756ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkViewportCoordinateSwizzleNV {
5757ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
5758ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
5759ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
5760ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
5761ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
5762ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
5763ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
5764ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
5765ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
5766ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
5767ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
5768ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
5769ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportCoordinateSwizzleNV;
5770ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5771ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
5772ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5773ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkViewportSwizzleNV {
5774ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    x;
5775ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    y;
5776ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    z;
5777ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkViewportCoordinateSwizzleNV    w;
5778ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkViewportSwizzleNV;
5779ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5780ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
5781ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                sType;
5782ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                    pNext;
5783ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
5784ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                       viewportCount;
5785ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkViewportSwizzleNV*                     pViewportSwizzles;
5786ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineViewportSwizzleStateCreateInfoNV;
5787ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5788ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5789ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5790ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_discard_rectangles 1
5791ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
5792ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
5793ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5794ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5795ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef enum VkDiscardRectangleModeEXT {
5796ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
5797ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
5798ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5799ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
5800ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
5801ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
5802ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkDiscardRectangleModeEXT;
5803ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5804ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
5805ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5806ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
5807ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType    sType;
5808f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall    void*              pNext;
5809ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t           maxDiscardRectangles;
5810ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
5811ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5812ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
5813ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                                  sType;
5814ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                                      pNext;
5815ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
5816ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkDiscardRectangleModeEXT                        discardRectangleMode;
5817ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                         discardRectangleCount;
5818ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                                  pDiscardRectangles;
5819ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkPipelineDiscardRectangleStateCreateInfoEXT;
5820ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5821ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5822ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
5823ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5824ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5825ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
5826ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkCommandBuffer                             commandBuffer,
5827ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    firstDiscardRectangle,
5828ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    uint32_t                                    discardRectangleCount,
5829ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkRect2D*                             pDiscardRectangles);
5830ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5831ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5832e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_swapchain_colorspace 1
5833edc88e78a30ca412a0a085a21f1fc1be7be5081fCourtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
5834e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
5835e278daf850a664a1f15c760c64a74d3649b6f812Courtney Goeltzenleuchter
5836f5ad48b5a71611751021c2ee9037c703cc946b4bJesse Hall
5837d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_hdr_metadata 1
5838fdc8ab300de5306a26b7d9c7f12fe3fff41dc913Jesse Hall#define VK_EXT_HDR_METADATA_SPEC_VERSION  1
5839d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
5840d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5841d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkXYColorEXT {
5842d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    x;
5843d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float    y;
5844d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkXYColorEXT;
5845d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5846d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef struct VkHdrMetadataEXT {
5847d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkStructureType    sType;
5848d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const void*        pNext;
5849d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryRed;
5850d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryGreen;
5851d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       displayPrimaryBlue;
5852d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkXYColorEXT       whitePoint;
5853d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxLuminance;
5854d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              minLuminance;
5855d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxContentLightLevel;
5856d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    float              maxFrameAverageLightLevel;
5857d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter} VkHdrMetadataEXT;
5858d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5859d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5860d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchtertypedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
5861d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5862d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#ifndef VK_NO_PROTOTYPES
5863d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney GoeltzenleuchterVKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
5864d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    VkDevice                                    device,
5865d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    uint32_t                                    swapchainCount,
5866d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkSwapchainKHR*                       pSwapchains,
5867d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter    const VkHdrMetadataEXT*                     pMetadata);
5868d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter#endif
5869d634c483bcbd564acd81dcf5d15fc5fa8ab410f4Courtney Goeltzenleuchter
5870ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_IOS_MVK
5871ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_ios_surface 1
5872ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_SPEC_VERSION   2
5873ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
5874ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5875ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkIOSSurfaceCreateFlagsMVK;
5876ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5877ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkIOSSurfaceCreateInfoMVK {
5878ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType               sType;
5879ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pNext;
5880ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkIOSSurfaceCreateFlagsMVK    flags;
5881ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                   pView;
5882ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkIOSSurfaceCreateInfoMVK;
5883ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5884ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5885ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
5886ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5887ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5888ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
5889ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
5890ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkIOSSurfaceCreateInfoMVK*            pCreateInfo,
5891ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
5892ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
5893ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5894ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_IOS_MVK */
5895ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5896ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifdef VK_USE_PLATFORM_MACOS_MVK
5897ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_macos_surface 1
5898ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
5899ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
5900ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5901ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
5902ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5903ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef struct VkMacOSSurfaceCreateInfoMVK {
5904ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkStructureType                 sType;
5905ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pNext;
5906ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkMacOSSurfaceCreateFlagsMVK    flags;
5907ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const void*                     pView;
5908ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall} VkMacOSSurfaceCreateInfoMVK;
5909ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5910ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5911ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Halltypedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
5912ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
5913ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#ifndef VK_NO_PROTOTYPES
5914ad250840766ea76def08c0d9f0b04a09c32dab79Jesse HallVKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
5915ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkInstance                                  instance,
5916ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkMacOSSurfaceCreateInfoMVK*          pCreateInfo,
5917ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    const VkAllocationCallbacks*                pAllocator,
5918ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall    VkSurfaceKHR*                               pSurface);
5919ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif
5920ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall#endif /* VK_USE_PLATFORM_MACOS_MVK */
5921ad250840766ea76def08c0d9f0b04a09c32dab79Jesse Hall
592204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
592304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
592404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
592504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
592604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
5927