Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / scripts / src / vulkan_core.h
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3
4 /*
5 ** Copyright (c) 2015-2019 The Khronos Group Inc.
6 **
7 ** Licensed under the Apache License, Version 2.0 (the "License");
8 ** you may not use this file except in compliance with the License.
9 ** You may obtain a copy of the License at
10 **
11 **     http://www.apache.org/licenses/LICENSE-2.0
12 **
13 ** Unless required by applicable law or agreed to in writing, software
14 ** distributed under the License is distributed on an "AS IS" BASIS,
15 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 ** See the License for the specific language governing permissions and
17 ** limitations under the License.
18 */
19
20 /*
21 ** This header is generated from the Khronos Vulkan XML API Registry.
22 **
23 */
24
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30
31
32 #define VK_VERSION_1_0 1
33 #include "vk_platform.h"
34 #define VK_MAKE_VERSION(major, minor, patch) \
35     (((major) << 22) | ((minor) << 12) | (patch))
36
37 // 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.
38 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
39
40 // Vulkan 1.0 version number
41 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
42
43 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
44 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
45 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
46 // Version of this file
47 #define VK_HEADER_VERSION 124
48
49
50 #define VK_NULL_HANDLE 0
51
52
53 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
54
55
56 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
57 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
58         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
59 #else
60         #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
61 #endif
62 #endif
63
64 typedef uint32_t VkFlags;
65 typedef uint32_t VkBool32;
66 typedef uint64_t VkDeviceSize;
67 typedef uint32_t VkSampleMask;
68 VK_DEFINE_HANDLE(VkInstance)
69 VK_DEFINE_HANDLE(VkPhysicalDevice)
70 VK_DEFINE_HANDLE(VkDevice)
71 VK_DEFINE_HANDLE(VkQueue)
72 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
73 VK_DEFINE_HANDLE(VkCommandBuffer)
74 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
76 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
88 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
89 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
92 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
93 #define VK_LOD_CLAMP_NONE                 1000.0f
94 #define VK_REMAINING_MIP_LEVELS           (~0U)
95 #define VK_REMAINING_ARRAY_LAYERS         (~0U)
96 #define VK_WHOLE_SIZE                     (~0ULL)
97 #define VK_ATTACHMENT_UNUSED              (~0U)
98 #define VK_TRUE                           1
99 #define VK_FALSE                          0
100 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
101 #define VK_SUBPASS_EXTERNAL               (~0U)
102 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
103 #define VK_UUID_SIZE                      16
104 #define VK_MAX_MEMORY_TYPES               32
105 #define VK_MAX_MEMORY_HEAPS               16
106 #define VK_MAX_EXTENSION_NAME_SIZE        256
107 #define VK_MAX_DESCRIPTION_SIZE           256
108
109 typedef enum VkPipelineCacheHeaderVersion {
110     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
111     VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
112     VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
113     VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
114     VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
115 } VkPipelineCacheHeaderVersion;
116
117 typedef enum VkResult {
118     VK_SUCCESS = 0,
119     VK_NOT_READY = 1,
120     VK_TIMEOUT = 2,
121     VK_EVENT_SET = 3,
122     VK_EVENT_RESET = 4,
123     VK_INCOMPLETE = 5,
124     VK_ERROR_OUT_OF_HOST_MEMORY = -1,
125     VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
126     VK_ERROR_INITIALIZATION_FAILED = -3,
127     VK_ERROR_DEVICE_LOST = -4,
128     VK_ERROR_MEMORY_MAP_FAILED = -5,
129     VK_ERROR_LAYER_NOT_PRESENT = -6,
130     VK_ERROR_EXTENSION_NOT_PRESENT = -7,
131     VK_ERROR_FEATURE_NOT_PRESENT = -8,
132     VK_ERROR_INCOMPATIBLE_DRIVER = -9,
133     VK_ERROR_TOO_MANY_OBJECTS = -10,
134     VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
135     VK_ERROR_FRAGMENTED_POOL = -12,
136     VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
137     VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
138     VK_ERROR_FRAGMENTATION = -1000161000,
139     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
140     VK_ERROR_SURFACE_LOST_KHR = -1000000000,
141     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
142     VK_SUBOPTIMAL_KHR = 1000001003,
143     VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
144     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
145     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
146     VK_ERROR_INVALID_SHADER_NV = -1000012000,
147     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
148     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
149     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
150     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
151     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
152     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
153     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
154     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
155     VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
156     VK_RESULT_END_RANGE = VK_INCOMPLETE,
157     VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
158     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
159 } VkResult;
160
161 typedef enum VkStructureType {
162     VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
163     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
164     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
165     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
166     VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
167     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
168     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
169     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
170     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
171     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
172     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
173     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
174     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
175     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
176     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
177     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
178     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
179     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
180     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
181     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
182     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
183     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
184     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
185     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
186     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
187     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
188     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
189     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
190     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
191     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
192     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
193     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
194     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
195     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
196     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
197     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
198     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
199     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
200     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
201     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
202     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
203     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
204     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
205     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
206     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
207     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
208     VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
209     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
210     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
211     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
212     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
213     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
214     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
215     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
216     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
217     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
218     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
219     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
220     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
221     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
222     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
223     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
224     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
225     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
226     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
227     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
228     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
229     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
230     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
231     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
232     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
233     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
234     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
235     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
236     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
237     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
238     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
239     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
240     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
241     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
242     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
243     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
244     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
245     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
246     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
247     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
248     VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
249     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
250     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
251     VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
252     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
253     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
254     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
255     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
256     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
257     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
258     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
259     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
260     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
261     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
262     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
263     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
264     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
265     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
266     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
267     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
268     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
269     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
270     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
271     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
272     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
273     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
274     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
275     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
276     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
277     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
278     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
279     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
280     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
281     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
282     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
283     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
284     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
285     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
286     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
287     VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
288     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
289     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
290     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
291     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
292     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
293     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
294     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
295     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
296     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
297     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
298     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
299     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
300     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
301     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
302     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
303     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
304     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
305     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
306     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
307     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
308     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
309     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
311     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
312     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
313     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
314     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
315     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
316     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
317     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
318     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
319     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
320     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
321     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
322     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
323     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
324     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
325     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
326     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
327     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
328     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
329     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
330     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
331     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
332     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
333     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
334     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
335     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
336     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
337     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
338     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
339     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
340     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
341     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
342     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
343     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
344     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
345     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
346     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
347     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
348     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
349     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
350     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
351     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
352     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
353     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
354     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
355     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
356     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
357     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
358     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
359     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
360     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
361     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
362     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
363     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
364     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
365     VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
366     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
367     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
368     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
369     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
370     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
371     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
372     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
373     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
374     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
375     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
376     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
377     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
378     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
379     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
380     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
381     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
382     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
383     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
384     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
385     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
386     VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
387     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
388     VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
389     VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
390     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
391     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
392     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
393     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
394     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
395     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
396     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
397     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
398     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
399     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
400     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
401     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
402     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
403     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
404     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
405     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
406     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
407     VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
408     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
409     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
410     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
411     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
412     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
413     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
414     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
415     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
416     VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
417     VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
418     VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
419     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
420     VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
421     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
422     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
423     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
424     VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
425     VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
426     VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
427     VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
428     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
429     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
430     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
431     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
432     VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
433     VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
434     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
435     VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
436     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
437     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
438     VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
439     VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
440     VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
441     VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
442     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
443     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
444     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
445     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
446     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
447     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
448     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
449     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
450     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
451     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
452     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
453     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
454     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
455     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
456     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
457     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
458     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
459     VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
460     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
461     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
462     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
463     VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
464     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
465     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
466     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
467     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
468     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
469     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
470     VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
471     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
472     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
473     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
474     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
475     VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
476     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
477     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
478     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
479     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
480     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
481     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
482     VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
483     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
484     VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
485     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
486     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
487     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
488     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
489     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
490     VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
491     VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
492     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
493     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
494     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
495     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
496     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
497     VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
498     VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
499     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
500     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
501     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
502     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
503     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
504     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
505     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
506     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
507     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
508     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
509     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000,
510     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
511     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
512     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
513     VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
514     VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
515     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
516     VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
517     VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
518     VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
519     VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
520     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
521     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
522     VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
523     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
524     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
525     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
526     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
527     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
528     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
529     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
530     VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
531     VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
532     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
533     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
534     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
535     VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
536     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
537     VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
538     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
539     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
540     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
541     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
542     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
543     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
544     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
545     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
546     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
547     VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
548     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
549     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
550     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
551     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
552     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
553     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
554     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
555     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
556     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
557     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
558     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
559     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
560     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
561     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
562     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
563     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
564     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
565     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
566     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
567     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
568     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
569     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
570     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
571     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
572     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
573     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
574     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
575     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
576     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
577     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
578     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
579     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
580     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
581     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
582     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
583     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
584     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
585     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
586     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
587     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
588     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
589     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
590     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
591     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
592     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
593     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
594     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
595     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
596     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
597     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
598     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
599     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
600     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
601     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
602     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
603     VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
604     VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
605     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
606     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
607     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
608     VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
609     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
610     VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
611     VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
612     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
613     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
614     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
615     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
616     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
617     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
618     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
619     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
620     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
621     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
622     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
623     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
624     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
625     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
626     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
627     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
628     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
629     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
630     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
631     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
632     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
633     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
634     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
635     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
636     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
637     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
638     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
639     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
640     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
641     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
642     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
643     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
644     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
645     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
646     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
647     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
648     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
649     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
650     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
651     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
652     VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
653     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
654     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
655     VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
656     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
657     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
658     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
659     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
660     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
661     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
662     VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
663     VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
664     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
665     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
666     VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
667     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
668     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
669     VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
670     VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
671     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
672     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
673     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
674     VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
675     VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
676     VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
677     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
678 } VkStructureType;
679
680 typedef enum VkSystemAllocationScope {
681     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
682     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
683     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
684     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
685     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
686     VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
687     VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
688     VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
689     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
690 } VkSystemAllocationScope;
691
692 typedef enum VkInternalAllocationType {
693     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
694     VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
695     VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
696     VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
697     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
698 } VkInternalAllocationType;
699
700 typedef enum VkFormat {
701     VK_FORMAT_UNDEFINED = 0,
702     VK_FORMAT_R4G4_UNORM_PACK8 = 1,
703     VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
704     VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
705     VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
706     VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
707     VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
708     VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
709     VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
710     VK_FORMAT_R8_UNORM = 9,
711     VK_FORMAT_R8_SNORM = 10,
712     VK_FORMAT_R8_USCALED = 11,
713     VK_FORMAT_R8_SSCALED = 12,
714     VK_FORMAT_R8_UINT = 13,
715     VK_FORMAT_R8_SINT = 14,
716     VK_FORMAT_R8_SRGB = 15,
717     VK_FORMAT_R8G8_UNORM = 16,
718     VK_FORMAT_R8G8_SNORM = 17,
719     VK_FORMAT_R8G8_USCALED = 18,
720     VK_FORMAT_R8G8_SSCALED = 19,
721     VK_FORMAT_R8G8_UINT = 20,
722     VK_FORMAT_R8G8_SINT = 21,
723     VK_FORMAT_R8G8_SRGB = 22,
724     VK_FORMAT_R8G8B8_UNORM = 23,
725     VK_FORMAT_R8G8B8_SNORM = 24,
726     VK_FORMAT_R8G8B8_USCALED = 25,
727     VK_FORMAT_R8G8B8_SSCALED = 26,
728     VK_FORMAT_R8G8B8_UINT = 27,
729     VK_FORMAT_R8G8B8_SINT = 28,
730     VK_FORMAT_R8G8B8_SRGB = 29,
731     VK_FORMAT_B8G8R8_UNORM = 30,
732     VK_FORMAT_B8G8R8_SNORM = 31,
733     VK_FORMAT_B8G8R8_USCALED = 32,
734     VK_FORMAT_B8G8R8_SSCALED = 33,
735     VK_FORMAT_B8G8R8_UINT = 34,
736     VK_FORMAT_B8G8R8_SINT = 35,
737     VK_FORMAT_B8G8R8_SRGB = 36,
738     VK_FORMAT_R8G8B8A8_UNORM = 37,
739     VK_FORMAT_R8G8B8A8_SNORM = 38,
740     VK_FORMAT_R8G8B8A8_USCALED = 39,
741     VK_FORMAT_R8G8B8A8_SSCALED = 40,
742     VK_FORMAT_R8G8B8A8_UINT = 41,
743     VK_FORMAT_R8G8B8A8_SINT = 42,
744     VK_FORMAT_R8G8B8A8_SRGB = 43,
745     VK_FORMAT_B8G8R8A8_UNORM = 44,
746     VK_FORMAT_B8G8R8A8_SNORM = 45,
747     VK_FORMAT_B8G8R8A8_USCALED = 46,
748     VK_FORMAT_B8G8R8A8_SSCALED = 47,
749     VK_FORMAT_B8G8R8A8_UINT = 48,
750     VK_FORMAT_B8G8R8A8_SINT = 49,
751     VK_FORMAT_B8G8R8A8_SRGB = 50,
752     VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
753     VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
754     VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
755     VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
756     VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
757     VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
758     VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
759     VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
760     VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
761     VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
762     VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
763     VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
764     VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
765     VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
766     VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
767     VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
768     VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
769     VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
770     VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
771     VK_FORMAT_R16_UNORM = 70,
772     VK_FORMAT_R16_SNORM = 71,
773     VK_FORMAT_R16_USCALED = 72,
774     VK_FORMAT_R16_SSCALED = 73,
775     VK_FORMAT_R16_UINT = 74,
776     VK_FORMAT_R16_SINT = 75,
777     VK_FORMAT_R16_SFLOAT = 76,
778     VK_FORMAT_R16G16_UNORM = 77,
779     VK_FORMAT_R16G16_SNORM = 78,
780     VK_FORMAT_R16G16_USCALED = 79,
781     VK_FORMAT_R16G16_SSCALED = 80,
782     VK_FORMAT_R16G16_UINT = 81,
783     VK_FORMAT_R16G16_SINT = 82,
784     VK_FORMAT_R16G16_SFLOAT = 83,
785     VK_FORMAT_R16G16B16_UNORM = 84,
786     VK_FORMAT_R16G16B16_SNORM = 85,
787     VK_FORMAT_R16G16B16_USCALED = 86,
788     VK_FORMAT_R16G16B16_SSCALED = 87,
789     VK_FORMAT_R16G16B16_UINT = 88,
790     VK_FORMAT_R16G16B16_SINT = 89,
791     VK_FORMAT_R16G16B16_SFLOAT = 90,
792     VK_FORMAT_R16G16B16A16_UNORM = 91,
793     VK_FORMAT_R16G16B16A16_SNORM = 92,
794     VK_FORMAT_R16G16B16A16_USCALED = 93,
795     VK_FORMAT_R16G16B16A16_SSCALED = 94,
796     VK_FORMAT_R16G16B16A16_UINT = 95,
797     VK_FORMAT_R16G16B16A16_SINT = 96,
798     VK_FORMAT_R16G16B16A16_SFLOAT = 97,
799     VK_FORMAT_R32_UINT = 98,
800     VK_FORMAT_R32_SINT = 99,
801     VK_FORMAT_R32_SFLOAT = 100,
802     VK_FORMAT_R32G32_UINT = 101,
803     VK_FORMAT_R32G32_SINT = 102,
804     VK_FORMAT_R32G32_SFLOAT = 103,
805     VK_FORMAT_R32G32B32_UINT = 104,
806     VK_FORMAT_R32G32B32_SINT = 105,
807     VK_FORMAT_R32G32B32_SFLOAT = 106,
808     VK_FORMAT_R32G32B32A32_UINT = 107,
809     VK_FORMAT_R32G32B32A32_SINT = 108,
810     VK_FORMAT_R32G32B32A32_SFLOAT = 109,
811     VK_FORMAT_R64_UINT = 110,
812     VK_FORMAT_R64_SINT = 111,
813     VK_FORMAT_R64_SFLOAT = 112,
814     VK_FORMAT_R64G64_UINT = 113,
815     VK_FORMAT_R64G64_SINT = 114,
816     VK_FORMAT_R64G64_SFLOAT = 115,
817     VK_FORMAT_R64G64B64_UINT = 116,
818     VK_FORMAT_R64G64B64_SINT = 117,
819     VK_FORMAT_R64G64B64_SFLOAT = 118,
820     VK_FORMAT_R64G64B64A64_UINT = 119,
821     VK_FORMAT_R64G64B64A64_SINT = 120,
822     VK_FORMAT_R64G64B64A64_SFLOAT = 121,
823     VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
824     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
825     VK_FORMAT_D16_UNORM = 124,
826     VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
827     VK_FORMAT_D32_SFLOAT = 126,
828     VK_FORMAT_S8_UINT = 127,
829     VK_FORMAT_D16_UNORM_S8_UINT = 128,
830     VK_FORMAT_D24_UNORM_S8_UINT = 129,
831     VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
832     VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
833     VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
834     VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
835     VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
836     VK_FORMAT_BC2_UNORM_BLOCK = 135,
837     VK_FORMAT_BC2_SRGB_BLOCK = 136,
838     VK_FORMAT_BC3_UNORM_BLOCK = 137,
839     VK_FORMAT_BC3_SRGB_BLOCK = 138,
840     VK_FORMAT_BC4_UNORM_BLOCK = 139,
841     VK_FORMAT_BC4_SNORM_BLOCK = 140,
842     VK_FORMAT_BC5_UNORM_BLOCK = 141,
843     VK_FORMAT_BC5_SNORM_BLOCK = 142,
844     VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
845     VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
846     VK_FORMAT_BC7_UNORM_BLOCK = 145,
847     VK_FORMAT_BC7_SRGB_BLOCK = 146,
848     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
849     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
850     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
851     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
852     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
853     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
854     VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
855     VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
856     VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
857     VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
858     VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
859     VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
860     VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
861     VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
862     VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
863     VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
864     VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
865     VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
866     VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
867     VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
868     VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
869     VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
870     VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
871     VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
872     VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
873     VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
874     VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
875     VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
876     VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
877     VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
878     VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
879     VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
880     VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
881     VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
882     VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
883     VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
884     VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
885     VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
886     VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
887     VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
888     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
889     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
890     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
891     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
892     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
893     VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
894     VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
895     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
896     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
897     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
898     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
899     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
900     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
901     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
902     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
903     VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
904     VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
905     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
906     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
907     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
908     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
909     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
910     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
911     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
912     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
913     VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
914     VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
915     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
916     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
917     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
918     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
919     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
920     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
921     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
922     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
923     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
924     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
925     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
926     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
927     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
928     VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000,
929     VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,
930     VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,
931     VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,
932     VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,
933     VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,
934     VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,
935     VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,
936     VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,
937     VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,
938     VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,
939     VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,
940     VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,
941     VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,
942     VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
943     VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
944     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
945     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
946     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
947     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
948     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
949     VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
950     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
951     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
952     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
953     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
954     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
955     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
956     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
957     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
958     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
959     VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
960     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
961     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
962     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
963     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
964     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
965     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
966     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
967     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
968     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
969     VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
970     VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
971     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
972     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
973     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
974     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
975     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
976     VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
977     VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
978     VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
979     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
980 } VkFormat;
981
982 typedef enum VkImageType {
983     VK_IMAGE_TYPE_1D = 0,
984     VK_IMAGE_TYPE_2D = 1,
985     VK_IMAGE_TYPE_3D = 2,
986     VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
987     VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
988     VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
989     VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
990 } VkImageType;
991
992 typedef enum VkImageTiling {
993     VK_IMAGE_TILING_OPTIMAL = 0,
994     VK_IMAGE_TILING_LINEAR = 1,
995     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
996     VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
997     VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
998     VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
999     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1000 } VkImageTiling;
1001
1002 typedef enum VkPhysicalDeviceType {
1003     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1004     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1005     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1006     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1007     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1008     VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
1009     VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
1010     VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
1011     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1012 } VkPhysicalDeviceType;
1013
1014 typedef enum VkQueryType {
1015     VK_QUERY_TYPE_OCCLUSION = 0,
1016     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1017     VK_QUERY_TYPE_TIMESTAMP = 2,
1018     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1019     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1020     VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1021     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1022     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
1023     VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
1024     VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
1025     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1026 } VkQueryType;
1027
1028 typedef enum VkSharingMode {
1029     VK_SHARING_MODE_EXCLUSIVE = 0,
1030     VK_SHARING_MODE_CONCURRENT = 1,
1031     VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
1032     VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
1033     VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
1034     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1035 } VkSharingMode;
1036
1037 typedef enum VkImageLayout {
1038     VK_IMAGE_LAYOUT_UNDEFINED = 0,
1039     VK_IMAGE_LAYOUT_GENERAL = 1,
1040     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1041     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1042     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1043     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1044     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1045     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1046     VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1047     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1048     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1049     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1050     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1051     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1052     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1053     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1054     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1055     VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
1056     VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1057     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1058     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1059     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1060     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1061     VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1062     VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1063     VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
1064     VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
1065     VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
1066     VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1067 } VkImageLayout;
1068
1069 typedef enum VkImageViewType {
1070     VK_IMAGE_VIEW_TYPE_1D = 0,
1071     VK_IMAGE_VIEW_TYPE_2D = 1,
1072     VK_IMAGE_VIEW_TYPE_3D = 2,
1073     VK_IMAGE_VIEW_TYPE_CUBE = 3,
1074     VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1075     VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1076     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1077     VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
1078     VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
1079     VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
1080     VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1081 } VkImageViewType;
1082
1083 typedef enum VkComponentSwizzle {
1084     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1085     VK_COMPONENT_SWIZZLE_ZERO = 1,
1086     VK_COMPONENT_SWIZZLE_ONE = 2,
1087     VK_COMPONENT_SWIZZLE_R = 3,
1088     VK_COMPONENT_SWIZZLE_G = 4,
1089     VK_COMPONENT_SWIZZLE_B = 5,
1090     VK_COMPONENT_SWIZZLE_A = 6,
1091     VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
1092     VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
1093     VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
1094     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1095 } VkComponentSwizzle;
1096
1097 typedef enum VkVertexInputRate {
1098     VK_VERTEX_INPUT_RATE_VERTEX = 0,
1099     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1100     VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
1101     VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
1102     VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
1103     VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
1104 } VkVertexInputRate;
1105
1106 typedef enum VkPrimitiveTopology {
1107     VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
1108     VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
1109     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
1110     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
1111     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
1112     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
1113     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
1114     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
1115     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
1116     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1117     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
1118     VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
1119     VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
1120     VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
1121     VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
1122 } VkPrimitiveTopology;
1123
1124 typedef enum VkPolygonMode {
1125     VK_POLYGON_MODE_FILL = 0,
1126     VK_POLYGON_MODE_LINE = 1,
1127     VK_POLYGON_MODE_POINT = 2,
1128     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
1129     VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
1130     VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
1131     VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
1132     VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
1133 } VkPolygonMode;
1134
1135 typedef enum VkFrontFace {
1136     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1137     VK_FRONT_FACE_CLOCKWISE = 1,
1138     VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
1139     VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
1140     VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
1141     VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
1142 } VkFrontFace;
1143
1144 typedef enum VkCompareOp {
1145     VK_COMPARE_OP_NEVER = 0,
1146     VK_COMPARE_OP_LESS = 1,
1147     VK_COMPARE_OP_EQUAL = 2,
1148     VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1149     VK_COMPARE_OP_GREATER = 4,
1150     VK_COMPARE_OP_NOT_EQUAL = 5,
1151     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1152     VK_COMPARE_OP_ALWAYS = 7,
1153     VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
1154     VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
1155     VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
1156     VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1157 } VkCompareOp;
1158
1159 typedef enum VkStencilOp {
1160     VK_STENCIL_OP_KEEP = 0,
1161     VK_STENCIL_OP_ZERO = 1,
1162     VK_STENCIL_OP_REPLACE = 2,
1163     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1164     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1165     VK_STENCIL_OP_INVERT = 5,
1166     VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
1167     VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
1168     VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
1169     VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
1170     VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
1171     VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
1172 } VkStencilOp;
1173
1174 typedef enum VkLogicOp {
1175     VK_LOGIC_OP_CLEAR = 0,
1176     VK_LOGIC_OP_AND = 1,
1177     VK_LOGIC_OP_AND_REVERSE = 2,
1178     VK_LOGIC_OP_COPY = 3,
1179     VK_LOGIC_OP_AND_INVERTED = 4,
1180     VK_LOGIC_OP_NO_OP = 5,
1181     VK_LOGIC_OP_XOR = 6,
1182     VK_LOGIC_OP_OR = 7,
1183     VK_LOGIC_OP_NOR = 8,
1184     VK_LOGIC_OP_EQUIVALENT = 9,
1185     VK_LOGIC_OP_INVERT = 10,
1186     VK_LOGIC_OP_OR_REVERSE = 11,
1187     VK_LOGIC_OP_COPY_INVERTED = 12,
1188     VK_LOGIC_OP_OR_INVERTED = 13,
1189     VK_LOGIC_OP_NAND = 14,
1190     VK_LOGIC_OP_SET = 15,
1191     VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
1192     VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
1193     VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
1194     VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
1195 } VkLogicOp;
1196
1197 typedef enum VkBlendFactor {
1198     VK_BLEND_FACTOR_ZERO = 0,
1199     VK_BLEND_FACTOR_ONE = 1,
1200     VK_BLEND_FACTOR_SRC_COLOR = 2,
1201     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1202     VK_BLEND_FACTOR_DST_COLOR = 4,
1203     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1204     VK_BLEND_FACTOR_SRC_ALPHA = 6,
1205     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1206     VK_BLEND_FACTOR_DST_ALPHA = 8,
1207     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1208     VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1209     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1210     VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1211     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1212     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1213     VK_BLEND_FACTOR_SRC1_COLOR = 15,
1214     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1215     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1216     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1217     VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
1218     VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
1219     VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
1220     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1221 } VkBlendFactor;
1222
1223 typedef enum VkBlendOp {
1224     VK_BLEND_OP_ADD = 0,
1225     VK_BLEND_OP_SUBTRACT = 1,
1226     VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1227     VK_BLEND_OP_MIN = 3,
1228     VK_BLEND_OP_MAX = 4,
1229     VK_BLEND_OP_ZERO_EXT = 1000148000,
1230     VK_BLEND_OP_SRC_EXT = 1000148001,
1231     VK_BLEND_OP_DST_EXT = 1000148002,
1232     VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1233     VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1234     VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1235     VK_BLEND_OP_DST_IN_EXT = 1000148006,
1236     VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1237     VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1238     VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1239     VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1240     VK_BLEND_OP_XOR_EXT = 1000148011,
1241     VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1242     VK_BLEND_OP_SCREEN_EXT = 1000148013,
1243     VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1244     VK_BLEND_OP_DARKEN_EXT = 1000148015,
1245     VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1246     VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1247     VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1248     VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1249     VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1250     VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1251     VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1252     VK_BLEND_OP_INVERT_EXT = 1000148023,
1253     VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1254     VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1255     VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1256     VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1257     VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1258     VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1259     VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1260     VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1261     VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1262     VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1263     VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1264     VK_BLEND_OP_PLUS_EXT = 1000148035,
1265     VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1266     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1267     VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1268     VK_BLEND_OP_MINUS_EXT = 1000148039,
1269     VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1270     VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1271     VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1272     VK_BLEND_OP_RED_EXT = 1000148043,
1273     VK_BLEND_OP_GREEN_EXT = 1000148044,
1274     VK_BLEND_OP_BLUE_EXT = 1000148045,
1275     VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
1276     VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
1277     VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
1278     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1279 } VkBlendOp;
1280
1281 typedef enum VkDynamicState {
1282     VK_DYNAMIC_STATE_VIEWPORT = 0,
1283     VK_DYNAMIC_STATE_SCISSOR = 1,
1284     VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1285     VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1286     VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1287     VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1288     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1289     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1290     VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1291     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1292     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1293     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1294     VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1295     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1296     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1297     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
1298     VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
1299     VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
1300     VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
1301     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
1302 } VkDynamicState;
1303
1304 typedef enum VkFilter {
1305     VK_FILTER_NEAREST = 0,
1306     VK_FILTER_LINEAR = 1,
1307     VK_FILTER_CUBIC_IMG = 1000015000,
1308     VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
1309     VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
1310     VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
1311     VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
1312     VK_FILTER_MAX_ENUM = 0x7FFFFFFF
1313 } VkFilter;
1314
1315 typedef enum VkSamplerMipmapMode {
1316     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
1317     VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
1318     VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
1319     VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
1320     VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
1321     VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
1322 } VkSamplerMipmapMode;
1323
1324 typedef enum VkSamplerAddressMode {
1325     VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
1326     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
1327     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
1328     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
1329     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
1330     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
1331     VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
1332     VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
1333     VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
1334     VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
1335 } VkSamplerAddressMode;
1336
1337 typedef enum VkBorderColor {
1338     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
1339     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
1340     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
1341     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
1342     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
1343     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
1344     VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
1345     VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
1346     VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
1347     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
1348 } VkBorderColor;
1349
1350 typedef enum VkDescriptorType {
1351     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
1352     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
1353     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
1354     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
1355     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
1356     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
1357     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
1358     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
1359     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
1360     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
1361     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
1362     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
1363     VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1364     VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
1365     VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
1366     VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
1367     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
1368 } VkDescriptorType;
1369
1370 typedef enum VkAttachmentLoadOp {
1371     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
1372     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
1373     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
1374     VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
1375     VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
1376     VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
1377     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
1378 } VkAttachmentLoadOp;
1379
1380 typedef enum VkAttachmentStoreOp {
1381     VK_ATTACHMENT_STORE_OP_STORE = 0,
1382     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
1383     VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
1384     VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
1385     VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
1386     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
1387 } VkAttachmentStoreOp;
1388
1389 typedef enum VkPipelineBindPoint {
1390     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
1391     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
1392     VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
1393     VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
1394     VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
1395     VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
1396     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
1397 } VkPipelineBindPoint;
1398
1399 typedef enum VkCommandBufferLevel {
1400     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
1401     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
1402     VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
1403     VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
1404     VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
1405     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
1406 } VkCommandBufferLevel;
1407
1408 typedef enum VkIndexType {
1409     VK_INDEX_TYPE_UINT16 = 0,
1410     VK_INDEX_TYPE_UINT32 = 1,
1411     VK_INDEX_TYPE_NONE_NV = 1000165000,
1412     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
1413     VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
1414     VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
1415     VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
1416     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
1417 } VkIndexType;
1418
1419 typedef enum VkSubpassContents {
1420     VK_SUBPASS_CONTENTS_INLINE = 0,
1421     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
1422     VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
1423     VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
1424     VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
1425     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
1426 } VkSubpassContents;
1427
1428 typedef enum VkObjectType {
1429     VK_OBJECT_TYPE_UNKNOWN = 0,
1430     VK_OBJECT_TYPE_INSTANCE = 1,
1431     VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1432     VK_OBJECT_TYPE_DEVICE = 3,
1433     VK_OBJECT_TYPE_QUEUE = 4,
1434     VK_OBJECT_TYPE_SEMAPHORE = 5,
1435     VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1436     VK_OBJECT_TYPE_FENCE = 7,
1437     VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1438     VK_OBJECT_TYPE_BUFFER = 9,
1439     VK_OBJECT_TYPE_IMAGE = 10,
1440     VK_OBJECT_TYPE_EVENT = 11,
1441     VK_OBJECT_TYPE_QUERY_POOL = 12,
1442     VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1443     VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1444     VK_OBJECT_TYPE_SHADER_MODULE = 15,
1445     VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1446     VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1447     VK_OBJECT_TYPE_RENDER_PASS = 18,
1448     VK_OBJECT_TYPE_PIPELINE = 19,
1449     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1450     VK_OBJECT_TYPE_SAMPLER = 21,
1451     VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1452     VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1453     VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1454     VK_OBJECT_TYPE_COMMAND_POOL = 25,
1455     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1456     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1457     VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1458     VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1459     VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1460     VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1461     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1462     VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1463     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
1464     VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1465     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1466     VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1467     VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1468     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1469     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1470     VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
1471     VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
1472     VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
1473     VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1474 } VkObjectType;
1475
1476 typedef enum VkVendorId {
1477     VK_VENDOR_ID_VIV = 0x10001,
1478     VK_VENDOR_ID_VSI = 0x10002,
1479     VK_VENDOR_ID_KAZAN = 0x10003,
1480     VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
1481     VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
1482     VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
1483     VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1484 } VkVendorId;
1485 typedef VkFlags VkInstanceCreateFlags;
1486
1487 typedef enum VkFormatFeatureFlagBits {
1488     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
1489     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
1490     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
1491     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
1492     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
1493     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
1494     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
1495     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
1496     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
1497     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
1498     VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
1499     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
1500     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
1501     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
1502     VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
1503     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
1504     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
1505     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
1506     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
1507     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
1508     VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
1509     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
1510     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
1511     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
1512     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
1513     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
1514     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
1515     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
1516     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
1517     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
1518     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
1519     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
1520     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
1521     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
1522     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
1523     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
1524     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1525 } VkFormatFeatureFlagBits;
1526 typedef VkFlags VkFormatFeatureFlags;
1527
1528 typedef enum VkImageUsageFlagBits {
1529     VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1530     VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
1531     VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
1532     VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
1533     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
1534     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
1535     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
1536     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
1537     VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
1538     VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
1539     VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1540 } VkImageUsageFlagBits;
1541 typedef VkFlags VkImageUsageFlags;
1542
1543 typedef enum VkImageCreateFlagBits {
1544     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1545     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1546     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1547     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
1548     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
1549     VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
1550     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
1551     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
1552     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
1553     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
1554     VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
1555     VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
1556     VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
1557     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
1558     VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
1559     VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
1560     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
1561     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
1562     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
1563     VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
1564     VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
1565     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1566 } VkImageCreateFlagBits;
1567 typedef VkFlags VkImageCreateFlags;
1568
1569 typedef enum VkSampleCountFlagBits {
1570     VK_SAMPLE_COUNT_1_BIT = 0x00000001,
1571     VK_SAMPLE_COUNT_2_BIT = 0x00000002,
1572     VK_SAMPLE_COUNT_4_BIT = 0x00000004,
1573     VK_SAMPLE_COUNT_8_BIT = 0x00000008,
1574     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
1575     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
1576     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
1577     VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1578 } VkSampleCountFlagBits;
1579 typedef VkFlags VkSampleCountFlags;
1580
1581 typedef enum VkQueueFlagBits {
1582     VK_QUEUE_GRAPHICS_BIT = 0x00000001,
1583     VK_QUEUE_COMPUTE_BIT = 0x00000002,
1584     VK_QUEUE_TRANSFER_BIT = 0x00000004,
1585     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
1586     VK_QUEUE_PROTECTED_BIT = 0x00000010,
1587     VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1588 } VkQueueFlagBits;
1589 typedef VkFlags VkQueueFlags;
1590
1591 typedef enum VkMemoryPropertyFlagBits {
1592     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
1593     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
1594     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
1595     VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
1596     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
1597     VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
1598     VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
1599     VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
1600     VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1601 } VkMemoryPropertyFlagBits;
1602 typedef VkFlags VkMemoryPropertyFlags;
1603
1604 typedef enum VkMemoryHeapFlagBits {
1605     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
1606     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
1607     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
1608     VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1609 } VkMemoryHeapFlagBits;
1610 typedef VkFlags VkMemoryHeapFlags;
1611 typedef VkFlags VkDeviceCreateFlags;
1612
1613 typedef enum VkDeviceQueueCreateFlagBits {
1614     VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
1615     VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1616 } VkDeviceQueueCreateFlagBits;
1617 typedef VkFlags VkDeviceQueueCreateFlags;
1618
1619 typedef enum VkPipelineStageFlagBits {
1620     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
1621     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
1622     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
1623     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
1624     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
1625     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1626     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
1627     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
1628     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
1629     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1630     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1631     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1632     VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1633     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1634     VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1635     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1636     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1637     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
1638     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
1639     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
1640     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
1641     VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000,
1642     VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
1643     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
1644     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
1645     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
1646     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1647 } VkPipelineStageFlagBits;
1648 typedef VkFlags VkPipelineStageFlags;
1649 typedef VkFlags VkMemoryMapFlags;
1650
1651 typedef enum VkImageAspectFlagBits {
1652     VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1653     VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1654     VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1655     VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
1656     VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
1657     VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
1658     VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
1659     VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
1660     VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
1661     VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
1662     VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
1663     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
1664     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
1665     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
1666     VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1667 } VkImageAspectFlagBits;
1668 typedef VkFlags VkImageAspectFlags;
1669
1670 typedef enum VkSparseImageFormatFlagBits {
1671     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1672     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1673     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
1674     VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1675 } VkSparseImageFormatFlagBits;
1676 typedef VkFlags VkSparseImageFormatFlags;
1677
1678 typedef enum VkSparseMemoryBindFlagBits {
1679     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
1680     VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1681 } VkSparseMemoryBindFlagBits;
1682 typedef VkFlags VkSparseMemoryBindFlags;
1683
1684 typedef enum VkFenceCreateFlagBits {
1685     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
1686     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1687 } VkFenceCreateFlagBits;
1688 typedef VkFlags VkFenceCreateFlags;
1689 typedef VkFlags VkSemaphoreCreateFlags;
1690 typedef VkFlags VkEventCreateFlags;
1691 typedef VkFlags VkQueryPoolCreateFlags;
1692
1693 typedef enum VkQueryPipelineStatisticFlagBits {
1694     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1695     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1696     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1697     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1698     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1699     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1700     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1701     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1702     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1703     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1704     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
1705     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1706 } VkQueryPipelineStatisticFlagBits;
1707 typedef VkFlags VkQueryPipelineStatisticFlags;
1708
1709 typedef enum VkQueryResultFlagBits {
1710     VK_QUERY_RESULT_64_BIT = 0x00000001,
1711     VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
1712     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
1713     VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
1714     VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1715 } VkQueryResultFlagBits;
1716 typedef VkFlags VkQueryResultFlags;
1717
1718 typedef enum VkBufferCreateFlagBits {
1719     VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1720     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1721     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1722     VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
1723     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
1724     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
1725     VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
1726     VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1727 } VkBufferCreateFlagBits;
1728 typedef VkFlags VkBufferCreateFlags;
1729
1730 typedef enum VkBufferUsageFlagBits {
1731     VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1732     VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
1733     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
1734     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
1735     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
1736     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
1737     VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
1738     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
1739     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
1740     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
1741     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
1742     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
1743     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
1744     VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
1745     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
1746     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
1747     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1748 } VkBufferUsageFlagBits;
1749 typedef VkFlags VkBufferUsageFlags;
1750 typedef VkFlags VkBufferViewCreateFlags;
1751
1752 typedef enum VkImageViewCreateFlagBits {
1753     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
1754     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1755 } VkImageViewCreateFlagBits;
1756 typedef VkFlags VkImageViewCreateFlags;
1757
1758 typedef enum VkShaderModuleCreateFlagBits {
1759     VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1760 } VkShaderModuleCreateFlagBits;
1761 typedef VkFlags VkShaderModuleCreateFlags;
1762 typedef VkFlags VkPipelineCacheCreateFlags;
1763
1764 typedef enum VkPipelineCreateFlagBits {
1765     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
1766     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
1767     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1768     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
1769     VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
1770     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
1771     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
1772     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
1773     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
1774     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
1775     VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1776 } VkPipelineCreateFlagBits;
1777 typedef VkFlags VkPipelineCreateFlags;
1778
1779 typedef enum VkPipelineShaderStageCreateFlagBits {
1780     VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001,
1781     VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002,
1782     VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1783 } VkPipelineShaderStageCreateFlagBits;
1784 typedef VkFlags VkPipelineShaderStageCreateFlags;
1785
1786 typedef enum VkShaderStageFlagBits {
1787     VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1788     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1789     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1790     VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1791     VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1792     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
1793     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1794     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1795     VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
1796     VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
1797     VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
1798     VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
1799     VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
1800     VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
1801     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
1802     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
1803     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1804 } VkShaderStageFlagBits;
1805 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
1806 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
1807 typedef VkFlags VkPipelineTessellationStateCreateFlags;
1808 typedef VkFlags VkPipelineViewportStateCreateFlags;
1809 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
1810
1811 typedef enum VkCullModeFlagBits {
1812     VK_CULL_MODE_NONE = 0,
1813     VK_CULL_MODE_FRONT_BIT = 0x00000001,
1814     VK_CULL_MODE_BACK_BIT = 0x00000002,
1815     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1816     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1817 } VkCullModeFlagBits;
1818 typedef VkFlags VkCullModeFlags;
1819 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
1820 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1821 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
1822
1823 typedef enum VkColorComponentFlagBits {
1824     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1825     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1826     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1827     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1828     VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1829 } VkColorComponentFlagBits;
1830 typedef VkFlags VkColorComponentFlags;
1831 typedef VkFlags VkPipelineDynamicStateCreateFlags;
1832 typedef VkFlags VkPipelineLayoutCreateFlags;
1833 typedef VkFlags VkShaderStageFlags;
1834
1835 typedef enum VkSamplerCreateFlagBits {
1836     VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
1837     VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
1838     VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1839 } VkSamplerCreateFlagBits;
1840 typedef VkFlags VkSamplerCreateFlags;
1841
1842 typedef enum VkDescriptorSetLayoutCreateFlagBits {
1843     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
1844     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1845     VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
1846     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1847 } VkDescriptorSetLayoutCreateFlagBits;
1848 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
1849
1850 typedef enum VkDescriptorPoolCreateFlagBits {
1851     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1852     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
1853     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
1854     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1855 } VkDescriptorPoolCreateFlagBits;
1856 typedef VkFlags VkDescriptorPoolCreateFlags;
1857 typedef VkFlags VkDescriptorPoolResetFlags;
1858
1859 typedef enum VkFramebufferCreateFlagBits {
1860     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
1861     VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
1862     VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1863 } VkFramebufferCreateFlagBits;
1864 typedef VkFlags VkFramebufferCreateFlags;
1865
1866 typedef enum VkRenderPassCreateFlagBits {
1867     VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1868 } VkRenderPassCreateFlagBits;
1869 typedef VkFlags VkRenderPassCreateFlags;
1870
1871 typedef enum VkAttachmentDescriptionFlagBits {
1872     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
1873     VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1874 } VkAttachmentDescriptionFlagBits;
1875 typedef VkFlags VkAttachmentDescriptionFlags;
1876
1877 typedef enum VkSubpassDescriptionFlagBits {
1878     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1879     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1880     VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1881 } VkSubpassDescriptionFlagBits;
1882 typedef VkFlags VkSubpassDescriptionFlags;
1883
1884 typedef enum VkAccessFlagBits {
1885     VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
1886     VK_ACCESS_INDEX_READ_BIT = 0x00000002,
1887     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
1888     VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
1889     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
1890     VK_ACCESS_SHADER_READ_BIT = 0x00000020,
1891     VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
1892     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
1893     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
1894     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
1895     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
1896     VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
1897     VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
1898     VK_ACCESS_HOST_READ_BIT = 0x00002000,
1899     VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
1900     VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
1901     VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1902     VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
1903     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
1904     VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
1905     VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
1906     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1907     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
1908     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
1909     VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
1910     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
1911     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
1912     VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
1913     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1914 } VkAccessFlagBits;
1915 typedef VkFlags VkAccessFlags;
1916
1917 typedef enum VkDependencyFlagBits {
1918     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1919     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
1920     VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
1921     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
1922     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
1923     VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1924 } VkDependencyFlagBits;
1925 typedef VkFlags VkDependencyFlags;
1926
1927 typedef enum VkCommandPoolCreateFlagBits {
1928     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
1929     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1930     VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
1931     VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1932 } VkCommandPoolCreateFlagBits;
1933 typedef VkFlags VkCommandPoolCreateFlags;
1934
1935 typedef enum VkCommandPoolResetFlagBits {
1936     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1937     VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1938 } VkCommandPoolResetFlagBits;
1939 typedef VkFlags VkCommandPoolResetFlags;
1940
1941 typedef enum VkCommandBufferUsageFlagBits {
1942     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1943     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1944     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1945     VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1946 } VkCommandBufferUsageFlagBits;
1947 typedef VkFlags VkCommandBufferUsageFlags;
1948
1949 typedef enum VkQueryControlFlagBits {
1950     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1951     VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1952 } VkQueryControlFlagBits;
1953 typedef VkFlags VkQueryControlFlags;
1954
1955 typedef enum VkCommandBufferResetFlagBits {
1956     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1957     VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1958 } VkCommandBufferResetFlagBits;
1959 typedef VkFlags VkCommandBufferResetFlags;
1960
1961 typedef enum VkStencilFaceFlagBits {
1962     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
1963     VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1964     VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
1965     VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
1966     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1967 } VkStencilFaceFlagBits;
1968 typedef VkFlags VkStencilFaceFlags;
1969 typedef struct VkApplicationInfo {
1970     VkStructureType    sType;
1971     const void*        pNext;
1972     const char*        pApplicationName;
1973     uint32_t           applicationVersion;
1974     const char*        pEngineName;
1975     uint32_t           engineVersion;
1976     uint32_t           apiVersion;
1977 } VkApplicationInfo;
1978
1979 typedef struct VkInstanceCreateInfo {
1980     VkStructureType             sType;
1981     const void*                 pNext;
1982     VkInstanceCreateFlags       flags;
1983     const VkApplicationInfo*    pApplicationInfo;
1984     uint32_t                    enabledLayerCount;
1985     const char* const*          ppEnabledLayerNames;
1986     uint32_t                    enabledExtensionCount;
1987     const char* const*          ppEnabledExtensionNames;
1988 } VkInstanceCreateInfo;
1989
1990 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
1991     void*                                       pUserData,
1992     size_t                                      size,
1993     size_t                                      alignment,
1994     VkSystemAllocationScope                     allocationScope);
1995
1996 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
1997     void*                                       pUserData,
1998     void*                                       pOriginal,
1999     size_t                                      size,
2000     size_t                                      alignment,
2001     VkSystemAllocationScope                     allocationScope);
2002
2003 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2004     void*                                       pUserData,
2005     void*                                       pMemory);
2006
2007 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2008     void*                                       pUserData,
2009     size_t                                      size,
2010     VkInternalAllocationType                    allocationType,
2011     VkSystemAllocationScope                     allocationScope);
2012
2013 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2014     void*                                       pUserData,
2015     size_t                                      size,
2016     VkInternalAllocationType                    allocationType,
2017     VkSystemAllocationScope                     allocationScope);
2018
2019 typedef struct VkAllocationCallbacks {
2020     void*                                   pUserData;
2021     PFN_vkAllocationFunction                pfnAllocation;
2022     PFN_vkReallocationFunction              pfnReallocation;
2023     PFN_vkFreeFunction                      pfnFree;
2024     PFN_vkInternalAllocationNotification    pfnInternalAllocation;
2025     PFN_vkInternalFreeNotification          pfnInternalFree;
2026 } VkAllocationCallbacks;
2027
2028 typedef struct VkPhysicalDeviceFeatures {
2029     VkBool32    robustBufferAccess;
2030     VkBool32    fullDrawIndexUint32;
2031     VkBool32    imageCubeArray;
2032     VkBool32    independentBlend;
2033     VkBool32    geometryShader;
2034     VkBool32    tessellationShader;
2035     VkBool32    sampleRateShading;
2036     VkBool32    dualSrcBlend;
2037     VkBool32    logicOp;
2038     VkBool32    multiDrawIndirect;
2039     VkBool32    drawIndirectFirstInstance;
2040     VkBool32    depthClamp;
2041     VkBool32    depthBiasClamp;
2042     VkBool32    fillModeNonSolid;
2043     VkBool32    depthBounds;
2044     VkBool32    wideLines;
2045     VkBool32    largePoints;
2046     VkBool32    alphaToOne;
2047     VkBool32    multiViewport;
2048     VkBool32    samplerAnisotropy;
2049     VkBool32    textureCompressionETC2;
2050     VkBool32    textureCompressionASTC_LDR;
2051     VkBool32    textureCompressionBC;
2052     VkBool32    occlusionQueryPrecise;
2053     VkBool32    pipelineStatisticsQuery;
2054     VkBool32    vertexPipelineStoresAndAtomics;
2055     VkBool32    fragmentStoresAndAtomics;
2056     VkBool32    shaderTessellationAndGeometryPointSize;
2057     VkBool32    shaderImageGatherExtended;
2058     VkBool32    shaderStorageImageExtendedFormats;
2059     VkBool32    shaderStorageImageMultisample;
2060     VkBool32    shaderStorageImageReadWithoutFormat;
2061     VkBool32    shaderStorageImageWriteWithoutFormat;
2062     VkBool32    shaderUniformBufferArrayDynamicIndexing;
2063     VkBool32    shaderSampledImageArrayDynamicIndexing;
2064     VkBool32    shaderStorageBufferArrayDynamicIndexing;
2065     VkBool32    shaderStorageImageArrayDynamicIndexing;
2066     VkBool32    shaderClipDistance;
2067     VkBool32    shaderCullDistance;
2068     VkBool32    shaderFloat64;
2069     VkBool32    shaderInt64;
2070     VkBool32    shaderInt16;
2071     VkBool32    shaderResourceResidency;
2072     VkBool32    shaderResourceMinLod;
2073     VkBool32    sparseBinding;
2074     VkBool32    sparseResidencyBuffer;
2075     VkBool32    sparseResidencyImage2D;
2076     VkBool32    sparseResidencyImage3D;
2077     VkBool32    sparseResidency2Samples;
2078     VkBool32    sparseResidency4Samples;
2079     VkBool32    sparseResidency8Samples;
2080     VkBool32    sparseResidency16Samples;
2081     VkBool32    sparseResidencyAliased;
2082     VkBool32    variableMultisampleRate;
2083     VkBool32    inheritedQueries;
2084 } VkPhysicalDeviceFeatures;
2085
2086 typedef struct VkFormatProperties {
2087     VkFormatFeatureFlags    linearTilingFeatures;
2088     VkFormatFeatureFlags    optimalTilingFeatures;
2089     VkFormatFeatureFlags    bufferFeatures;
2090 } VkFormatProperties;
2091
2092 typedef struct VkExtent3D {
2093     uint32_t    width;
2094     uint32_t    height;
2095     uint32_t    depth;
2096 } VkExtent3D;
2097
2098 typedef struct VkImageFormatProperties {
2099     VkExtent3D            maxExtent;
2100     uint32_t              maxMipLevels;
2101     uint32_t              maxArrayLayers;
2102     VkSampleCountFlags    sampleCounts;
2103     VkDeviceSize          maxResourceSize;
2104 } VkImageFormatProperties;
2105
2106 typedef struct VkPhysicalDeviceLimits {
2107     uint32_t              maxImageDimension1D;
2108     uint32_t              maxImageDimension2D;
2109     uint32_t              maxImageDimension3D;
2110     uint32_t              maxImageDimensionCube;
2111     uint32_t              maxImageArrayLayers;
2112     uint32_t              maxTexelBufferElements;
2113     uint32_t              maxUniformBufferRange;
2114     uint32_t              maxStorageBufferRange;
2115     uint32_t              maxPushConstantsSize;
2116     uint32_t              maxMemoryAllocationCount;
2117     uint32_t              maxSamplerAllocationCount;
2118     VkDeviceSize          bufferImageGranularity;
2119     VkDeviceSize          sparseAddressSpaceSize;
2120     uint32_t              maxBoundDescriptorSets;
2121     uint32_t              maxPerStageDescriptorSamplers;
2122     uint32_t              maxPerStageDescriptorUniformBuffers;
2123     uint32_t              maxPerStageDescriptorStorageBuffers;
2124     uint32_t              maxPerStageDescriptorSampledImages;
2125     uint32_t              maxPerStageDescriptorStorageImages;
2126     uint32_t              maxPerStageDescriptorInputAttachments;
2127     uint32_t              maxPerStageResources;
2128     uint32_t              maxDescriptorSetSamplers;
2129     uint32_t              maxDescriptorSetUniformBuffers;
2130     uint32_t              maxDescriptorSetUniformBuffersDynamic;
2131     uint32_t              maxDescriptorSetStorageBuffers;
2132     uint32_t              maxDescriptorSetStorageBuffersDynamic;
2133     uint32_t              maxDescriptorSetSampledImages;
2134     uint32_t              maxDescriptorSetStorageImages;
2135     uint32_t              maxDescriptorSetInputAttachments;
2136     uint32_t              maxVertexInputAttributes;
2137     uint32_t              maxVertexInputBindings;
2138     uint32_t              maxVertexInputAttributeOffset;
2139     uint32_t              maxVertexInputBindingStride;
2140     uint32_t              maxVertexOutputComponents;
2141     uint32_t              maxTessellationGenerationLevel;
2142     uint32_t              maxTessellationPatchSize;
2143     uint32_t              maxTessellationControlPerVertexInputComponents;
2144     uint32_t              maxTessellationControlPerVertexOutputComponents;
2145     uint32_t              maxTessellationControlPerPatchOutputComponents;
2146     uint32_t              maxTessellationControlTotalOutputComponents;
2147     uint32_t              maxTessellationEvaluationInputComponents;
2148     uint32_t              maxTessellationEvaluationOutputComponents;
2149     uint32_t              maxGeometryShaderInvocations;
2150     uint32_t              maxGeometryInputComponents;
2151     uint32_t              maxGeometryOutputComponents;
2152     uint32_t              maxGeometryOutputVertices;
2153     uint32_t              maxGeometryTotalOutputComponents;
2154     uint32_t              maxFragmentInputComponents;
2155     uint32_t              maxFragmentOutputAttachments;
2156     uint32_t              maxFragmentDualSrcAttachments;
2157     uint32_t              maxFragmentCombinedOutputResources;
2158     uint32_t              maxComputeSharedMemorySize;
2159     uint32_t              maxComputeWorkGroupCount[3];
2160     uint32_t              maxComputeWorkGroupInvocations;
2161     uint32_t              maxComputeWorkGroupSize[3];
2162     uint32_t              subPixelPrecisionBits;
2163     uint32_t              subTexelPrecisionBits;
2164     uint32_t              mipmapPrecisionBits;
2165     uint32_t              maxDrawIndexedIndexValue;
2166     uint32_t              maxDrawIndirectCount;
2167     float                 maxSamplerLodBias;
2168     float                 maxSamplerAnisotropy;
2169     uint32_t              maxViewports;
2170     uint32_t              maxViewportDimensions[2];
2171     float                 viewportBoundsRange[2];
2172     uint32_t              viewportSubPixelBits;
2173     size_t                minMemoryMapAlignment;
2174     VkDeviceSize          minTexelBufferOffsetAlignment;
2175     VkDeviceSize          minUniformBufferOffsetAlignment;
2176     VkDeviceSize          minStorageBufferOffsetAlignment;
2177     int32_t               minTexelOffset;
2178     uint32_t              maxTexelOffset;
2179     int32_t               minTexelGatherOffset;
2180     uint32_t              maxTexelGatherOffset;
2181     float                 minInterpolationOffset;
2182     float                 maxInterpolationOffset;
2183     uint32_t              subPixelInterpolationOffsetBits;
2184     uint32_t              maxFramebufferWidth;
2185     uint32_t              maxFramebufferHeight;
2186     uint32_t              maxFramebufferLayers;
2187     VkSampleCountFlags    framebufferColorSampleCounts;
2188     VkSampleCountFlags    framebufferDepthSampleCounts;
2189     VkSampleCountFlags    framebufferStencilSampleCounts;
2190     VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
2191     uint32_t              maxColorAttachments;
2192     VkSampleCountFlags    sampledImageColorSampleCounts;
2193     VkSampleCountFlags    sampledImageIntegerSampleCounts;
2194     VkSampleCountFlags    sampledImageDepthSampleCounts;
2195     VkSampleCountFlags    sampledImageStencilSampleCounts;
2196     VkSampleCountFlags    storageImageSampleCounts;
2197     uint32_t              maxSampleMaskWords;
2198     VkBool32              timestampComputeAndGraphics;
2199     float                 timestampPeriod;
2200     uint32_t              maxClipDistances;
2201     uint32_t              maxCullDistances;
2202     uint32_t              maxCombinedClipAndCullDistances;
2203     uint32_t              discreteQueuePriorities;
2204     float                 pointSizeRange[2];
2205     float                 lineWidthRange[2];
2206     float                 pointSizeGranularity;
2207     float                 lineWidthGranularity;
2208     VkBool32              strictLines;
2209     VkBool32              standardSampleLocations;
2210     VkDeviceSize          optimalBufferCopyOffsetAlignment;
2211     VkDeviceSize          optimalBufferCopyRowPitchAlignment;
2212     VkDeviceSize          nonCoherentAtomSize;
2213 } VkPhysicalDeviceLimits;
2214
2215 typedef struct VkPhysicalDeviceSparseProperties {
2216     VkBool32    residencyStandard2DBlockShape;
2217     VkBool32    residencyStandard2DMultisampleBlockShape;
2218     VkBool32    residencyStandard3DBlockShape;
2219     VkBool32    residencyAlignedMipSize;
2220     VkBool32    residencyNonResidentStrict;
2221 } VkPhysicalDeviceSparseProperties;
2222
2223 typedef struct VkPhysicalDeviceProperties {
2224     uint32_t                            apiVersion;
2225     uint32_t                            driverVersion;
2226     uint32_t                            vendorID;
2227     uint32_t                            deviceID;
2228     VkPhysicalDeviceType                deviceType;
2229     char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
2230     uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
2231     VkPhysicalDeviceLimits              limits;
2232     VkPhysicalDeviceSparseProperties    sparseProperties;
2233 } VkPhysicalDeviceProperties;
2234
2235 typedef struct VkQueueFamilyProperties {
2236     VkQueueFlags    queueFlags;
2237     uint32_t        queueCount;
2238     uint32_t        timestampValidBits;
2239     VkExtent3D      minImageTransferGranularity;
2240 } VkQueueFamilyProperties;
2241
2242 typedef struct VkMemoryType {
2243     VkMemoryPropertyFlags    propertyFlags;
2244     uint32_t                 heapIndex;
2245 } VkMemoryType;
2246
2247 typedef struct VkMemoryHeap {
2248     VkDeviceSize         size;
2249     VkMemoryHeapFlags    flags;
2250 } VkMemoryHeap;
2251
2252 typedef struct VkPhysicalDeviceMemoryProperties {
2253     uint32_t        memoryTypeCount;
2254     VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
2255     uint32_t        memoryHeapCount;
2256     VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
2257 } VkPhysicalDeviceMemoryProperties;
2258
2259 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2260 typedef struct VkDeviceQueueCreateInfo {
2261     VkStructureType             sType;
2262     const void*                 pNext;
2263     VkDeviceQueueCreateFlags    flags;
2264     uint32_t                    queueFamilyIndex;
2265     uint32_t                    queueCount;
2266     const float*                pQueuePriorities;
2267 } VkDeviceQueueCreateInfo;
2268
2269 typedef struct VkDeviceCreateInfo {
2270     VkStructureType                    sType;
2271     const void*                        pNext;
2272     VkDeviceCreateFlags                flags;
2273     uint32_t                           queueCreateInfoCount;
2274     const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
2275     uint32_t                           enabledLayerCount;
2276     const char* const*                 ppEnabledLayerNames;
2277     uint32_t                           enabledExtensionCount;
2278     const char* const*                 ppEnabledExtensionNames;
2279     const VkPhysicalDeviceFeatures*    pEnabledFeatures;
2280 } VkDeviceCreateInfo;
2281
2282 typedef struct VkExtensionProperties {
2283     char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
2284     uint32_t    specVersion;
2285 } VkExtensionProperties;
2286
2287 typedef struct VkLayerProperties {
2288     char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
2289     uint32_t    specVersion;
2290     uint32_t    implementationVersion;
2291     char        description[VK_MAX_DESCRIPTION_SIZE];
2292 } VkLayerProperties;
2293
2294 typedef struct VkSubmitInfo {
2295     VkStructureType                sType;
2296     const void*                    pNext;
2297     uint32_t                       waitSemaphoreCount;
2298     const VkSemaphore*             pWaitSemaphores;
2299     const VkPipelineStageFlags*    pWaitDstStageMask;
2300     uint32_t                       commandBufferCount;
2301     const VkCommandBuffer*         pCommandBuffers;
2302     uint32_t                       signalSemaphoreCount;
2303     const VkSemaphore*             pSignalSemaphores;
2304 } VkSubmitInfo;
2305
2306 typedef struct VkMemoryAllocateInfo {
2307     VkStructureType    sType;
2308     const void*        pNext;
2309     VkDeviceSize       allocationSize;
2310     uint32_t           memoryTypeIndex;
2311 } VkMemoryAllocateInfo;
2312
2313 typedef struct VkMappedMemoryRange {
2314     VkStructureType    sType;
2315     const void*        pNext;
2316     VkDeviceMemory     memory;
2317     VkDeviceSize       offset;
2318     VkDeviceSize       size;
2319 } VkMappedMemoryRange;
2320
2321 typedef struct VkMemoryRequirements {
2322     VkDeviceSize    size;
2323     VkDeviceSize    alignment;
2324     uint32_t        memoryTypeBits;
2325 } VkMemoryRequirements;
2326
2327 typedef struct VkSparseImageFormatProperties {
2328     VkImageAspectFlags          aspectMask;
2329     VkExtent3D                  imageGranularity;
2330     VkSparseImageFormatFlags    flags;
2331 } VkSparseImageFormatProperties;
2332
2333 typedef struct VkSparseImageMemoryRequirements {
2334     VkSparseImageFormatProperties    formatProperties;
2335     uint32_t                         imageMipTailFirstLod;
2336     VkDeviceSize                     imageMipTailSize;
2337     VkDeviceSize                     imageMipTailOffset;
2338     VkDeviceSize                     imageMipTailStride;
2339 } VkSparseImageMemoryRequirements;
2340
2341 typedef struct VkSparseMemoryBind {
2342     VkDeviceSize               resourceOffset;
2343     VkDeviceSize               size;
2344     VkDeviceMemory             memory;
2345     VkDeviceSize               memoryOffset;
2346     VkSparseMemoryBindFlags    flags;
2347 } VkSparseMemoryBind;
2348
2349 typedef struct VkSparseBufferMemoryBindInfo {
2350     VkBuffer                     buffer;
2351     uint32_t                     bindCount;
2352     const VkSparseMemoryBind*    pBinds;
2353 } VkSparseBufferMemoryBindInfo;
2354
2355 typedef struct VkSparseImageOpaqueMemoryBindInfo {
2356     VkImage                      image;
2357     uint32_t                     bindCount;
2358     const VkSparseMemoryBind*    pBinds;
2359 } VkSparseImageOpaqueMemoryBindInfo;
2360
2361 typedef struct VkImageSubresource {
2362     VkImageAspectFlags    aspectMask;
2363     uint32_t              mipLevel;
2364     uint32_t              arrayLayer;
2365 } VkImageSubresource;
2366
2367 typedef struct VkOffset3D {
2368     int32_t    x;
2369     int32_t    y;
2370     int32_t    z;
2371 } VkOffset3D;
2372
2373 typedef struct VkSparseImageMemoryBind {
2374     VkImageSubresource         subresource;
2375     VkOffset3D                 offset;
2376     VkExtent3D                 extent;
2377     VkDeviceMemory             memory;
2378     VkDeviceSize               memoryOffset;
2379     VkSparseMemoryBindFlags    flags;
2380 } VkSparseImageMemoryBind;
2381
2382 typedef struct VkSparseImageMemoryBindInfo {
2383     VkImage                           image;
2384     uint32_t                          bindCount;
2385     const VkSparseImageMemoryBind*    pBinds;
2386 } VkSparseImageMemoryBindInfo;
2387
2388 typedef struct VkBindSparseInfo {
2389     VkStructureType                             sType;
2390     const void*                                 pNext;
2391     uint32_t                                    waitSemaphoreCount;
2392     const VkSemaphore*                          pWaitSemaphores;
2393     uint32_t                                    bufferBindCount;
2394     const VkSparseBufferMemoryBindInfo*         pBufferBinds;
2395     uint32_t                                    imageOpaqueBindCount;
2396     const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
2397     uint32_t                                    imageBindCount;
2398     const VkSparseImageMemoryBindInfo*          pImageBinds;
2399     uint32_t                                    signalSemaphoreCount;
2400     const VkSemaphore*                          pSignalSemaphores;
2401 } VkBindSparseInfo;
2402
2403 typedef struct VkFenceCreateInfo {
2404     VkStructureType       sType;
2405     const void*           pNext;
2406     VkFenceCreateFlags    flags;
2407 } VkFenceCreateInfo;
2408
2409 typedef struct VkSemaphoreCreateInfo {
2410     VkStructureType           sType;
2411     const void*               pNext;
2412     VkSemaphoreCreateFlags    flags;
2413 } VkSemaphoreCreateInfo;
2414
2415 typedef struct VkEventCreateInfo {
2416     VkStructureType       sType;
2417     const void*           pNext;
2418     VkEventCreateFlags    flags;
2419 } VkEventCreateInfo;
2420
2421 typedef struct VkQueryPoolCreateInfo {
2422     VkStructureType                  sType;
2423     const void*                      pNext;
2424     VkQueryPoolCreateFlags           flags;
2425     VkQueryType                      queryType;
2426     uint32_t                         queryCount;
2427     VkQueryPipelineStatisticFlags    pipelineStatistics;
2428 } VkQueryPoolCreateInfo;
2429
2430 typedef struct VkBufferCreateInfo {
2431     VkStructureType        sType;
2432     const void*            pNext;
2433     VkBufferCreateFlags    flags;
2434     VkDeviceSize           size;
2435     VkBufferUsageFlags     usage;
2436     VkSharingMode          sharingMode;
2437     uint32_t               queueFamilyIndexCount;
2438     const uint32_t*        pQueueFamilyIndices;
2439 } VkBufferCreateInfo;
2440
2441 typedef struct VkBufferViewCreateInfo {
2442     VkStructureType            sType;
2443     const void*                pNext;
2444     VkBufferViewCreateFlags    flags;
2445     VkBuffer                   buffer;
2446     VkFormat                   format;
2447     VkDeviceSize               offset;
2448     VkDeviceSize               range;
2449 } VkBufferViewCreateInfo;
2450
2451 typedef struct VkImageCreateInfo {
2452     VkStructureType          sType;
2453     const void*              pNext;
2454     VkImageCreateFlags       flags;
2455     VkImageType              imageType;
2456     VkFormat                 format;
2457     VkExtent3D               extent;
2458     uint32_t                 mipLevels;
2459     uint32_t                 arrayLayers;
2460     VkSampleCountFlagBits    samples;
2461     VkImageTiling            tiling;
2462     VkImageUsageFlags        usage;
2463     VkSharingMode            sharingMode;
2464     uint32_t                 queueFamilyIndexCount;
2465     const uint32_t*          pQueueFamilyIndices;
2466     VkImageLayout            initialLayout;
2467 } VkImageCreateInfo;
2468
2469 typedef struct VkSubresourceLayout {
2470     VkDeviceSize    offset;
2471     VkDeviceSize    size;
2472     VkDeviceSize    rowPitch;
2473     VkDeviceSize    arrayPitch;
2474     VkDeviceSize    depthPitch;
2475 } VkSubresourceLayout;
2476
2477 typedef struct VkComponentMapping {
2478     VkComponentSwizzle    r;
2479     VkComponentSwizzle    g;
2480     VkComponentSwizzle    b;
2481     VkComponentSwizzle    a;
2482 } VkComponentMapping;
2483
2484 typedef struct VkImageSubresourceRange {
2485     VkImageAspectFlags    aspectMask;
2486     uint32_t              baseMipLevel;
2487     uint32_t              levelCount;
2488     uint32_t              baseArrayLayer;
2489     uint32_t              layerCount;
2490 } VkImageSubresourceRange;
2491
2492 typedef struct VkImageViewCreateInfo {
2493     VkStructureType            sType;
2494     const void*                pNext;
2495     VkImageViewCreateFlags     flags;
2496     VkImage                    image;
2497     VkImageViewType            viewType;
2498     VkFormat                   format;
2499     VkComponentMapping         components;
2500     VkImageSubresourceRange    subresourceRange;
2501 } VkImageViewCreateInfo;
2502
2503 typedef struct VkShaderModuleCreateInfo {
2504     VkStructureType              sType;
2505     const void*                  pNext;
2506     VkShaderModuleCreateFlags    flags;
2507     size_t                       codeSize;
2508     const uint32_t*              pCode;
2509 } VkShaderModuleCreateInfo;
2510
2511 typedef struct VkPipelineCacheCreateInfo {
2512     VkStructureType               sType;
2513     const void*                   pNext;
2514     VkPipelineCacheCreateFlags    flags;
2515     size_t                        initialDataSize;
2516     const void*                   pInitialData;
2517 } VkPipelineCacheCreateInfo;
2518
2519 typedef struct VkSpecializationMapEntry {
2520     uint32_t    constantID;
2521     uint32_t    offset;
2522     size_t      size;
2523 } VkSpecializationMapEntry;
2524
2525 typedef struct VkSpecializationInfo {
2526     uint32_t                           mapEntryCount;
2527     const VkSpecializationMapEntry*    pMapEntries;
2528     size_t                             dataSize;
2529     const void*                        pData;
2530 } VkSpecializationInfo;
2531
2532 typedef struct VkPipelineShaderStageCreateInfo {
2533     VkStructureType                     sType;
2534     const void*                         pNext;
2535     VkPipelineShaderStageCreateFlags    flags;
2536     VkShaderStageFlagBits               stage;
2537     VkShaderModule                      module;
2538     const char*                         pName;
2539     const VkSpecializationInfo*         pSpecializationInfo;
2540 } VkPipelineShaderStageCreateInfo;
2541
2542 typedef struct VkVertexInputBindingDescription {
2543     uint32_t             binding;
2544     uint32_t             stride;
2545     VkVertexInputRate    inputRate;
2546 } VkVertexInputBindingDescription;
2547
2548 typedef struct VkVertexInputAttributeDescription {
2549     uint32_t    location;
2550     uint32_t    binding;
2551     VkFormat    format;
2552     uint32_t    offset;
2553 } VkVertexInputAttributeDescription;
2554
2555 typedef struct VkPipelineVertexInputStateCreateInfo {
2556     VkStructureType                             sType;
2557     const void*                                 pNext;
2558     VkPipelineVertexInputStateCreateFlags       flags;
2559     uint32_t                                    vertexBindingDescriptionCount;
2560     const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
2561     uint32_t                                    vertexAttributeDescriptionCount;
2562     const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
2563 } VkPipelineVertexInputStateCreateInfo;
2564
2565 typedef struct VkPipelineInputAssemblyStateCreateInfo {
2566     VkStructureType                            sType;
2567     const void*                                pNext;
2568     VkPipelineInputAssemblyStateCreateFlags    flags;
2569     VkPrimitiveTopology                        topology;
2570     VkBool32                                   primitiveRestartEnable;
2571 } VkPipelineInputAssemblyStateCreateInfo;
2572
2573 typedef struct VkPipelineTessellationStateCreateInfo {
2574     VkStructureType                           sType;
2575     const void*                               pNext;
2576     VkPipelineTessellationStateCreateFlags    flags;
2577     uint32_t                                  patchControlPoints;
2578 } VkPipelineTessellationStateCreateInfo;
2579
2580 typedef struct VkViewport {
2581     float    x;
2582     float    y;
2583     float    width;
2584     float    height;
2585     float    minDepth;
2586     float    maxDepth;
2587 } VkViewport;
2588
2589 typedef struct VkOffset2D {
2590     int32_t    x;
2591     int32_t    y;
2592 } VkOffset2D;
2593
2594 typedef struct VkExtent2D {
2595     uint32_t    width;
2596     uint32_t    height;
2597 } VkExtent2D;
2598
2599 typedef struct VkRect2D {
2600     VkOffset2D    offset;
2601     VkExtent2D    extent;
2602 } VkRect2D;
2603
2604 typedef struct VkPipelineViewportStateCreateInfo {
2605     VkStructureType                       sType;
2606     const void*                           pNext;
2607     VkPipelineViewportStateCreateFlags    flags;
2608     uint32_t                              viewportCount;
2609     const VkViewport*                     pViewports;
2610     uint32_t                              scissorCount;
2611     const VkRect2D*                       pScissors;
2612 } VkPipelineViewportStateCreateInfo;
2613
2614 typedef struct VkPipelineRasterizationStateCreateInfo {
2615     VkStructureType                            sType;
2616     const void*                                pNext;
2617     VkPipelineRasterizationStateCreateFlags    flags;
2618     VkBool32                                   depthClampEnable;
2619     VkBool32                                   rasterizerDiscardEnable;
2620     VkPolygonMode                              polygonMode;
2621     VkCullModeFlags                            cullMode;
2622     VkFrontFace                                frontFace;
2623     VkBool32                                   depthBiasEnable;
2624     float                                      depthBiasConstantFactor;
2625     float                                      depthBiasClamp;
2626     float                                      depthBiasSlopeFactor;
2627     float                                      lineWidth;
2628 } VkPipelineRasterizationStateCreateInfo;
2629
2630 typedef struct VkPipelineMultisampleStateCreateInfo {
2631     VkStructureType                          sType;
2632     const void*                              pNext;
2633     VkPipelineMultisampleStateCreateFlags    flags;
2634     VkSampleCountFlagBits                    rasterizationSamples;
2635     VkBool32                                 sampleShadingEnable;
2636     float                                    minSampleShading;
2637     const VkSampleMask*                      pSampleMask;
2638     VkBool32                                 alphaToCoverageEnable;
2639     VkBool32                                 alphaToOneEnable;
2640 } VkPipelineMultisampleStateCreateInfo;
2641
2642 typedef struct VkStencilOpState {
2643     VkStencilOp    failOp;
2644     VkStencilOp    passOp;
2645     VkStencilOp    depthFailOp;
2646     VkCompareOp    compareOp;
2647     uint32_t       compareMask;
2648     uint32_t       writeMask;
2649     uint32_t       reference;
2650 } VkStencilOpState;
2651
2652 typedef struct VkPipelineDepthStencilStateCreateInfo {
2653     VkStructureType                           sType;
2654     const void*                               pNext;
2655     VkPipelineDepthStencilStateCreateFlags    flags;
2656     VkBool32                                  depthTestEnable;
2657     VkBool32                                  depthWriteEnable;
2658     VkCompareOp                               depthCompareOp;
2659     VkBool32                                  depthBoundsTestEnable;
2660     VkBool32                                  stencilTestEnable;
2661     VkStencilOpState                          front;
2662     VkStencilOpState                          back;
2663     float                                     minDepthBounds;
2664     float                                     maxDepthBounds;
2665 } VkPipelineDepthStencilStateCreateInfo;
2666
2667 typedef struct VkPipelineColorBlendAttachmentState {
2668     VkBool32                 blendEnable;
2669     VkBlendFactor            srcColorBlendFactor;
2670     VkBlendFactor            dstColorBlendFactor;
2671     VkBlendOp                colorBlendOp;
2672     VkBlendFactor            srcAlphaBlendFactor;
2673     VkBlendFactor            dstAlphaBlendFactor;
2674     VkBlendOp                alphaBlendOp;
2675     VkColorComponentFlags    colorWriteMask;
2676 } VkPipelineColorBlendAttachmentState;
2677
2678 typedef struct VkPipelineColorBlendStateCreateInfo {
2679     VkStructureType                               sType;
2680     const void*                                   pNext;
2681     VkPipelineColorBlendStateCreateFlags          flags;
2682     VkBool32                                      logicOpEnable;
2683     VkLogicOp                                     logicOp;
2684     uint32_t                                      attachmentCount;
2685     const VkPipelineColorBlendAttachmentState*    pAttachments;
2686     float                                         blendConstants[4];
2687 } VkPipelineColorBlendStateCreateInfo;
2688
2689 typedef struct VkPipelineDynamicStateCreateInfo {
2690     VkStructureType                      sType;
2691     const void*                          pNext;
2692     VkPipelineDynamicStateCreateFlags    flags;
2693     uint32_t                             dynamicStateCount;
2694     const VkDynamicState*                pDynamicStates;
2695 } VkPipelineDynamicStateCreateInfo;
2696
2697 typedef struct VkGraphicsPipelineCreateInfo {
2698     VkStructureType                                  sType;
2699     const void*                                      pNext;
2700     VkPipelineCreateFlags                            flags;
2701     uint32_t                                         stageCount;
2702     const VkPipelineShaderStageCreateInfo*           pStages;
2703     const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
2704     const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
2705     const VkPipelineTessellationStateCreateInfo*     pTessellationState;
2706     const VkPipelineViewportStateCreateInfo*         pViewportState;
2707     const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
2708     const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
2709     const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
2710     const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
2711     const VkPipelineDynamicStateCreateInfo*          pDynamicState;
2712     VkPipelineLayout                                 layout;
2713     VkRenderPass                                     renderPass;
2714     uint32_t                                         subpass;
2715     VkPipeline                                       basePipelineHandle;
2716     int32_t                                          basePipelineIndex;
2717 } VkGraphicsPipelineCreateInfo;
2718
2719 typedef struct VkComputePipelineCreateInfo {
2720     VkStructureType                    sType;
2721     const void*                        pNext;
2722     VkPipelineCreateFlags              flags;
2723     VkPipelineShaderStageCreateInfo    stage;
2724     VkPipelineLayout                   layout;
2725     VkPipeline                         basePipelineHandle;
2726     int32_t                            basePipelineIndex;
2727 } VkComputePipelineCreateInfo;
2728
2729 typedef struct VkPushConstantRange {
2730     VkShaderStageFlags    stageFlags;
2731     uint32_t              offset;
2732     uint32_t              size;
2733 } VkPushConstantRange;
2734
2735 typedef struct VkPipelineLayoutCreateInfo {
2736     VkStructureType                 sType;
2737     const void*                     pNext;
2738     VkPipelineLayoutCreateFlags     flags;
2739     uint32_t                        setLayoutCount;
2740     const VkDescriptorSetLayout*    pSetLayouts;
2741     uint32_t                        pushConstantRangeCount;
2742     const VkPushConstantRange*      pPushConstantRanges;
2743 } VkPipelineLayoutCreateInfo;
2744
2745 typedef struct VkSamplerCreateInfo {
2746     VkStructureType         sType;
2747     const void*             pNext;
2748     VkSamplerCreateFlags    flags;
2749     VkFilter                magFilter;
2750     VkFilter                minFilter;
2751     VkSamplerMipmapMode     mipmapMode;
2752     VkSamplerAddressMode    addressModeU;
2753     VkSamplerAddressMode    addressModeV;
2754     VkSamplerAddressMode    addressModeW;
2755     float                   mipLodBias;
2756     VkBool32                anisotropyEnable;
2757     float                   maxAnisotropy;
2758     VkBool32                compareEnable;
2759     VkCompareOp             compareOp;
2760     float                   minLod;
2761     float                   maxLod;
2762     VkBorderColor           borderColor;
2763     VkBool32                unnormalizedCoordinates;
2764 } VkSamplerCreateInfo;
2765
2766 typedef struct VkDescriptorSetLayoutBinding {
2767     uint32_t              binding;
2768     VkDescriptorType      descriptorType;
2769     uint32_t              descriptorCount;
2770     VkShaderStageFlags    stageFlags;
2771     const VkSampler*      pImmutableSamplers;
2772 } VkDescriptorSetLayoutBinding;
2773
2774 typedef struct VkDescriptorSetLayoutCreateInfo {
2775     VkStructureType                        sType;
2776     const void*                            pNext;
2777     VkDescriptorSetLayoutCreateFlags       flags;
2778     uint32_t                               bindingCount;
2779     const VkDescriptorSetLayoutBinding*    pBindings;
2780 } VkDescriptorSetLayoutCreateInfo;
2781
2782 typedef struct VkDescriptorPoolSize {
2783     VkDescriptorType    type;
2784     uint32_t            descriptorCount;
2785 } VkDescriptorPoolSize;
2786
2787 typedef struct VkDescriptorPoolCreateInfo {
2788     VkStructureType                sType;
2789     const void*                    pNext;
2790     VkDescriptorPoolCreateFlags    flags;
2791     uint32_t                       maxSets;
2792     uint32_t                       poolSizeCount;
2793     const VkDescriptorPoolSize*    pPoolSizes;
2794 } VkDescriptorPoolCreateInfo;
2795
2796 typedef struct VkDescriptorSetAllocateInfo {
2797     VkStructureType                 sType;
2798     const void*                     pNext;
2799     VkDescriptorPool                descriptorPool;
2800     uint32_t                        descriptorSetCount;
2801     const VkDescriptorSetLayout*    pSetLayouts;
2802 } VkDescriptorSetAllocateInfo;
2803
2804 typedef struct VkDescriptorImageInfo {
2805     VkSampler        sampler;
2806     VkImageView      imageView;
2807     VkImageLayout    imageLayout;
2808 } VkDescriptorImageInfo;
2809
2810 typedef struct VkDescriptorBufferInfo {
2811     VkBuffer        buffer;
2812     VkDeviceSize    offset;
2813     VkDeviceSize    range;
2814 } VkDescriptorBufferInfo;
2815
2816 typedef struct VkWriteDescriptorSet {
2817     VkStructureType                  sType;
2818     const void*                      pNext;
2819     VkDescriptorSet                  dstSet;
2820     uint32_t                         dstBinding;
2821     uint32_t                         dstArrayElement;
2822     uint32_t                         descriptorCount;
2823     VkDescriptorType                 descriptorType;
2824     const VkDescriptorImageInfo*     pImageInfo;
2825     const VkDescriptorBufferInfo*    pBufferInfo;
2826     const VkBufferView*              pTexelBufferView;
2827 } VkWriteDescriptorSet;
2828
2829 typedef struct VkCopyDescriptorSet {
2830     VkStructureType    sType;
2831     const void*        pNext;
2832     VkDescriptorSet    srcSet;
2833     uint32_t           srcBinding;
2834     uint32_t           srcArrayElement;
2835     VkDescriptorSet    dstSet;
2836     uint32_t           dstBinding;
2837     uint32_t           dstArrayElement;
2838     uint32_t           descriptorCount;
2839 } VkCopyDescriptorSet;
2840
2841 typedef struct VkFramebufferCreateInfo {
2842     VkStructureType             sType;
2843     const void*                 pNext;
2844     VkFramebufferCreateFlags    flags;
2845     VkRenderPass                renderPass;
2846     uint32_t                    attachmentCount;
2847     const VkImageView*          pAttachments;
2848     uint32_t                    width;
2849     uint32_t                    height;
2850     uint32_t                    layers;
2851 } VkFramebufferCreateInfo;
2852
2853 typedef struct VkAttachmentDescription {
2854     VkAttachmentDescriptionFlags    flags;
2855     VkFormat                        format;
2856     VkSampleCountFlagBits           samples;
2857     VkAttachmentLoadOp              loadOp;
2858     VkAttachmentStoreOp             storeOp;
2859     VkAttachmentLoadOp              stencilLoadOp;
2860     VkAttachmentStoreOp             stencilStoreOp;
2861     VkImageLayout                   initialLayout;
2862     VkImageLayout                   finalLayout;
2863 } VkAttachmentDescription;
2864
2865 typedef struct VkAttachmentReference {
2866     uint32_t         attachment;
2867     VkImageLayout    layout;
2868 } VkAttachmentReference;
2869
2870 typedef struct VkSubpassDescription {
2871     VkSubpassDescriptionFlags       flags;
2872     VkPipelineBindPoint             pipelineBindPoint;
2873     uint32_t                        inputAttachmentCount;
2874     const VkAttachmentReference*    pInputAttachments;
2875     uint32_t                        colorAttachmentCount;
2876     const VkAttachmentReference*    pColorAttachments;
2877     const VkAttachmentReference*    pResolveAttachments;
2878     const VkAttachmentReference*    pDepthStencilAttachment;
2879     uint32_t                        preserveAttachmentCount;
2880     const uint32_t*                 pPreserveAttachments;
2881 } VkSubpassDescription;
2882
2883 typedef struct VkSubpassDependency {
2884     uint32_t                srcSubpass;
2885     uint32_t                dstSubpass;
2886     VkPipelineStageFlags    srcStageMask;
2887     VkPipelineStageFlags    dstStageMask;
2888     VkAccessFlags           srcAccessMask;
2889     VkAccessFlags           dstAccessMask;
2890     VkDependencyFlags       dependencyFlags;
2891 } VkSubpassDependency;
2892
2893 typedef struct VkRenderPassCreateInfo {
2894     VkStructureType                   sType;
2895     const void*                       pNext;
2896     VkRenderPassCreateFlags           flags;
2897     uint32_t                          attachmentCount;
2898     const VkAttachmentDescription*    pAttachments;
2899     uint32_t                          subpassCount;
2900     const VkSubpassDescription*       pSubpasses;
2901     uint32_t                          dependencyCount;
2902     const VkSubpassDependency*        pDependencies;
2903 } VkRenderPassCreateInfo;
2904
2905 typedef struct VkCommandPoolCreateInfo {
2906     VkStructureType             sType;
2907     const void*                 pNext;
2908     VkCommandPoolCreateFlags    flags;
2909     uint32_t                    queueFamilyIndex;
2910 } VkCommandPoolCreateInfo;
2911
2912 typedef struct VkCommandBufferAllocateInfo {
2913     VkStructureType         sType;
2914     const void*             pNext;
2915     VkCommandPool           commandPool;
2916     VkCommandBufferLevel    level;
2917     uint32_t                commandBufferCount;
2918 } VkCommandBufferAllocateInfo;
2919
2920 typedef struct VkCommandBufferInheritanceInfo {
2921     VkStructureType                  sType;
2922     const void*                      pNext;
2923     VkRenderPass                     renderPass;
2924     uint32_t                         subpass;
2925     VkFramebuffer                    framebuffer;
2926     VkBool32                         occlusionQueryEnable;
2927     VkQueryControlFlags              queryFlags;
2928     VkQueryPipelineStatisticFlags    pipelineStatistics;
2929 } VkCommandBufferInheritanceInfo;
2930
2931 typedef struct VkCommandBufferBeginInfo {
2932     VkStructureType                          sType;
2933     const void*                              pNext;
2934     VkCommandBufferUsageFlags                flags;
2935     const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
2936 } VkCommandBufferBeginInfo;
2937
2938 typedef struct VkBufferCopy {
2939     VkDeviceSize    srcOffset;
2940     VkDeviceSize    dstOffset;
2941     VkDeviceSize    size;
2942 } VkBufferCopy;
2943
2944 typedef struct VkImageSubresourceLayers {
2945     VkImageAspectFlags    aspectMask;
2946     uint32_t              mipLevel;
2947     uint32_t              baseArrayLayer;
2948     uint32_t              layerCount;
2949 } VkImageSubresourceLayers;
2950
2951 typedef struct VkImageCopy {
2952     VkImageSubresourceLayers    srcSubresource;
2953     VkOffset3D                  srcOffset;
2954     VkImageSubresourceLayers    dstSubresource;
2955     VkOffset3D                  dstOffset;
2956     VkExtent3D                  extent;
2957 } VkImageCopy;
2958
2959 typedef struct VkImageBlit {
2960     VkImageSubresourceLayers    srcSubresource;
2961     VkOffset3D                  srcOffsets[2];
2962     VkImageSubresourceLayers    dstSubresource;
2963     VkOffset3D                  dstOffsets[2];
2964 } VkImageBlit;
2965
2966 typedef struct VkBufferImageCopy {
2967     VkDeviceSize                bufferOffset;
2968     uint32_t                    bufferRowLength;
2969     uint32_t                    bufferImageHeight;
2970     VkImageSubresourceLayers    imageSubresource;
2971     VkOffset3D                  imageOffset;
2972     VkExtent3D                  imageExtent;
2973 } VkBufferImageCopy;
2974
2975 typedef union VkClearColorValue {
2976     float       float32[4];
2977     int32_t     int32[4];
2978     uint32_t    uint32[4];
2979 } VkClearColorValue;
2980
2981 typedef struct VkClearDepthStencilValue {
2982     float       depth;
2983     uint32_t    stencil;
2984 } VkClearDepthStencilValue;
2985
2986 typedef union VkClearValue {
2987     VkClearColorValue           color;
2988     VkClearDepthStencilValue    depthStencil;
2989 } VkClearValue;
2990
2991 typedef struct VkClearAttachment {
2992     VkImageAspectFlags    aspectMask;
2993     uint32_t              colorAttachment;
2994     VkClearValue          clearValue;
2995 } VkClearAttachment;
2996
2997 typedef struct VkClearRect {
2998     VkRect2D    rect;
2999     uint32_t    baseArrayLayer;
3000     uint32_t    layerCount;
3001 } VkClearRect;
3002
3003 typedef struct VkImageResolve {
3004     VkImageSubresourceLayers    srcSubresource;
3005     VkOffset3D                  srcOffset;
3006     VkImageSubresourceLayers    dstSubresource;
3007     VkOffset3D                  dstOffset;
3008     VkExtent3D                  extent;
3009 } VkImageResolve;
3010
3011 typedef struct VkMemoryBarrier {
3012     VkStructureType    sType;
3013     const void*        pNext;
3014     VkAccessFlags      srcAccessMask;
3015     VkAccessFlags      dstAccessMask;
3016 } VkMemoryBarrier;
3017
3018 typedef struct VkBufferMemoryBarrier {
3019     VkStructureType    sType;
3020     const void*        pNext;
3021     VkAccessFlags      srcAccessMask;
3022     VkAccessFlags      dstAccessMask;
3023     uint32_t           srcQueueFamilyIndex;
3024     uint32_t           dstQueueFamilyIndex;
3025     VkBuffer           buffer;
3026     VkDeviceSize       offset;
3027     VkDeviceSize       size;
3028 } VkBufferMemoryBarrier;
3029
3030 typedef struct VkImageMemoryBarrier {
3031     VkStructureType            sType;
3032     const void*                pNext;
3033     VkAccessFlags              srcAccessMask;
3034     VkAccessFlags              dstAccessMask;
3035     VkImageLayout              oldLayout;
3036     VkImageLayout              newLayout;
3037     uint32_t                   srcQueueFamilyIndex;
3038     uint32_t                   dstQueueFamilyIndex;
3039     VkImage                    image;
3040     VkImageSubresourceRange    subresourceRange;
3041 } VkImageMemoryBarrier;
3042
3043 typedef struct VkRenderPassBeginInfo {
3044     VkStructureType        sType;
3045     const void*            pNext;
3046     VkRenderPass           renderPass;
3047     VkFramebuffer          framebuffer;
3048     VkRect2D               renderArea;
3049     uint32_t               clearValueCount;
3050     const VkClearValue*    pClearValues;
3051 } VkRenderPassBeginInfo;
3052
3053 typedef struct VkDispatchIndirectCommand {
3054     uint32_t    x;
3055     uint32_t    y;
3056     uint32_t    z;
3057 } VkDispatchIndirectCommand;
3058
3059 typedef struct VkDrawIndexedIndirectCommand {
3060     uint32_t    indexCount;
3061     uint32_t    instanceCount;
3062     uint32_t    firstIndex;
3063     int32_t     vertexOffset;
3064     uint32_t    firstInstance;
3065 } VkDrawIndexedIndirectCommand;
3066
3067 typedef struct VkDrawIndirectCommand {
3068     uint32_t    vertexCount;
3069     uint32_t    instanceCount;
3070     uint32_t    firstVertex;
3071     uint32_t    firstInstance;
3072 } VkDrawIndirectCommand;
3073
3074 typedef struct VkBaseOutStructure {
3075     VkStructureType               sType;
3076     struct VkBaseOutStructure*    pNext;
3077 } VkBaseOutStructure;
3078
3079 typedef struct VkBaseInStructure {
3080     VkStructureType                    sType;
3081     const struct VkBaseInStructure*    pNext;
3082 } VkBaseInStructure;
3083
3084 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3085 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3086 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3087 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3088 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
3089 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
3090 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
3091 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
3092 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3093 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
3094 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
3095 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
3096 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
3097 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3098 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3099 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3100 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3101 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
3102 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3103 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
3104 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
3105 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3106 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3107 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3108 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
3109 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3110 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3111 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3112 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3113 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3114 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3115 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3116 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3117 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3118 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3119 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3120 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3121 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
3122 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
3123 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
3124 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3125 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3126 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
3127 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
3128 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
3129 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
3130 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
3131 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
3132 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
3133 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
3134 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
3135 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
3136 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
3137 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
3138 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
3139 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
3140 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
3141 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
3142 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
3143 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
3144 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
3145 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
3146 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
3147 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
3148 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
3149 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3150 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
3151 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
3152 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
3153 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
3154 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
3155 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
3156 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
3157 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
3158 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
3159 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
3160 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
3161 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
3162 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
3163 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
3164 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
3165 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
3166 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
3167 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
3168 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
3169 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
3170 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
3171 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
3172 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
3173 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3174 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
3175 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
3176 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
3177 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
3178 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
3179 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
3180 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
3181 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
3182 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
3183 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
3184 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
3185 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
3186 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
3187 typedef 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);
3188 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
3189 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
3190 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
3191 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
3192 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3193 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3194 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
3195 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
3196 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
3197 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
3198 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
3199 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
3200 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
3201 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
3202 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
3203 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
3204 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
3205 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
3206 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
3207 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3208 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3209 typedef 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);
3210 typedef 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);
3211 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
3212 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
3213 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
3214 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
3215 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
3216 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
3217 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
3218 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
3219 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
3220 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3221
3222 #ifndef VK_NO_PROTOTYPES
3223 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
3224     const VkInstanceCreateInfo*                 pCreateInfo,
3225     const VkAllocationCallbacks*                pAllocator,
3226     VkInstance*                                 pInstance);
3227
3228 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
3229     VkInstance                                  instance,
3230     const VkAllocationCallbacks*                pAllocator);
3231
3232 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
3233     VkInstance                                  instance,
3234     uint32_t*                                   pPhysicalDeviceCount,
3235     VkPhysicalDevice*                           pPhysicalDevices);
3236
3237 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
3238     VkPhysicalDevice                            physicalDevice,
3239     VkPhysicalDeviceFeatures*                   pFeatures);
3240
3241 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
3242     VkPhysicalDevice                            physicalDevice,
3243     VkFormat                                    format,
3244     VkFormatProperties*                         pFormatProperties);
3245
3246 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
3247     VkPhysicalDevice                            physicalDevice,
3248     VkFormat                                    format,
3249     VkImageType                                 type,
3250     VkImageTiling                               tiling,
3251     VkImageUsageFlags                           usage,
3252     VkImageCreateFlags                          flags,
3253     VkImageFormatProperties*                    pImageFormatProperties);
3254
3255 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
3256     VkPhysicalDevice                            physicalDevice,
3257     VkPhysicalDeviceProperties*                 pProperties);
3258
3259 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
3260     VkPhysicalDevice                            physicalDevice,
3261     uint32_t*                                   pQueueFamilyPropertyCount,
3262     VkQueueFamilyProperties*                    pQueueFamilyProperties);
3263
3264 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
3265     VkPhysicalDevice                            physicalDevice,
3266     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
3267
3268 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
3269     VkInstance                                  instance,
3270     const char*                                 pName);
3271
3272 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
3273     VkDevice                                    device,
3274     const char*                                 pName);
3275
3276 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
3277     VkPhysicalDevice                            physicalDevice,
3278     const VkDeviceCreateInfo*                   pCreateInfo,
3279     const VkAllocationCallbacks*                pAllocator,
3280     VkDevice*                                   pDevice);
3281
3282 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
3283     VkDevice                                    device,
3284     const VkAllocationCallbacks*                pAllocator);
3285
3286 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
3287     const char*                                 pLayerName,
3288     uint32_t*                                   pPropertyCount,
3289     VkExtensionProperties*                      pProperties);
3290
3291 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
3292     VkPhysicalDevice                            physicalDevice,
3293     const char*                                 pLayerName,
3294     uint32_t*                                   pPropertyCount,
3295     VkExtensionProperties*                      pProperties);
3296
3297 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
3298     uint32_t*                                   pPropertyCount,
3299     VkLayerProperties*                          pProperties);
3300
3301 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
3302     VkPhysicalDevice                            physicalDevice,
3303     uint32_t*                                   pPropertyCount,
3304     VkLayerProperties*                          pProperties);
3305
3306 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
3307     VkDevice                                    device,
3308     uint32_t                                    queueFamilyIndex,
3309     uint32_t                                    queueIndex,
3310     VkQueue*                                    pQueue);
3311
3312 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
3313     VkQueue                                     queue,
3314     uint32_t                                    submitCount,
3315     const VkSubmitInfo*                         pSubmits,
3316     VkFence                                     fence);
3317
3318 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
3319     VkQueue                                     queue);
3320
3321 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
3322     VkDevice                                    device);
3323
3324 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
3325     VkDevice                                    device,
3326     const VkMemoryAllocateInfo*                 pAllocateInfo,
3327     const VkAllocationCallbacks*                pAllocator,
3328     VkDeviceMemory*                             pMemory);
3329
3330 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
3331     VkDevice                                    device,
3332     VkDeviceMemory                              memory,
3333     const VkAllocationCallbacks*                pAllocator);
3334
3335 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
3336     VkDevice                                    device,
3337     VkDeviceMemory                              memory,
3338     VkDeviceSize                                offset,
3339     VkDeviceSize                                size,
3340     VkMemoryMapFlags                            flags,
3341     void**                                      ppData);
3342
3343 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
3344     VkDevice                                    device,
3345     VkDeviceMemory                              memory);
3346
3347 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
3348     VkDevice                                    device,
3349     uint32_t                                    memoryRangeCount,
3350     const VkMappedMemoryRange*                  pMemoryRanges);
3351
3352 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
3353     VkDevice                                    device,
3354     uint32_t                                    memoryRangeCount,
3355     const VkMappedMemoryRange*                  pMemoryRanges);
3356
3357 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
3358     VkDevice                                    device,
3359     VkDeviceMemory                              memory,
3360     VkDeviceSize*                               pCommittedMemoryInBytes);
3361
3362 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
3363     VkDevice                                    device,
3364     VkBuffer                                    buffer,
3365     VkDeviceMemory                              memory,
3366     VkDeviceSize                                memoryOffset);
3367
3368 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
3369     VkDevice                                    device,
3370     VkImage                                     image,
3371     VkDeviceMemory                              memory,
3372     VkDeviceSize                                memoryOffset);
3373
3374 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
3375     VkDevice                                    device,
3376     VkBuffer                                    buffer,
3377     VkMemoryRequirements*                       pMemoryRequirements);
3378
3379 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
3380     VkDevice                                    device,
3381     VkImage                                     image,
3382     VkMemoryRequirements*                       pMemoryRequirements);
3383
3384 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
3385     VkDevice                                    device,
3386     VkImage                                     image,
3387     uint32_t*                                   pSparseMemoryRequirementCount,
3388     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
3389
3390 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
3391     VkPhysicalDevice                            physicalDevice,
3392     VkFormat                                    format,
3393     VkImageType                                 type,
3394     VkSampleCountFlagBits                       samples,
3395     VkImageUsageFlags                           usage,
3396     VkImageTiling                               tiling,
3397     uint32_t*                                   pPropertyCount,
3398     VkSparseImageFormatProperties*              pProperties);
3399
3400 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
3401     VkQueue                                     queue,
3402     uint32_t                                    bindInfoCount,
3403     const VkBindSparseInfo*                     pBindInfo,
3404     VkFence                                     fence);
3405
3406 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
3407     VkDevice                                    device,
3408     const VkFenceCreateInfo*                    pCreateInfo,
3409     const VkAllocationCallbacks*                pAllocator,
3410     VkFence*                                    pFence);
3411
3412 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
3413     VkDevice                                    device,
3414     VkFence                                     fence,
3415     const VkAllocationCallbacks*                pAllocator);
3416
3417 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
3418     VkDevice                                    device,
3419     uint32_t                                    fenceCount,
3420     const VkFence*                              pFences);
3421
3422 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
3423     VkDevice                                    device,
3424     VkFence                                     fence);
3425
3426 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
3427     VkDevice                                    device,
3428     uint32_t                                    fenceCount,
3429     const VkFence*                              pFences,
3430     VkBool32                                    waitAll,
3431     uint64_t                                    timeout);
3432
3433 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
3434     VkDevice                                    device,
3435     const VkSemaphoreCreateInfo*                pCreateInfo,
3436     const VkAllocationCallbacks*                pAllocator,
3437     VkSemaphore*                                pSemaphore);
3438
3439 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
3440     VkDevice                                    device,
3441     VkSemaphore                                 semaphore,
3442     const VkAllocationCallbacks*                pAllocator);
3443
3444 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
3445     VkDevice                                    device,
3446     const VkEventCreateInfo*                    pCreateInfo,
3447     const VkAllocationCallbacks*                pAllocator,
3448     VkEvent*                                    pEvent);
3449
3450 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
3451     VkDevice                                    device,
3452     VkEvent                                     event,
3453     const VkAllocationCallbacks*                pAllocator);
3454
3455 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
3456     VkDevice                                    device,
3457     VkEvent                                     event);
3458
3459 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
3460     VkDevice                                    device,
3461     VkEvent                                     event);
3462
3463 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
3464     VkDevice                                    device,
3465     VkEvent                                     event);
3466
3467 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
3468     VkDevice                                    device,
3469     const VkQueryPoolCreateInfo*                pCreateInfo,
3470     const VkAllocationCallbacks*                pAllocator,
3471     VkQueryPool*                                pQueryPool);
3472
3473 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
3474     VkDevice                                    device,
3475     VkQueryPool                                 queryPool,
3476     const VkAllocationCallbacks*                pAllocator);
3477
3478 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
3479     VkDevice                                    device,
3480     VkQueryPool                                 queryPool,
3481     uint32_t                                    firstQuery,
3482     uint32_t                                    queryCount,
3483     size_t                                      dataSize,
3484     void*                                       pData,
3485     VkDeviceSize                                stride,
3486     VkQueryResultFlags                          flags);
3487
3488 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
3489     VkDevice                                    device,
3490     const VkBufferCreateInfo*                   pCreateInfo,
3491     const VkAllocationCallbacks*                pAllocator,
3492     VkBuffer*                                   pBuffer);
3493
3494 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
3495     VkDevice                                    device,
3496     VkBuffer                                    buffer,
3497     const VkAllocationCallbacks*                pAllocator);
3498
3499 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
3500     VkDevice                                    device,
3501     const VkBufferViewCreateInfo*               pCreateInfo,
3502     const VkAllocationCallbacks*                pAllocator,
3503     VkBufferView*                               pView);
3504
3505 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
3506     VkDevice                                    device,
3507     VkBufferView                                bufferView,
3508     const VkAllocationCallbacks*                pAllocator);
3509
3510 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
3511     VkDevice                                    device,
3512     const VkImageCreateInfo*                    pCreateInfo,
3513     const VkAllocationCallbacks*                pAllocator,
3514     VkImage*                                    pImage);
3515
3516 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
3517     VkDevice                                    device,
3518     VkImage                                     image,
3519     const VkAllocationCallbacks*                pAllocator);
3520
3521 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
3522     VkDevice                                    device,
3523     VkImage                                     image,
3524     const VkImageSubresource*                   pSubresource,
3525     VkSubresourceLayout*                        pLayout);
3526
3527 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
3528     VkDevice                                    device,
3529     const VkImageViewCreateInfo*                pCreateInfo,
3530     const VkAllocationCallbacks*                pAllocator,
3531     VkImageView*                                pView);
3532
3533 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
3534     VkDevice                                    device,
3535     VkImageView                                 imageView,
3536     const VkAllocationCallbacks*                pAllocator);
3537
3538 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
3539     VkDevice                                    device,
3540     const VkShaderModuleCreateInfo*             pCreateInfo,
3541     const VkAllocationCallbacks*                pAllocator,
3542     VkShaderModule*                             pShaderModule);
3543
3544 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
3545     VkDevice                                    device,
3546     VkShaderModule                              shaderModule,
3547     const VkAllocationCallbacks*                pAllocator);
3548
3549 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
3550     VkDevice                                    device,
3551     const VkPipelineCacheCreateInfo*            pCreateInfo,
3552     const VkAllocationCallbacks*                pAllocator,
3553     VkPipelineCache*                            pPipelineCache);
3554
3555 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
3556     VkDevice                                    device,
3557     VkPipelineCache                             pipelineCache,
3558     const VkAllocationCallbacks*                pAllocator);
3559
3560 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
3561     VkDevice                                    device,
3562     VkPipelineCache                             pipelineCache,
3563     size_t*                                     pDataSize,
3564     void*                                       pData);
3565
3566 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
3567     VkDevice                                    device,
3568     VkPipelineCache                             dstCache,
3569     uint32_t                                    srcCacheCount,
3570     const VkPipelineCache*                      pSrcCaches);
3571
3572 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
3573     VkDevice                                    device,
3574     VkPipelineCache                             pipelineCache,
3575     uint32_t                                    createInfoCount,
3576     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
3577     const VkAllocationCallbacks*                pAllocator,
3578     VkPipeline*                                 pPipelines);
3579
3580 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
3581     VkDevice                                    device,
3582     VkPipelineCache                             pipelineCache,
3583     uint32_t                                    createInfoCount,
3584     const VkComputePipelineCreateInfo*          pCreateInfos,
3585     const VkAllocationCallbacks*                pAllocator,
3586     VkPipeline*                                 pPipelines);
3587
3588 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
3589     VkDevice                                    device,
3590     VkPipeline                                  pipeline,
3591     const VkAllocationCallbacks*                pAllocator);
3592
3593 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
3594     VkDevice                                    device,
3595     const VkPipelineLayoutCreateInfo*           pCreateInfo,
3596     const VkAllocationCallbacks*                pAllocator,
3597     VkPipelineLayout*                           pPipelineLayout);
3598
3599 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
3600     VkDevice                                    device,
3601     VkPipelineLayout                            pipelineLayout,
3602     const VkAllocationCallbacks*                pAllocator);
3603
3604 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
3605     VkDevice                                    device,
3606     const VkSamplerCreateInfo*                  pCreateInfo,
3607     const VkAllocationCallbacks*                pAllocator,
3608     VkSampler*                                  pSampler);
3609
3610 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
3611     VkDevice                                    device,
3612     VkSampler                                   sampler,
3613     const VkAllocationCallbacks*                pAllocator);
3614
3615 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
3616     VkDevice                                    device,
3617     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
3618     const VkAllocationCallbacks*                pAllocator,
3619     VkDescriptorSetLayout*                      pSetLayout);
3620
3621 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
3622     VkDevice                                    device,
3623     VkDescriptorSetLayout                       descriptorSetLayout,
3624     const VkAllocationCallbacks*                pAllocator);
3625
3626 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
3627     VkDevice                                    device,
3628     const VkDescriptorPoolCreateInfo*           pCreateInfo,
3629     const VkAllocationCallbacks*                pAllocator,
3630     VkDescriptorPool*                           pDescriptorPool);
3631
3632 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
3633     VkDevice                                    device,
3634     VkDescriptorPool                            descriptorPool,
3635     const VkAllocationCallbacks*                pAllocator);
3636
3637 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
3638     VkDevice                                    device,
3639     VkDescriptorPool                            descriptorPool,
3640     VkDescriptorPoolResetFlags                  flags);
3641
3642 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
3643     VkDevice                                    device,
3644     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
3645     VkDescriptorSet*                            pDescriptorSets);
3646
3647 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
3648     VkDevice                                    device,
3649     VkDescriptorPool                            descriptorPool,
3650     uint32_t                                    descriptorSetCount,
3651     const VkDescriptorSet*                      pDescriptorSets);
3652
3653 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
3654     VkDevice                                    device,
3655     uint32_t                                    descriptorWriteCount,
3656     const VkWriteDescriptorSet*                 pDescriptorWrites,
3657     uint32_t                                    descriptorCopyCount,
3658     const VkCopyDescriptorSet*                  pDescriptorCopies);
3659
3660 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
3661     VkDevice                                    device,
3662     const VkFramebufferCreateInfo*              pCreateInfo,
3663     const VkAllocationCallbacks*                pAllocator,
3664     VkFramebuffer*                              pFramebuffer);
3665
3666 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
3667     VkDevice                                    device,
3668     VkFramebuffer                               framebuffer,
3669     const VkAllocationCallbacks*                pAllocator);
3670
3671 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
3672     VkDevice                                    device,
3673     const VkRenderPassCreateInfo*               pCreateInfo,
3674     const VkAllocationCallbacks*                pAllocator,
3675     VkRenderPass*                               pRenderPass);
3676
3677 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
3678     VkDevice                                    device,
3679     VkRenderPass                                renderPass,
3680     const VkAllocationCallbacks*                pAllocator);
3681
3682 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
3683     VkDevice                                    device,
3684     VkRenderPass                                renderPass,
3685     VkExtent2D*                                 pGranularity);
3686
3687 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
3688     VkDevice                                    device,
3689     const VkCommandPoolCreateInfo*              pCreateInfo,
3690     const VkAllocationCallbacks*                pAllocator,
3691     VkCommandPool*                              pCommandPool);
3692
3693 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
3694     VkDevice                                    device,
3695     VkCommandPool                               commandPool,
3696     const VkAllocationCallbacks*                pAllocator);
3697
3698 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
3699     VkDevice                                    device,
3700     VkCommandPool                               commandPool,
3701     VkCommandPoolResetFlags                     flags);
3702
3703 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
3704     VkDevice                                    device,
3705     const VkCommandBufferAllocateInfo*          pAllocateInfo,
3706     VkCommandBuffer*                            pCommandBuffers);
3707
3708 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
3709     VkDevice                                    device,
3710     VkCommandPool                               commandPool,
3711     uint32_t                                    commandBufferCount,
3712     const VkCommandBuffer*                      pCommandBuffers);
3713
3714 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
3715     VkCommandBuffer                             commandBuffer,
3716     const VkCommandBufferBeginInfo*             pBeginInfo);
3717
3718 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
3719     VkCommandBuffer                             commandBuffer);
3720
3721 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
3722     VkCommandBuffer                             commandBuffer,
3723     VkCommandBufferResetFlags                   flags);
3724
3725 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
3726     VkCommandBuffer                             commandBuffer,
3727     VkPipelineBindPoint                         pipelineBindPoint,
3728     VkPipeline                                  pipeline);
3729
3730 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
3731     VkCommandBuffer                             commandBuffer,
3732     uint32_t                                    firstViewport,
3733     uint32_t                                    viewportCount,
3734     const VkViewport*                           pViewports);
3735
3736 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
3737     VkCommandBuffer                             commandBuffer,
3738     uint32_t                                    firstScissor,
3739     uint32_t                                    scissorCount,
3740     const VkRect2D*                             pScissors);
3741
3742 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
3743     VkCommandBuffer                             commandBuffer,
3744     float                                       lineWidth);
3745
3746 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
3747     VkCommandBuffer                             commandBuffer,
3748     float                                       depthBiasConstantFactor,
3749     float                                       depthBiasClamp,
3750     float                                       depthBiasSlopeFactor);
3751
3752 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
3753     VkCommandBuffer                             commandBuffer,
3754     const float                                 blendConstants[4]);
3755
3756 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
3757     VkCommandBuffer                             commandBuffer,
3758     float                                       minDepthBounds,
3759     float                                       maxDepthBounds);
3760
3761 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
3762     VkCommandBuffer                             commandBuffer,
3763     VkStencilFaceFlags                          faceMask,
3764     uint32_t                                    compareMask);
3765
3766 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
3767     VkCommandBuffer                             commandBuffer,
3768     VkStencilFaceFlags                          faceMask,
3769     uint32_t                                    writeMask);
3770
3771 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
3772     VkCommandBuffer                             commandBuffer,
3773     VkStencilFaceFlags                          faceMask,
3774     uint32_t                                    reference);
3775
3776 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
3777     VkCommandBuffer                             commandBuffer,
3778     VkPipelineBindPoint                         pipelineBindPoint,
3779     VkPipelineLayout                            layout,
3780     uint32_t                                    firstSet,
3781     uint32_t                                    descriptorSetCount,
3782     const VkDescriptorSet*                      pDescriptorSets,
3783     uint32_t                                    dynamicOffsetCount,
3784     const uint32_t*                             pDynamicOffsets);
3785
3786 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
3787     VkCommandBuffer                             commandBuffer,
3788     VkBuffer                                    buffer,
3789     VkDeviceSize                                offset,
3790     VkIndexType                                 indexType);
3791
3792 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
3793     VkCommandBuffer                             commandBuffer,
3794     uint32_t                                    firstBinding,
3795     uint32_t                                    bindingCount,
3796     const VkBuffer*                             pBuffers,
3797     const VkDeviceSize*                         pOffsets);
3798
3799 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
3800     VkCommandBuffer                             commandBuffer,
3801     uint32_t                                    vertexCount,
3802     uint32_t                                    instanceCount,
3803     uint32_t                                    firstVertex,
3804     uint32_t                                    firstInstance);
3805
3806 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
3807     VkCommandBuffer                             commandBuffer,
3808     uint32_t                                    indexCount,
3809     uint32_t                                    instanceCount,
3810     uint32_t                                    firstIndex,
3811     int32_t                                     vertexOffset,
3812     uint32_t                                    firstInstance);
3813
3814 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
3815     VkCommandBuffer                             commandBuffer,
3816     VkBuffer                                    buffer,
3817     VkDeviceSize                                offset,
3818     uint32_t                                    drawCount,
3819     uint32_t                                    stride);
3820
3821 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
3822     VkCommandBuffer                             commandBuffer,
3823     VkBuffer                                    buffer,
3824     VkDeviceSize                                offset,
3825     uint32_t                                    drawCount,
3826     uint32_t                                    stride);
3827
3828 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
3829     VkCommandBuffer                             commandBuffer,
3830     uint32_t                                    groupCountX,
3831     uint32_t                                    groupCountY,
3832     uint32_t                                    groupCountZ);
3833
3834 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
3835     VkCommandBuffer                             commandBuffer,
3836     VkBuffer                                    buffer,
3837     VkDeviceSize                                offset);
3838
3839 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
3840     VkCommandBuffer                             commandBuffer,
3841     VkBuffer                                    srcBuffer,
3842     VkBuffer                                    dstBuffer,
3843     uint32_t                                    regionCount,
3844     const VkBufferCopy*                         pRegions);
3845
3846 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
3847     VkCommandBuffer                             commandBuffer,
3848     VkImage                                     srcImage,
3849     VkImageLayout                               srcImageLayout,
3850     VkImage                                     dstImage,
3851     VkImageLayout                               dstImageLayout,
3852     uint32_t                                    regionCount,
3853     const VkImageCopy*                          pRegions);
3854
3855 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
3856     VkCommandBuffer                             commandBuffer,
3857     VkImage                                     srcImage,
3858     VkImageLayout                               srcImageLayout,
3859     VkImage                                     dstImage,
3860     VkImageLayout                               dstImageLayout,
3861     uint32_t                                    regionCount,
3862     const VkImageBlit*                          pRegions,
3863     VkFilter                                    filter);
3864
3865 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
3866     VkCommandBuffer                             commandBuffer,
3867     VkBuffer                                    srcBuffer,
3868     VkImage                                     dstImage,
3869     VkImageLayout                               dstImageLayout,
3870     uint32_t                                    regionCount,
3871     const VkBufferImageCopy*                    pRegions);
3872
3873 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
3874     VkCommandBuffer                             commandBuffer,
3875     VkImage                                     srcImage,
3876     VkImageLayout                               srcImageLayout,
3877     VkBuffer                                    dstBuffer,
3878     uint32_t                                    regionCount,
3879     const VkBufferImageCopy*                    pRegions);
3880
3881 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
3882     VkCommandBuffer                             commandBuffer,
3883     VkBuffer                                    dstBuffer,
3884     VkDeviceSize                                dstOffset,
3885     VkDeviceSize                                dataSize,
3886     const void*                                 pData);
3887
3888 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
3889     VkCommandBuffer                             commandBuffer,
3890     VkBuffer                                    dstBuffer,
3891     VkDeviceSize                                dstOffset,
3892     VkDeviceSize                                size,
3893     uint32_t                                    data);
3894
3895 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
3896     VkCommandBuffer                             commandBuffer,
3897     VkImage                                     image,
3898     VkImageLayout                               imageLayout,
3899     const VkClearColorValue*                    pColor,
3900     uint32_t                                    rangeCount,
3901     const VkImageSubresourceRange*              pRanges);
3902
3903 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
3904     VkCommandBuffer                             commandBuffer,
3905     VkImage                                     image,
3906     VkImageLayout                               imageLayout,
3907     const VkClearDepthStencilValue*             pDepthStencil,
3908     uint32_t                                    rangeCount,
3909     const VkImageSubresourceRange*              pRanges);
3910
3911 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
3912     VkCommandBuffer                             commandBuffer,
3913     uint32_t                                    attachmentCount,
3914     const VkClearAttachment*                    pAttachments,
3915     uint32_t                                    rectCount,
3916     const VkClearRect*                          pRects);
3917
3918 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
3919     VkCommandBuffer                             commandBuffer,
3920     VkImage                                     srcImage,
3921     VkImageLayout                               srcImageLayout,
3922     VkImage                                     dstImage,
3923     VkImageLayout                               dstImageLayout,
3924     uint32_t                                    regionCount,
3925     const VkImageResolve*                       pRegions);
3926
3927 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
3928     VkCommandBuffer                             commandBuffer,
3929     VkEvent                                     event,
3930     VkPipelineStageFlags                        stageMask);
3931
3932 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
3933     VkCommandBuffer                             commandBuffer,
3934     VkEvent                                     event,
3935     VkPipelineStageFlags                        stageMask);
3936
3937 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
3938     VkCommandBuffer                             commandBuffer,
3939     uint32_t                                    eventCount,
3940     const VkEvent*                              pEvents,
3941     VkPipelineStageFlags                        srcStageMask,
3942     VkPipelineStageFlags                        dstStageMask,
3943     uint32_t                                    memoryBarrierCount,
3944     const VkMemoryBarrier*                      pMemoryBarriers,
3945     uint32_t                                    bufferMemoryBarrierCount,
3946     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3947     uint32_t                                    imageMemoryBarrierCount,
3948     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
3949
3950 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
3951     VkCommandBuffer                             commandBuffer,
3952     VkPipelineStageFlags                        srcStageMask,
3953     VkPipelineStageFlags                        dstStageMask,
3954     VkDependencyFlags                           dependencyFlags,
3955     uint32_t                                    memoryBarrierCount,
3956     const VkMemoryBarrier*                      pMemoryBarriers,
3957     uint32_t                                    bufferMemoryBarrierCount,
3958     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3959     uint32_t                                    imageMemoryBarrierCount,
3960     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
3961
3962 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
3963     VkCommandBuffer                             commandBuffer,
3964     VkQueryPool                                 queryPool,
3965     uint32_t                                    query,
3966     VkQueryControlFlags                         flags);
3967
3968 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
3969     VkCommandBuffer                             commandBuffer,
3970     VkQueryPool                                 queryPool,
3971     uint32_t                                    query);
3972
3973 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
3974     VkCommandBuffer                             commandBuffer,
3975     VkQueryPool                                 queryPool,
3976     uint32_t                                    firstQuery,
3977     uint32_t                                    queryCount);
3978
3979 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
3980     VkCommandBuffer                             commandBuffer,
3981     VkPipelineStageFlagBits                     pipelineStage,
3982     VkQueryPool                                 queryPool,
3983     uint32_t                                    query);
3984
3985 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
3986     VkCommandBuffer                             commandBuffer,
3987     VkQueryPool                                 queryPool,
3988     uint32_t                                    firstQuery,
3989     uint32_t                                    queryCount,
3990     VkBuffer                                    dstBuffer,
3991     VkDeviceSize                                dstOffset,
3992     VkDeviceSize                                stride,
3993     VkQueryResultFlags                          flags);
3994
3995 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
3996     VkCommandBuffer                             commandBuffer,
3997     VkPipelineLayout                            layout,
3998     VkShaderStageFlags                          stageFlags,
3999     uint32_t                                    offset,
4000     uint32_t                                    size,
4001     const void*                                 pValues);
4002
4003 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4004     VkCommandBuffer                             commandBuffer,
4005     const VkRenderPassBeginInfo*                pRenderPassBegin,
4006     VkSubpassContents                           contents);
4007
4008 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4009     VkCommandBuffer                             commandBuffer,
4010     VkSubpassContents                           contents);
4011
4012 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4013     VkCommandBuffer                             commandBuffer);
4014
4015 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4016     VkCommandBuffer                             commandBuffer,
4017     uint32_t                                    commandBufferCount,
4018     const VkCommandBuffer*                      pCommandBuffers);
4019 #endif
4020
4021
4022 #define VK_VERSION_1_1 1
4023 // Vulkan 1.1 version number
4024 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
4025
4026 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4027 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4028 #define VK_MAX_DEVICE_GROUP_SIZE          32
4029 #define VK_LUID_SIZE                      8
4030 #define VK_QUEUE_FAMILY_EXTERNAL          (~0U-1)
4031
4032 typedef enum VkPointClippingBehavior {
4033     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4034     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4035     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4036     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4037     VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4038     VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4039     VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
4040     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4041 } VkPointClippingBehavior;
4042
4043 typedef enum VkTessellationDomainOrigin {
4044     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4045     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4046     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4047     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4048     VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4049     VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4050     VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
4051     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4052 } VkTessellationDomainOrigin;
4053
4054 typedef enum VkSamplerYcbcrModelConversion {
4055     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4056     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4057     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4058     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4059     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4060     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4061     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4062     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4063     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4064     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4065     VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4066     VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4067     VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
4068     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4069 } VkSamplerYcbcrModelConversion;
4070
4071 typedef enum VkSamplerYcbcrRange {
4072     VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4073     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4074     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4075     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4076     VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4077     VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4078     VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
4079     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4080 } VkSamplerYcbcrRange;
4081
4082 typedef enum VkChromaLocation {
4083     VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4084     VK_CHROMA_LOCATION_MIDPOINT = 1,
4085     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4086     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4087     VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
4088     VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
4089     VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
4090     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4091 } VkChromaLocation;
4092
4093 typedef enum VkDescriptorUpdateTemplateType {
4094     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4095     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4096     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4097     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4098     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4099     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
4100     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4101 } VkDescriptorUpdateTemplateType;
4102
4103 typedef enum VkSubgroupFeatureFlagBits {
4104     VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4105     VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
4106     VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
4107     VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
4108     VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
4109     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
4110     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
4111     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
4112     VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
4113     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4114 } VkSubgroupFeatureFlagBits;
4115 typedef VkFlags VkSubgroupFeatureFlags;
4116
4117 typedef enum VkPeerMemoryFeatureFlagBits {
4118     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
4119     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
4120     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
4121     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
4122     VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4123     VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4124     VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4125     VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
4126     VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4127 } VkPeerMemoryFeatureFlagBits;
4128 typedef VkFlags VkPeerMemoryFeatureFlags;
4129
4130 typedef enum VkMemoryAllocateFlagBits {
4131     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
4132     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
4133     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
4134     VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4135     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4136     VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4137     VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4138 } VkMemoryAllocateFlagBits;
4139 typedef VkFlags VkMemoryAllocateFlags;
4140 typedef VkFlags VkCommandPoolTrimFlags;
4141 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
4142
4143 typedef enum VkExternalMemoryHandleTypeFlagBits {
4144     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4145     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4146     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4147     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
4148     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
4149     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
4150     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
4151     VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
4152     VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
4153     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
4154     VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
4155     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4156     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4157     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4158     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4159     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4160     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4161     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4162     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4163 } VkExternalMemoryHandleTypeFlagBits;
4164 typedef VkFlags VkExternalMemoryHandleTypeFlags;
4165
4166 typedef enum VkExternalMemoryFeatureFlagBits {
4167     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
4168     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
4169     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
4170     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
4171     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
4172     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
4173     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4174 } VkExternalMemoryFeatureFlagBits;
4175 typedef VkFlags VkExternalMemoryFeatureFlags;
4176
4177 typedef enum VkExternalFenceHandleTypeFlagBits {
4178     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4179     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4180     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4181     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
4182     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4183     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4184     VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4185     VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
4186     VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4187 } VkExternalFenceHandleTypeFlagBits;
4188 typedef VkFlags VkExternalFenceHandleTypeFlags;
4189
4190 typedef enum VkExternalFenceFeatureFlagBits {
4191     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4192     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4193     VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4194     VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
4195     VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4196 } VkExternalFenceFeatureFlagBits;
4197 typedef VkFlags VkExternalFenceFeatureFlags;
4198
4199 typedef enum VkFenceImportFlagBits {
4200     VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
4201     VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
4202     VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4203 } VkFenceImportFlagBits;
4204 typedef VkFlags VkFenceImportFlags;
4205
4206 typedef enum VkSemaphoreImportFlagBits {
4207     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
4208     VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
4209     VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4210 } VkSemaphoreImportFlagBits;
4211 typedef VkFlags VkSemaphoreImportFlags;
4212
4213 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
4214     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4215     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4216     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4217     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
4218     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
4219     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
4220     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4221     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4222     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
4223     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
4224     VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4225 } VkExternalSemaphoreHandleTypeFlagBits;
4226 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
4227
4228 typedef enum VkExternalSemaphoreFeatureFlagBits {
4229     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4230     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4231     VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
4232     VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
4233     VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4234 } VkExternalSemaphoreFeatureFlagBits;
4235 typedef VkFlags VkExternalSemaphoreFeatureFlags;
4236 typedef struct VkPhysicalDeviceSubgroupProperties {
4237     VkStructureType           sType;
4238     void*                     pNext;
4239     uint32_t                  subgroupSize;
4240     VkShaderStageFlags        supportedStages;
4241     VkSubgroupFeatureFlags    supportedOperations;
4242     VkBool32                  quadOperationsInAllStages;
4243 } VkPhysicalDeviceSubgroupProperties;
4244
4245 typedef struct VkBindBufferMemoryInfo {
4246     VkStructureType    sType;
4247     const void*        pNext;
4248     VkBuffer           buffer;
4249     VkDeviceMemory     memory;
4250     VkDeviceSize       memoryOffset;
4251 } VkBindBufferMemoryInfo;
4252
4253 typedef struct VkBindImageMemoryInfo {
4254     VkStructureType    sType;
4255     const void*        pNext;
4256     VkImage            image;
4257     VkDeviceMemory     memory;
4258     VkDeviceSize       memoryOffset;
4259 } VkBindImageMemoryInfo;
4260
4261 typedef struct VkPhysicalDevice16BitStorageFeatures {
4262     VkStructureType    sType;
4263     void*              pNext;
4264     VkBool32           storageBuffer16BitAccess;
4265     VkBool32           uniformAndStorageBuffer16BitAccess;
4266     VkBool32           storagePushConstant16;
4267     VkBool32           storageInputOutput16;
4268 } VkPhysicalDevice16BitStorageFeatures;
4269
4270 typedef struct VkMemoryDedicatedRequirements {
4271     VkStructureType    sType;
4272     void*              pNext;
4273     VkBool32           prefersDedicatedAllocation;
4274     VkBool32           requiresDedicatedAllocation;
4275 } VkMemoryDedicatedRequirements;
4276
4277 typedef struct VkMemoryDedicatedAllocateInfo {
4278     VkStructureType    sType;
4279     const void*        pNext;
4280     VkImage            image;
4281     VkBuffer           buffer;
4282 } VkMemoryDedicatedAllocateInfo;
4283
4284 typedef struct VkMemoryAllocateFlagsInfo {
4285     VkStructureType          sType;
4286     const void*              pNext;
4287     VkMemoryAllocateFlags    flags;
4288     uint32_t                 deviceMask;
4289 } VkMemoryAllocateFlagsInfo;
4290
4291 typedef struct VkDeviceGroupRenderPassBeginInfo {
4292     VkStructureType    sType;
4293     const void*        pNext;
4294     uint32_t           deviceMask;
4295     uint32_t           deviceRenderAreaCount;
4296     const VkRect2D*    pDeviceRenderAreas;
4297 } VkDeviceGroupRenderPassBeginInfo;
4298
4299 typedef struct VkDeviceGroupCommandBufferBeginInfo {
4300     VkStructureType    sType;
4301     const void*        pNext;
4302     uint32_t           deviceMask;
4303 } VkDeviceGroupCommandBufferBeginInfo;
4304
4305 typedef struct VkDeviceGroupSubmitInfo {
4306     VkStructureType    sType;
4307     const void*        pNext;
4308     uint32_t           waitSemaphoreCount;
4309     const uint32_t*    pWaitSemaphoreDeviceIndices;
4310     uint32_t           commandBufferCount;
4311     const uint32_t*    pCommandBufferDeviceMasks;
4312     uint32_t           signalSemaphoreCount;
4313     const uint32_t*    pSignalSemaphoreDeviceIndices;
4314 } VkDeviceGroupSubmitInfo;
4315
4316 typedef struct VkDeviceGroupBindSparseInfo {
4317     VkStructureType    sType;
4318     const void*        pNext;
4319     uint32_t           resourceDeviceIndex;
4320     uint32_t           memoryDeviceIndex;
4321 } VkDeviceGroupBindSparseInfo;
4322
4323 typedef struct VkBindBufferMemoryDeviceGroupInfo {
4324     VkStructureType    sType;
4325     const void*        pNext;
4326     uint32_t           deviceIndexCount;
4327     const uint32_t*    pDeviceIndices;
4328 } VkBindBufferMemoryDeviceGroupInfo;
4329
4330 typedef struct VkBindImageMemoryDeviceGroupInfo {
4331     VkStructureType    sType;
4332     const void*        pNext;
4333     uint32_t           deviceIndexCount;
4334     const uint32_t*    pDeviceIndices;
4335     uint32_t           splitInstanceBindRegionCount;
4336     const VkRect2D*    pSplitInstanceBindRegions;
4337 } VkBindImageMemoryDeviceGroupInfo;
4338
4339 typedef struct VkPhysicalDeviceGroupProperties {
4340     VkStructureType     sType;
4341     void*               pNext;
4342     uint32_t            physicalDeviceCount;
4343     VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
4344     VkBool32            subsetAllocation;
4345 } VkPhysicalDeviceGroupProperties;
4346
4347 typedef struct VkDeviceGroupDeviceCreateInfo {
4348     VkStructureType            sType;
4349     const void*                pNext;
4350     uint32_t                   physicalDeviceCount;
4351     const VkPhysicalDevice*    pPhysicalDevices;
4352 } VkDeviceGroupDeviceCreateInfo;
4353
4354 typedef struct VkBufferMemoryRequirementsInfo2 {
4355     VkStructureType    sType;
4356     const void*        pNext;
4357     VkBuffer           buffer;
4358 } VkBufferMemoryRequirementsInfo2;
4359
4360 typedef struct VkImageMemoryRequirementsInfo2 {
4361     VkStructureType    sType;
4362     const void*        pNext;
4363     VkImage            image;
4364 } VkImageMemoryRequirementsInfo2;
4365
4366 typedef struct VkImageSparseMemoryRequirementsInfo2 {
4367     VkStructureType    sType;
4368     const void*        pNext;
4369     VkImage            image;
4370 } VkImageSparseMemoryRequirementsInfo2;
4371
4372 typedef struct VkMemoryRequirements2 {
4373     VkStructureType         sType;
4374     void*                   pNext;
4375     VkMemoryRequirements    memoryRequirements;
4376 } VkMemoryRequirements2;
4377
4378 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
4379
4380 typedef struct VkSparseImageMemoryRequirements2 {
4381     VkStructureType                    sType;
4382     void*                              pNext;
4383     VkSparseImageMemoryRequirements    memoryRequirements;
4384 } VkSparseImageMemoryRequirements2;
4385
4386 typedef struct VkPhysicalDeviceFeatures2 {
4387     VkStructureType             sType;
4388     void*                       pNext;
4389     VkPhysicalDeviceFeatures    features;
4390 } VkPhysicalDeviceFeatures2;
4391
4392 typedef struct VkPhysicalDeviceProperties2 {
4393     VkStructureType               sType;
4394     void*                         pNext;
4395     VkPhysicalDeviceProperties    properties;
4396 } VkPhysicalDeviceProperties2;
4397
4398 typedef struct VkFormatProperties2 {
4399     VkStructureType       sType;
4400     void*                 pNext;
4401     VkFormatProperties    formatProperties;
4402 } VkFormatProperties2;
4403
4404 typedef struct VkImageFormatProperties2 {
4405     VkStructureType            sType;
4406     void*                      pNext;
4407     VkImageFormatProperties    imageFormatProperties;
4408 } VkImageFormatProperties2;
4409
4410 typedef struct VkPhysicalDeviceImageFormatInfo2 {
4411     VkStructureType       sType;
4412     const void*           pNext;
4413     VkFormat              format;
4414     VkImageType           type;
4415     VkImageTiling         tiling;
4416     VkImageUsageFlags     usage;
4417     VkImageCreateFlags    flags;
4418 } VkPhysicalDeviceImageFormatInfo2;
4419
4420 typedef struct VkQueueFamilyProperties2 {
4421     VkStructureType            sType;
4422     void*                      pNext;
4423     VkQueueFamilyProperties    queueFamilyProperties;
4424 } VkQueueFamilyProperties2;
4425
4426 typedef struct VkPhysicalDeviceMemoryProperties2 {
4427     VkStructureType                     sType;
4428     void*                               pNext;
4429     VkPhysicalDeviceMemoryProperties    memoryProperties;
4430 } VkPhysicalDeviceMemoryProperties2;
4431
4432 typedef struct VkSparseImageFormatProperties2 {
4433     VkStructureType                  sType;
4434     void*                            pNext;
4435     VkSparseImageFormatProperties    properties;
4436 } VkSparseImageFormatProperties2;
4437
4438 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
4439     VkStructureType          sType;
4440     const void*              pNext;
4441     VkFormat                 format;
4442     VkImageType              type;
4443     VkSampleCountFlagBits    samples;
4444     VkImageUsageFlags        usage;
4445     VkImageTiling            tiling;
4446 } VkPhysicalDeviceSparseImageFormatInfo2;
4447
4448 typedef struct VkPhysicalDevicePointClippingProperties {
4449     VkStructureType            sType;
4450     void*                      pNext;
4451     VkPointClippingBehavior    pointClippingBehavior;
4452 } VkPhysicalDevicePointClippingProperties;
4453
4454 typedef struct VkInputAttachmentAspectReference {
4455     uint32_t              subpass;
4456     uint32_t              inputAttachmentIndex;
4457     VkImageAspectFlags    aspectMask;
4458 } VkInputAttachmentAspectReference;
4459
4460 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
4461     VkStructureType                            sType;
4462     const void*                                pNext;
4463     uint32_t                                   aspectReferenceCount;
4464     const VkInputAttachmentAspectReference*    pAspectReferences;
4465 } VkRenderPassInputAttachmentAspectCreateInfo;
4466
4467 typedef struct VkImageViewUsageCreateInfo {
4468     VkStructureType      sType;
4469     const void*          pNext;
4470     VkImageUsageFlags    usage;
4471 } VkImageViewUsageCreateInfo;
4472
4473 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
4474     VkStructureType               sType;
4475     const void*                   pNext;
4476     VkTessellationDomainOrigin    domainOrigin;
4477 } VkPipelineTessellationDomainOriginStateCreateInfo;
4478
4479 typedef struct VkRenderPassMultiviewCreateInfo {
4480     VkStructureType    sType;
4481     const void*        pNext;
4482     uint32_t           subpassCount;
4483     const uint32_t*    pViewMasks;
4484     uint32_t           dependencyCount;
4485     const int32_t*     pViewOffsets;
4486     uint32_t           correlationMaskCount;
4487     const uint32_t*    pCorrelationMasks;
4488 } VkRenderPassMultiviewCreateInfo;
4489
4490 typedef struct VkPhysicalDeviceMultiviewFeatures {
4491     VkStructureType    sType;
4492     void*              pNext;
4493     VkBool32           multiview;
4494     VkBool32           multiviewGeometryShader;
4495     VkBool32           multiviewTessellationShader;
4496 } VkPhysicalDeviceMultiviewFeatures;
4497
4498 typedef struct VkPhysicalDeviceMultiviewProperties {
4499     VkStructureType    sType;
4500     void*              pNext;
4501     uint32_t           maxMultiviewViewCount;
4502     uint32_t           maxMultiviewInstanceIndex;
4503 } VkPhysicalDeviceMultiviewProperties;
4504
4505 typedef struct VkPhysicalDeviceVariablePointersFeatures {
4506     VkStructureType    sType;
4507     void*              pNext;
4508     VkBool32           variablePointersStorageBuffer;
4509     VkBool32           variablePointers;
4510 } VkPhysicalDeviceVariablePointersFeatures;
4511
4512 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
4513
4514 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
4515     VkStructureType    sType;
4516     void*              pNext;
4517     VkBool32           protectedMemory;
4518 } VkPhysicalDeviceProtectedMemoryFeatures;
4519
4520 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
4521     VkStructureType    sType;
4522     void*              pNext;
4523     VkBool32           protectedNoFault;
4524 } VkPhysicalDeviceProtectedMemoryProperties;
4525
4526 typedef struct VkDeviceQueueInfo2 {
4527     VkStructureType             sType;
4528     const void*                 pNext;
4529     VkDeviceQueueCreateFlags    flags;
4530     uint32_t                    queueFamilyIndex;
4531     uint32_t                    queueIndex;
4532 } VkDeviceQueueInfo2;
4533
4534 typedef struct VkProtectedSubmitInfo {
4535     VkStructureType    sType;
4536     const void*        pNext;
4537     VkBool32           protectedSubmit;
4538 } VkProtectedSubmitInfo;
4539
4540 typedef struct VkSamplerYcbcrConversionCreateInfo {
4541     VkStructureType                  sType;
4542     const void*                      pNext;
4543     VkFormat                         format;
4544     VkSamplerYcbcrModelConversion    ycbcrModel;
4545     VkSamplerYcbcrRange              ycbcrRange;
4546     VkComponentMapping               components;
4547     VkChromaLocation                 xChromaOffset;
4548     VkChromaLocation                 yChromaOffset;
4549     VkFilter                         chromaFilter;
4550     VkBool32                         forceExplicitReconstruction;
4551 } VkSamplerYcbcrConversionCreateInfo;
4552
4553 typedef struct VkSamplerYcbcrConversionInfo {
4554     VkStructureType             sType;
4555     const void*                 pNext;
4556     VkSamplerYcbcrConversion    conversion;
4557 } VkSamplerYcbcrConversionInfo;
4558
4559 typedef struct VkBindImagePlaneMemoryInfo {
4560     VkStructureType          sType;
4561     const void*              pNext;
4562     VkImageAspectFlagBits    planeAspect;
4563 } VkBindImagePlaneMemoryInfo;
4564
4565 typedef struct VkImagePlaneMemoryRequirementsInfo {
4566     VkStructureType          sType;
4567     const void*              pNext;
4568     VkImageAspectFlagBits    planeAspect;
4569 } VkImagePlaneMemoryRequirementsInfo;
4570
4571 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4572     VkStructureType    sType;
4573     void*              pNext;
4574     VkBool32           samplerYcbcrConversion;
4575 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
4576
4577 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
4578     VkStructureType    sType;
4579     void*              pNext;
4580     uint32_t           combinedImageSamplerDescriptorCount;
4581 } VkSamplerYcbcrConversionImageFormatProperties;
4582
4583 typedef struct VkDescriptorUpdateTemplateEntry {
4584     uint32_t            dstBinding;
4585     uint32_t            dstArrayElement;
4586     uint32_t            descriptorCount;
4587     VkDescriptorType    descriptorType;
4588     size_t              offset;
4589     size_t              stride;
4590 } VkDescriptorUpdateTemplateEntry;
4591
4592 typedef struct VkDescriptorUpdateTemplateCreateInfo {
4593     VkStructureType                           sType;
4594     const void*                               pNext;
4595     VkDescriptorUpdateTemplateCreateFlags     flags;
4596     uint32_t                                  descriptorUpdateEntryCount;
4597     const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries;
4598     VkDescriptorUpdateTemplateType            templateType;
4599     VkDescriptorSetLayout                     descriptorSetLayout;
4600     VkPipelineBindPoint                       pipelineBindPoint;
4601     VkPipelineLayout                          pipelineLayout;
4602     uint32_t                                  set;
4603 } VkDescriptorUpdateTemplateCreateInfo;
4604
4605 typedef struct VkExternalMemoryProperties {
4606     VkExternalMemoryFeatureFlags       externalMemoryFeatures;
4607     VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes;
4608     VkExternalMemoryHandleTypeFlags    compatibleHandleTypes;
4609 } VkExternalMemoryProperties;
4610
4611 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
4612     VkStructureType                       sType;
4613     const void*                           pNext;
4614     VkExternalMemoryHandleTypeFlagBits    handleType;
4615 } VkPhysicalDeviceExternalImageFormatInfo;
4616
4617 typedef struct VkExternalImageFormatProperties {
4618     VkStructureType               sType;
4619     void*                         pNext;
4620     VkExternalMemoryProperties    externalMemoryProperties;
4621 } VkExternalImageFormatProperties;
4622
4623 typedef struct VkPhysicalDeviceExternalBufferInfo {
4624     VkStructureType                       sType;
4625     const void*                           pNext;
4626     VkBufferCreateFlags                   flags;
4627     VkBufferUsageFlags                    usage;
4628     VkExternalMemoryHandleTypeFlagBits    handleType;
4629 } VkPhysicalDeviceExternalBufferInfo;
4630
4631 typedef struct VkExternalBufferProperties {
4632     VkStructureType               sType;
4633     void*                         pNext;
4634     VkExternalMemoryProperties    externalMemoryProperties;
4635 } VkExternalBufferProperties;
4636
4637 typedef struct VkPhysicalDeviceIDProperties {
4638     VkStructureType    sType;
4639     void*              pNext;
4640     uint8_t            deviceUUID[VK_UUID_SIZE];
4641     uint8_t            driverUUID[VK_UUID_SIZE];
4642     uint8_t            deviceLUID[VK_LUID_SIZE];
4643     uint32_t           deviceNodeMask;
4644     VkBool32           deviceLUIDValid;
4645 } VkPhysicalDeviceIDProperties;
4646
4647 typedef struct VkExternalMemoryImageCreateInfo {
4648     VkStructureType                    sType;
4649     const void*                        pNext;
4650     VkExternalMemoryHandleTypeFlags    handleTypes;
4651 } VkExternalMemoryImageCreateInfo;
4652
4653 typedef struct VkExternalMemoryBufferCreateInfo {
4654     VkStructureType                    sType;
4655     const void*                        pNext;
4656     VkExternalMemoryHandleTypeFlags    handleTypes;
4657 } VkExternalMemoryBufferCreateInfo;
4658
4659 typedef struct VkExportMemoryAllocateInfo {
4660     VkStructureType                    sType;
4661     const void*                        pNext;
4662     VkExternalMemoryHandleTypeFlags    handleTypes;
4663 } VkExportMemoryAllocateInfo;
4664
4665 typedef struct VkPhysicalDeviceExternalFenceInfo {
4666     VkStructureType                      sType;
4667     const void*                          pNext;
4668     VkExternalFenceHandleTypeFlagBits    handleType;
4669 } VkPhysicalDeviceExternalFenceInfo;
4670
4671 typedef struct VkExternalFenceProperties {
4672     VkStructureType                   sType;
4673     void*                             pNext;
4674     VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes;
4675     VkExternalFenceHandleTypeFlags    compatibleHandleTypes;
4676     VkExternalFenceFeatureFlags       externalFenceFeatures;
4677 } VkExternalFenceProperties;
4678
4679 typedef struct VkExportFenceCreateInfo {
4680     VkStructureType                   sType;
4681     const void*                       pNext;
4682     VkExternalFenceHandleTypeFlags    handleTypes;
4683 } VkExportFenceCreateInfo;
4684
4685 typedef struct VkExportSemaphoreCreateInfo {
4686     VkStructureType                       sType;
4687     const void*                           pNext;
4688     VkExternalSemaphoreHandleTypeFlags    handleTypes;
4689 } VkExportSemaphoreCreateInfo;
4690
4691 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
4692     VkStructureType                          sType;
4693     const void*                              pNext;
4694     VkExternalSemaphoreHandleTypeFlagBits    handleType;
4695 } VkPhysicalDeviceExternalSemaphoreInfo;
4696
4697 typedef struct VkExternalSemaphoreProperties {
4698     VkStructureType                       sType;
4699     void*                                 pNext;
4700     VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes;
4701     VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes;
4702     VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures;
4703 } VkExternalSemaphoreProperties;
4704
4705 typedef struct VkPhysicalDeviceMaintenance3Properties {
4706     VkStructureType    sType;
4707     void*              pNext;
4708     uint32_t           maxPerSetDescriptors;
4709     VkDeviceSize       maxMemoryAllocationSize;
4710 } VkPhysicalDeviceMaintenance3Properties;
4711
4712 typedef struct VkDescriptorSetLayoutSupport {
4713     VkStructureType    sType;
4714     void*              pNext;
4715     VkBool32           supported;
4716 } VkDescriptorSetLayoutSupport;
4717
4718 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
4719     VkStructureType    sType;
4720     void*              pNext;
4721     VkBool32           shaderDrawParameters;
4722 } VkPhysicalDeviceShaderDrawParametersFeatures;
4723
4724 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
4725
4726 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
4727 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
4728 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
4729 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
4730 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
4731 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4732 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
4733 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4734 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4735 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
4736 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
4737 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
4738 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
4739 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
4740 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
4741 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
4742 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
4743 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
4744 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
4745 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
4746 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
4747 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
4748 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4749 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
4750 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
4751 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
4752 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
4753 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
4754
4755 #ifndef VK_NO_PROTOTYPES
4756 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
4757     uint32_t*                                   pApiVersion);
4758
4759 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
4760     VkDevice                                    device,
4761     uint32_t                                    bindInfoCount,
4762     const VkBindBufferMemoryInfo*               pBindInfos);
4763
4764 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
4765     VkDevice                                    device,
4766     uint32_t                                    bindInfoCount,
4767     const VkBindImageMemoryInfo*                pBindInfos);
4768
4769 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
4770     VkDevice                                    device,
4771     uint32_t                                    heapIndex,
4772     uint32_t                                    localDeviceIndex,
4773     uint32_t                                    remoteDeviceIndex,
4774     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
4775
4776 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
4777     VkCommandBuffer                             commandBuffer,
4778     uint32_t                                    deviceMask);
4779
4780 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
4781     VkCommandBuffer                             commandBuffer,
4782     uint32_t                                    baseGroupX,
4783     uint32_t                                    baseGroupY,
4784     uint32_t                                    baseGroupZ,
4785     uint32_t                                    groupCountX,
4786     uint32_t                                    groupCountY,
4787     uint32_t                                    groupCountZ);
4788
4789 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
4790     VkInstance                                  instance,
4791     uint32_t*                                   pPhysicalDeviceGroupCount,
4792     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
4793
4794 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
4795     VkDevice                                    device,
4796     const VkImageMemoryRequirementsInfo2*       pInfo,
4797     VkMemoryRequirements2*                      pMemoryRequirements);
4798
4799 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
4800     VkDevice                                    device,
4801     const VkBufferMemoryRequirementsInfo2*      pInfo,
4802     VkMemoryRequirements2*                      pMemoryRequirements);
4803
4804 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
4805     VkDevice                                    device,
4806     const VkImageSparseMemoryRequirementsInfo2* pInfo,
4807     uint32_t*                                   pSparseMemoryRequirementCount,
4808     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
4809
4810 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
4811     VkPhysicalDevice                            physicalDevice,
4812     VkPhysicalDeviceFeatures2*                  pFeatures);
4813
4814 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
4815     VkPhysicalDevice                            physicalDevice,
4816     VkPhysicalDeviceProperties2*                pProperties);
4817
4818 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
4819     VkPhysicalDevice                            physicalDevice,
4820     VkFormat                                    format,
4821     VkFormatProperties2*                        pFormatProperties);
4822
4823 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
4824     VkPhysicalDevice                            physicalDevice,
4825     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
4826     VkImageFormatProperties2*                   pImageFormatProperties);
4827
4828 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
4829     VkPhysicalDevice                            physicalDevice,
4830     uint32_t*                                   pQueueFamilyPropertyCount,
4831     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
4832
4833 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
4834     VkPhysicalDevice                            physicalDevice,
4835     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
4836
4837 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
4838     VkPhysicalDevice                            physicalDevice,
4839     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
4840     uint32_t*                                   pPropertyCount,
4841     VkSparseImageFormatProperties2*             pProperties);
4842
4843 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
4844     VkDevice                                    device,
4845     VkCommandPool                               commandPool,
4846     VkCommandPoolTrimFlags                      flags);
4847
4848 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
4849     VkDevice                                    device,
4850     const VkDeviceQueueInfo2*                   pQueueInfo,
4851     VkQueue*                                    pQueue);
4852
4853 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
4854     VkDevice                                    device,
4855     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
4856     const VkAllocationCallbacks*                pAllocator,
4857     VkSamplerYcbcrConversion*                   pYcbcrConversion);
4858
4859 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
4860     VkDevice                                    device,
4861     VkSamplerYcbcrConversion                    ycbcrConversion,
4862     const VkAllocationCallbacks*                pAllocator);
4863
4864 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
4865     VkDevice                                    device,
4866     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4867     const VkAllocationCallbacks*                pAllocator,
4868     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
4869
4870 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
4871     VkDevice                                    device,
4872     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4873     const VkAllocationCallbacks*                pAllocator);
4874
4875 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
4876     VkDevice                                    device,
4877     VkDescriptorSet                             descriptorSet,
4878     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4879     const void*                                 pData);
4880
4881 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
4882     VkPhysicalDevice                            physicalDevice,
4883     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
4884     VkExternalBufferProperties*                 pExternalBufferProperties);
4885
4886 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
4887     VkPhysicalDevice                            physicalDevice,
4888     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
4889     VkExternalFenceProperties*                  pExternalFenceProperties);
4890
4891 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
4892     VkPhysicalDevice                            physicalDevice,
4893     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
4894     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
4895
4896 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
4897     VkDevice                                    device,
4898     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4899     VkDescriptorSetLayoutSupport*               pSupport);
4900 #endif
4901
4902
4903 #define VK_VERSION_1_2 1
4904 // Vulkan 1.2 version number
4905 #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
4906
4907 typedef uint64_t VkDeviceAddress;
4908 #define VK_MAX_DRIVER_NAME_SIZE           256
4909 #define VK_MAX_DRIVER_INFO_SIZE           256
4910
4911 typedef enum VkDriverId {
4912     VK_DRIVER_ID_AMD_PROPRIETARY = 1,
4913     VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
4914     VK_DRIVER_ID_MESA_RADV = 3,
4915     VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
4916     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
4917     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
4918     VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
4919     VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
4920     VK_DRIVER_ID_ARM_PROPRIETARY = 9,
4921     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
4922     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
4923     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
4924     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
4925     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
4926     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
4927     VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
4928     VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
4929     VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
4930     VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
4931     VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
4932     VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
4933     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
4934     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
4935     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
4936     VK_DRIVER_ID_BEGIN_RANGE = VK_DRIVER_ID_AMD_PROPRIETARY,
4937     VK_DRIVER_ID_END_RANGE = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
4938     VK_DRIVER_ID_RANGE_SIZE = (VK_DRIVER_ID_BROADCOM_PROPRIETARY - VK_DRIVER_ID_AMD_PROPRIETARY + 1),
4939     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
4940 } VkDriverId;
4941
4942 typedef enum VkShaderFloatControlsIndependence {
4943     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
4944     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
4945     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
4946     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
4947     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
4948     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
4949     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
4950     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
4951     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY + 1),
4952     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
4953 } VkShaderFloatControlsIndependence;
4954
4955 typedef enum VkSamplerReductionMode {
4956     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
4957     VK_SAMPLER_REDUCTION_MODE_MIN = 1,
4958     VK_SAMPLER_REDUCTION_MODE_MAX = 2,
4959     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
4960     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
4961     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
4962     VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
4963     VK_SAMPLER_REDUCTION_MODE_END_RANGE = VK_SAMPLER_REDUCTION_MODE_MAX,
4964     VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE = (VK_SAMPLER_REDUCTION_MODE_MAX - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE + 1),
4965     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
4966 } VkSamplerReductionMode;
4967
4968 typedef enum VkSemaphoreType {
4969     VK_SEMAPHORE_TYPE_BINARY = 0,
4970     VK_SEMAPHORE_TYPE_TIMELINE = 1,
4971     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
4972     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
4973     VK_SEMAPHORE_TYPE_BEGIN_RANGE = VK_SEMAPHORE_TYPE_BINARY,
4974     VK_SEMAPHORE_TYPE_END_RANGE = VK_SEMAPHORE_TYPE_TIMELINE,
4975     VK_SEMAPHORE_TYPE_RANGE_SIZE = (VK_SEMAPHORE_TYPE_TIMELINE - VK_SEMAPHORE_TYPE_BINARY + 1),
4976     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
4977 } VkSemaphoreType;
4978
4979 typedef enum VkResolveModeFlagBits {
4980     VK_RESOLVE_MODE_NONE = 0,
4981     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
4982     VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
4983     VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
4984     VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
4985     VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
4986     VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
4987     VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
4988     VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
4989     VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
4990     VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4991 } VkResolveModeFlagBits;
4992 typedef VkFlags VkResolveModeFlags;
4993
4994 typedef enum VkDescriptorBindingFlagBits {
4995     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
4996     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
4997     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
4998     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
4999     VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5000     VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5001     VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5002     VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5003     VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5004 } VkDescriptorBindingFlagBits;
5005 typedef VkFlags VkDescriptorBindingFlags;
5006
5007 typedef enum VkSemaphoreWaitFlagBits {
5008     VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5009     VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5010     VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5011 } VkSemaphoreWaitFlagBits;
5012 typedef VkFlags VkSemaphoreWaitFlags;
5013 typedef struct VkPhysicalDeviceVulkan11Features {
5014     VkStructureType    sType;
5015     void*              pNext;
5016     VkBool32           storageBuffer16BitAccess;
5017     VkBool32           uniformAndStorageBuffer16BitAccess;
5018     VkBool32           storagePushConstant16;
5019     VkBool32           storageInputOutput16;
5020     VkBool32           multiview;
5021     VkBool32           multiviewGeometryShader;
5022     VkBool32           multiviewTessellationShader;
5023     VkBool32           variablePointersStorageBuffer;
5024     VkBool32           variablePointers;
5025     VkBool32           protectedMemory;
5026     VkBool32           samplerYcbcrConversion;
5027     VkBool32           shaderDrawParameters;
5028 } VkPhysicalDeviceVulkan11Features;
5029
5030 typedef struct VkPhysicalDeviceVulkan11Properties {
5031     VkStructureType            sType;
5032     void*                      pNext;
5033     uint8_t                    deviceUUID[VK_UUID_SIZE];
5034     uint8_t                    driverUUID[VK_UUID_SIZE];
5035     uint8_t                    deviceLUID[VK_LUID_SIZE];
5036     uint32_t                   deviceNodeMask;
5037     VkBool32                   deviceLUIDValid;
5038     uint32_t                   subgroupSize;
5039     VkShaderStageFlags         subgroupSupportedStages;
5040     VkSubgroupFeatureFlags     subgroupSupportedOperations;
5041     VkBool32                   subgroupQuadOperationsInAllStages;
5042     VkPointClippingBehavior    pointClippingBehavior;
5043     uint32_t                   maxMultiviewViewCount;
5044     uint32_t                   maxMultiviewInstanceIndex;
5045     VkBool32                   protectedNoFault;
5046     uint32_t                   maxPerSetDescriptors;
5047     VkDeviceSize               maxMemoryAllocationSize;
5048 } VkPhysicalDeviceVulkan11Properties;
5049
5050 typedef struct VkPhysicalDeviceVulkan12Features {
5051     VkStructureType    sType;
5052     void*              pNext;
5053     VkBool32           samplerMirrorClampToEdge;
5054     VkBool32           drawIndirectCount;
5055     VkBool32           storageBuffer8BitAccess;
5056     VkBool32           uniformAndStorageBuffer8BitAccess;
5057     VkBool32           storagePushConstant8;
5058     VkBool32           shaderBufferInt64Atomics;
5059     VkBool32           shaderSharedInt64Atomics;
5060     VkBool32           shaderFloat16;
5061     VkBool32           shaderInt8;
5062     VkBool32           descriptorIndexing;
5063     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5064     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5065     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5066     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5067     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5068     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5069     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5070     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5071     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5072     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5073     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5074     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5075     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5076     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5077     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5078     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5079     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5080     VkBool32           descriptorBindingPartiallyBound;
5081     VkBool32           descriptorBindingVariableDescriptorCount;
5082     VkBool32           runtimeDescriptorArray;
5083     VkBool32           samplerFilterMinmax;
5084     VkBool32           scalarBlockLayout;
5085     VkBool32           imagelessFramebuffer;
5086     VkBool32           uniformBufferStandardLayout;
5087     VkBool32           shaderSubgroupExtendedTypes;
5088     VkBool32           separateDepthStencilLayouts;
5089     VkBool32           hostQueryReset;
5090     VkBool32           timelineSemaphore;
5091     VkBool32           bufferDeviceAddress;
5092     VkBool32           bufferDeviceAddressCaptureReplay;
5093     VkBool32           bufferDeviceAddressMultiDevice;
5094     VkBool32           vulkanMemoryModel;
5095     VkBool32           vulkanMemoryModelDeviceScope;
5096     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5097     VkBool32           shaderOutputViewportIndex;
5098     VkBool32           shaderOutputLayer;
5099     VkBool32           subgroupBroadcastDynamicId;
5100 } VkPhysicalDeviceVulkan12Features;
5101
5102 typedef struct VkConformanceVersion {
5103     uint8_t    major;
5104     uint8_t    minor;
5105     uint8_t    subminor;
5106     uint8_t    patch;
5107 } VkConformanceVersion;
5108
5109 typedef struct VkPhysicalDeviceVulkan12Properties {
5110     VkStructureType                      sType;
5111     void*                                pNext;
5112     VkDriverId                           driverID;
5113     char                                 driverName[VK_MAX_DRIVER_NAME_SIZE];
5114     char                                 driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5115     VkConformanceVersion                 conformanceVersion;
5116     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5117     VkShaderFloatControlsIndependence    roundingModeIndependence;
5118     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5119     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5120     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5121     VkBool32                             shaderDenormPreserveFloat16;
5122     VkBool32                             shaderDenormPreserveFloat32;
5123     VkBool32                             shaderDenormPreserveFloat64;
5124     VkBool32                             shaderDenormFlushToZeroFloat16;
5125     VkBool32                             shaderDenormFlushToZeroFloat32;
5126     VkBool32                             shaderDenormFlushToZeroFloat64;
5127     VkBool32                             shaderRoundingModeRTEFloat16;
5128     VkBool32                             shaderRoundingModeRTEFloat32;
5129     VkBool32                             shaderRoundingModeRTEFloat64;
5130     VkBool32                             shaderRoundingModeRTZFloat16;
5131     VkBool32                             shaderRoundingModeRTZFloat32;
5132     VkBool32                             shaderRoundingModeRTZFloat64;
5133     uint32_t                             maxUpdateAfterBindDescriptorsInAllPools;
5134     VkBool32                             shaderUniformBufferArrayNonUniformIndexingNative;
5135     VkBool32                             shaderSampledImageArrayNonUniformIndexingNative;
5136     VkBool32                             shaderStorageBufferArrayNonUniformIndexingNative;
5137     VkBool32                             shaderStorageImageArrayNonUniformIndexingNative;
5138     VkBool32                             shaderInputAttachmentArrayNonUniformIndexingNative;
5139     VkBool32                             robustBufferAccessUpdateAfterBind;
5140     VkBool32                             quadDivergentImplicitLod;
5141     uint32_t                             maxPerStageDescriptorUpdateAfterBindSamplers;
5142     uint32_t                             maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5143     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5144     uint32_t                             maxPerStageDescriptorUpdateAfterBindSampledImages;
5145     uint32_t                             maxPerStageDescriptorUpdateAfterBindStorageImages;
5146     uint32_t                             maxPerStageDescriptorUpdateAfterBindInputAttachments;
5147     uint32_t                             maxPerStageUpdateAfterBindResources;
5148     uint32_t                             maxDescriptorSetUpdateAfterBindSamplers;
5149     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffers;
5150     uint32_t                             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5151     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffers;
5152     uint32_t                             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5153     uint32_t                             maxDescriptorSetUpdateAfterBindSampledImages;
5154     uint32_t                             maxDescriptorSetUpdateAfterBindStorageImages;
5155     uint32_t                             maxDescriptorSetUpdateAfterBindInputAttachments;
5156     VkResolveModeFlags                   supportedDepthResolveModes;
5157     VkResolveModeFlags                   supportedStencilResolveModes;
5158     VkBool32                             independentResolveNone;
5159     VkBool32                             independentResolve;
5160     VkBool32                             filterMinmaxSingleComponentFormats;
5161     VkBool32                             filterMinmaxImageComponentMapping;
5162     uint64_t                             maxTimelineSemaphoreValueDifference;
5163     VkSampleCountFlags                   framebufferIntegerColorSampleCounts;
5164 } VkPhysicalDeviceVulkan12Properties;
5165
5166 typedef struct VkImageFormatListCreateInfo {
5167     VkStructureType    sType;
5168     const void*        pNext;
5169     uint32_t           viewFormatCount;
5170     const VkFormat*    pViewFormats;
5171 } VkImageFormatListCreateInfo;
5172
5173 typedef struct VkAttachmentDescription2 {
5174     VkStructureType                 sType;
5175     const void*                     pNext;
5176     VkAttachmentDescriptionFlags    flags;
5177     VkFormat                        format;
5178     VkSampleCountFlagBits           samples;
5179     VkAttachmentLoadOp              loadOp;
5180     VkAttachmentStoreOp             storeOp;
5181     VkAttachmentLoadOp              stencilLoadOp;
5182     VkAttachmentStoreOp             stencilStoreOp;
5183     VkImageLayout                   initialLayout;
5184     VkImageLayout                   finalLayout;
5185 } VkAttachmentDescription2;
5186
5187 typedef struct VkAttachmentReference2 {
5188     VkStructureType       sType;
5189     const void*           pNext;
5190     uint32_t              attachment;
5191     VkImageLayout         layout;
5192     VkImageAspectFlags    aspectMask;
5193 } VkAttachmentReference2;
5194
5195 typedef struct VkSubpassDescription2 {
5196     VkStructureType                  sType;
5197     const void*                      pNext;
5198     VkSubpassDescriptionFlags        flags;
5199     VkPipelineBindPoint              pipelineBindPoint;
5200     uint32_t                         viewMask;
5201     uint32_t                         inputAttachmentCount;
5202     const VkAttachmentReference2*    pInputAttachments;
5203     uint32_t                         colorAttachmentCount;
5204     const VkAttachmentReference2*    pColorAttachments;
5205     const VkAttachmentReference2*    pResolveAttachments;
5206     const VkAttachmentReference2*    pDepthStencilAttachment;
5207     uint32_t                         preserveAttachmentCount;
5208     const uint32_t*                  pPreserveAttachments;
5209 } VkSubpassDescription2;
5210
5211 typedef struct VkSubpassDependency2 {
5212     VkStructureType         sType;
5213     const void*             pNext;
5214     uint32_t                srcSubpass;
5215     uint32_t                dstSubpass;
5216     VkPipelineStageFlags    srcStageMask;
5217     VkPipelineStageFlags    dstStageMask;
5218     VkAccessFlags           srcAccessMask;
5219     VkAccessFlags           dstAccessMask;
5220     VkDependencyFlags       dependencyFlags;
5221     int32_t                 viewOffset;
5222 } VkSubpassDependency2;
5223
5224 typedef struct VkRenderPassCreateInfo2 {
5225     VkStructureType                    sType;
5226     const void*                        pNext;
5227     VkRenderPassCreateFlags            flags;
5228     uint32_t                           attachmentCount;
5229     const VkAttachmentDescription2*    pAttachments;
5230     uint32_t                           subpassCount;
5231     const VkSubpassDescription2*       pSubpasses;
5232     uint32_t                           dependencyCount;
5233     const VkSubpassDependency2*        pDependencies;
5234     uint32_t                           correlatedViewMaskCount;
5235     const uint32_t*                    pCorrelatedViewMasks;
5236 } VkRenderPassCreateInfo2;
5237
5238 typedef struct VkSubpassBeginInfo {
5239     VkStructureType      sType;
5240     const void*          pNext;
5241     VkSubpassContents    contents;
5242 } VkSubpassBeginInfo;
5243
5244 typedef struct VkSubpassEndInfo {
5245     VkStructureType    sType;
5246     const void*        pNext;
5247 } VkSubpassEndInfo;
5248
5249 typedef struct VkPhysicalDevice8BitStorageFeatures {
5250     VkStructureType    sType;
5251     void*              pNext;
5252     VkBool32           storageBuffer8BitAccess;
5253     VkBool32           uniformAndStorageBuffer8BitAccess;
5254     VkBool32           storagePushConstant8;
5255 } VkPhysicalDevice8BitStorageFeatures;
5256
5257 typedef struct VkPhysicalDeviceDriverProperties {
5258     VkStructureType         sType;
5259     void*                   pNext;
5260     VkDriverId              driverID;
5261     char                    driverName[VK_MAX_DRIVER_NAME_SIZE];
5262     char                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5263     VkConformanceVersion    conformanceVersion;
5264 } VkPhysicalDeviceDriverProperties;
5265
5266 typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
5267     VkStructureType    sType;
5268     void*              pNext;
5269     VkBool32           shaderBufferInt64Atomics;
5270     VkBool32           shaderSharedInt64Atomics;
5271 } VkPhysicalDeviceShaderAtomicInt64Features;
5272
5273 typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
5274     VkStructureType    sType;
5275     void*              pNext;
5276     VkBool32           shaderFloat16;
5277     VkBool32           shaderInt8;
5278 } VkPhysicalDeviceShaderFloat16Int8Features;
5279
5280 typedef struct VkPhysicalDeviceFloatControlsProperties {
5281     VkStructureType                      sType;
5282     void*                                pNext;
5283     VkShaderFloatControlsIndependence    denormBehaviorIndependence;
5284     VkShaderFloatControlsIndependence    roundingModeIndependence;
5285     VkBool32                             shaderSignedZeroInfNanPreserveFloat16;
5286     VkBool32                             shaderSignedZeroInfNanPreserveFloat32;
5287     VkBool32                             shaderSignedZeroInfNanPreserveFloat64;
5288     VkBool32                             shaderDenormPreserveFloat16;
5289     VkBool32                             shaderDenormPreserveFloat32;
5290     VkBool32                             shaderDenormPreserveFloat64;
5291     VkBool32                             shaderDenormFlushToZeroFloat16;
5292     VkBool32                             shaderDenormFlushToZeroFloat32;
5293     VkBool32                             shaderDenormFlushToZeroFloat64;
5294     VkBool32                             shaderRoundingModeRTEFloat16;
5295     VkBool32                             shaderRoundingModeRTEFloat32;
5296     VkBool32                             shaderRoundingModeRTEFloat64;
5297     VkBool32                             shaderRoundingModeRTZFloat16;
5298     VkBool32                             shaderRoundingModeRTZFloat32;
5299     VkBool32                             shaderRoundingModeRTZFloat64;
5300 } VkPhysicalDeviceFloatControlsProperties;
5301
5302 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
5303     VkStructureType                    sType;
5304     const void*                        pNext;
5305     uint32_t                           bindingCount;
5306     const VkDescriptorBindingFlags*    pBindingFlags;
5307 } VkDescriptorSetLayoutBindingFlagsCreateInfo;
5308
5309 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
5310     VkStructureType    sType;
5311     void*              pNext;
5312     VkBool32           shaderInputAttachmentArrayDynamicIndexing;
5313     VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
5314     VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
5315     VkBool32           shaderUniformBufferArrayNonUniformIndexing;
5316     VkBool32           shaderSampledImageArrayNonUniformIndexing;
5317     VkBool32           shaderStorageBufferArrayNonUniformIndexing;
5318     VkBool32           shaderStorageImageArrayNonUniformIndexing;
5319     VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
5320     VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
5321     VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
5322     VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
5323     VkBool32           descriptorBindingSampledImageUpdateAfterBind;
5324     VkBool32           descriptorBindingStorageImageUpdateAfterBind;
5325     VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
5326     VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
5327     VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
5328     VkBool32           descriptorBindingUpdateUnusedWhilePending;
5329     VkBool32           descriptorBindingPartiallyBound;
5330     VkBool32           descriptorBindingVariableDescriptorCount;
5331     VkBool32           runtimeDescriptorArray;
5332 } VkPhysicalDeviceDescriptorIndexingFeatures;
5333
5334 typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
5335     VkStructureType    sType;
5336     void*              pNext;
5337     uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
5338     VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
5339     VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
5340     VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
5341     VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
5342     VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
5343     VkBool32           robustBufferAccessUpdateAfterBind;
5344     VkBool32           quadDivergentImplicitLod;
5345     uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
5346     uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5347     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5348     uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
5349     uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
5350     uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
5351     uint32_t           maxPerStageUpdateAfterBindResources;
5352     uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
5353     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
5354     uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5355     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
5356     uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5357     uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
5358     uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
5359     uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
5360 } VkPhysicalDeviceDescriptorIndexingProperties;
5361
5362 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
5363     VkStructureType    sType;
5364     const void*        pNext;
5365     uint32_t           descriptorSetCount;
5366     const uint32_t*    pDescriptorCounts;
5367 } VkDescriptorSetVariableDescriptorCountAllocateInfo;
5368
5369 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
5370     VkStructureType    sType;
5371     void*              pNext;
5372     uint32_t           maxVariableDescriptorCount;
5373 } VkDescriptorSetVariableDescriptorCountLayoutSupport;
5374
5375 typedef struct VkSubpassDescriptionDepthStencilResolve {
5376     VkStructureType                  sType;
5377     const void*                      pNext;
5378     VkResolveModeFlagBits            depthResolveMode;
5379     VkResolveModeFlagBits            stencilResolveMode;
5380     const VkAttachmentReference2*    pDepthStencilResolveAttachment;
5381 } VkSubpassDescriptionDepthStencilResolve;
5382
5383 typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
5384     VkStructureType       sType;
5385     void*                 pNext;
5386     VkResolveModeFlags    supportedDepthResolveModes;
5387     VkResolveModeFlags    supportedStencilResolveModes;
5388     VkBool32              independentResolveNone;
5389     VkBool32              independentResolve;
5390 } VkPhysicalDeviceDepthStencilResolveProperties;
5391
5392 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
5393     VkStructureType    sType;
5394     void*              pNext;
5395     VkBool32           scalarBlockLayout;
5396 } VkPhysicalDeviceScalarBlockLayoutFeatures;
5397
5398 typedef struct VkImageStencilUsageCreateInfo {
5399     VkStructureType      sType;
5400     const void*          pNext;
5401     VkImageUsageFlags    stencilUsage;
5402 } VkImageStencilUsageCreateInfo;
5403
5404 typedef struct VkSamplerReductionModeCreateInfo {
5405     VkStructureType           sType;
5406     const void*               pNext;
5407     VkSamplerReductionMode    reductionMode;
5408 } VkSamplerReductionModeCreateInfo;
5409
5410 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
5411     VkStructureType    sType;
5412     void*              pNext;
5413     VkBool32           filterMinmaxSingleComponentFormats;
5414     VkBool32           filterMinmaxImageComponentMapping;
5415 } VkPhysicalDeviceSamplerFilterMinmaxProperties;
5416
5417 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
5418     VkStructureType    sType;
5419     void*              pNext;
5420     VkBool32           vulkanMemoryModel;
5421     VkBool32           vulkanMemoryModelDeviceScope;
5422     VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
5423 } VkPhysicalDeviceVulkanMemoryModelFeatures;
5424
5425 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
5426     VkStructureType    sType;
5427     void*              pNext;
5428     VkBool32           imagelessFramebuffer;
5429 } VkPhysicalDeviceImagelessFramebufferFeatures;
5430
5431 typedef struct VkFramebufferAttachmentImageInfo {
5432     VkStructureType       sType;
5433     const void*           pNext;
5434     VkImageCreateFlags    flags;
5435     VkImageUsageFlags     usage;
5436     uint32_t              width;
5437     uint32_t              height;
5438     uint32_t              layerCount;
5439     uint32_t              viewFormatCount;
5440     const VkFormat*       pViewFormats;
5441 } VkFramebufferAttachmentImageInfo;
5442
5443 typedef struct VkFramebufferAttachmentsCreateInfo {
5444     VkStructureType                            sType;
5445     const void*                                pNext;
5446     uint32_t                                   attachmentImageInfoCount;
5447     const VkFramebufferAttachmentImageInfo*    pAttachmentImageInfos;
5448 } VkFramebufferAttachmentsCreateInfo;
5449
5450 typedef struct VkRenderPassAttachmentBeginInfo {
5451     VkStructureType       sType;
5452     const void*           pNext;
5453     uint32_t              attachmentCount;
5454     const VkImageView*    pAttachments;
5455 } VkRenderPassAttachmentBeginInfo;
5456
5457 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
5458     VkStructureType    sType;
5459     void*              pNext;
5460     VkBool32           uniformBufferStandardLayout;
5461 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
5462
5463 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
5464     VkStructureType    sType;
5465     void*              pNext;
5466     VkBool32           shaderSubgroupExtendedTypes;
5467 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
5468
5469 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
5470     VkStructureType    sType;
5471     void*              pNext;
5472     VkBool32           separateDepthStencilLayouts;
5473 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
5474
5475 typedef struct VkAttachmentReferenceStencilLayout {
5476     VkStructureType    sType;
5477     void*              pNext;
5478     VkImageLayout      stencilLayout;
5479 } VkAttachmentReferenceStencilLayout;
5480
5481 typedef struct VkAttachmentDescriptionStencilLayout {
5482     VkStructureType    sType;
5483     void*              pNext;
5484     VkImageLayout      stencilInitialLayout;
5485     VkImageLayout      stencilFinalLayout;
5486 } VkAttachmentDescriptionStencilLayout;
5487
5488 typedef struct VkPhysicalDeviceHostQueryResetFeatures {
5489     VkStructureType    sType;
5490     void*              pNext;
5491     VkBool32           hostQueryReset;
5492 } VkPhysicalDeviceHostQueryResetFeatures;
5493
5494 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
5495     VkStructureType    sType;
5496     void*              pNext;
5497     VkBool32           timelineSemaphore;
5498 } VkPhysicalDeviceTimelineSemaphoreFeatures;
5499
5500 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
5501     VkStructureType    sType;
5502     void*              pNext;
5503     uint64_t           maxTimelineSemaphoreValueDifference;
5504 } VkPhysicalDeviceTimelineSemaphoreProperties;
5505
5506 typedef struct VkSemaphoreTypeCreateInfo {
5507     VkStructureType    sType;
5508     const void*        pNext;
5509     VkSemaphoreType    semaphoreType;
5510     uint64_t           initialValue;
5511 } VkSemaphoreTypeCreateInfo;
5512
5513 typedef struct VkTimelineSemaphoreSubmitInfo {
5514     VkStructureType    sType;
5515     const void*        pNext;
5516     uint32_t           waitSemaphoreValueCount;
5517     const uint64_t*    pWaitSemaphoreValues;
5518     uint32_t           signalSemaphoreValueCount;
5519     const uint64_t*    pSignalSemaphoreValues;
5520 } VkTimelineSemaphoreSubmitInfo;
5521
5522 typedef struct VkSemaphoreWaitInfo {
5523     VkStructureType         sType;
5524     const void*             pNext;
5525     VkSemaphoreWaitFlags    flags;
5526     uint32_t                semaphoreCount;
5527     const VkSemaphore*      pSemaphores;
5528     const uint64_t*         pValues;
5529 } VkSemaphoreWaitInfo;
5530
5531 typedef struct VkSemaphoreSignalInfo {
5532     VkStructureType    sType;
5533     const void*        pNext;
5534     VkSemaphore        semaphore;
5535     uint64_t           value;
5536 } VkSemaphoreSignalInfo;
5537
5538 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
5539     VkStructureType    sType;
5540     void*              pNext;
5541     VkBool32           bufferDeviceAddress;
5542     VkBool32           bufferDeviceAddressCaptureReplay;
5543     VkBool32           bufferDeviceAddressMultiDevice;
5544 } VkPhysicalDeviceBufferDeviceAddressFeatures;
5545
5546 typedef struct VkBufferDeviceAddressInfo {
5547     VkStructureType    sType;
5548     const void*        pNext;
5549     VkBuffer           buffer;
5550 } VkBufferDeviceAddressInfo;
5551
5552 typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
5553     VkStructureType    sType;
5554     const void*        pNext;
5555     uint64_t           opaqueCaptureAddress;
5556 } VkBufferOpaqueCaptureAddressCreateInfo;
5557
5558 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
5559     VkStructureType    sType;
5560     const void*        pNext;
5561     uint64_t           opaqueCaptureAddress;
5562 } VkMemoryOpaqueCaptureAddressAllocateInfo;
5563
5564 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
5565     VkStructureType    sType;
5566     const void*        pNext;
5567     VkDeviceMemory     memory;
5568 } VkDeviceMemoryOpaqueCaptureAddressInfo;
5569
5570 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
5571 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
5572 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
5573 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
5574 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
5575 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
5576 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
5577 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
5578 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
5579 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
5580 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
5581 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
5582 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
5583
5584 #ifndef VK_NO_PROTOTYPES
5585 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
5586     VkCommandBuffer                             commandBuffer,
5587     VkBuffer                                    buffer,
5588     VkDeviceSize                                offset,
5589     VkBuffer                                    countBuffer,
5590     VkDeviceSize                                countBufferOffset,
5591     uint32_t                                    maxDrawCount,
5592     uint32_t                                    stride);
5593
5594 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
5595     VkCommandBuffer                             commandBuffer,
5596     VkBuffer                                    buffer,
5597     VkDeviceSize                                offset,
5598     VkBuffer                                    countBuffer,
5599     VkDeviceSize                                countBufferOffset,
5600     uint32_t                                    maxDrawCount,
5601     uint32_t                                    stride);
5602
5603 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
5604     VkDevice                                    device,
5605     const VkRenderPassCreateInfo2*              pCreateInfo,
5606     const VkAllocationCallbacks*                pAllocator,
5607     VkRenderPass*                               pRenderPass);
5608
5609 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
5610     VkCommandBuffer                             commandBuffer,
5611     const VkRenderPassBeginInfo*                pRenderPassBegin,
5612     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
5613
5614 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
5615     VkCommandBuffer                             commandBuffer,
5616     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
5617     const VkSubpassEndInfo*                     pSubpassEndInfo);
5618
5619 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
5620     VkCommandBuffer                             commandBuffer,
5621     const VkSubpassEndInfo*                     pSubpassEndInfo);
5622
5623 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
5624     VkDevice                                    device,
5625     VkQueryPool                                 queryPool,
5626     uint32_t                                    firstQuery,
5627     uint32_t                                    queryCount);
5628
5629 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
5630     VkDevice                                    device,
5631     VkSemaphore                                 semaphore,
5632     uint64_t*                                   pValue);
5633
5634 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
5635     VkDevice                                    device,
5636     const VkSemaphoreWaitInfo*                  pWaitInfo,
5637     uint64_t                                    timeout);
5638
5639 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
5640     VkDevice                                    device,
5641     const VkSemaphoreSignalInfo*                pSignalInfo);
5642
5643 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
5644     VkDevice                                    device,
5645     const VkBufferDeviceAddressInfo*            pInfo);
5646
5647 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
5648     VkDevice                                    device,
5649     const VkBufferDeviceAddressInfo*            pInfo);
5650
5651 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
5652     VkDevice                                    device,
5653     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
5654 #endif
5655
5656
5657 #define VK_KHR_surface 1
5658 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
5659 #define VK_KHR_SURFACE_SPEC_VERSION       25
5660 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
5661
5662 typedef enum VkColorSpaceKHR {
5663     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
5664     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
5665     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
5666     VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
5667     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
5668     VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
5669     VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
5670     VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
5671     VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
5672     VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
5673     VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
5674     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
5675     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
5676     VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
5677     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
5678     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
5679     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5680     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
5681     VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5682     VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5683     VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
5684     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
5685 } VkColorSpaceKHR;
5686
5687 typedef enum VkPresentModeKHR {
5688     VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
5689     VK_PRESENT_MODE_MAILBOX_KHR = 1,
5690     VK_PRESENT_MODE_FIFO_KHR = 2,
5691     VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
5692     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
5693     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
5694     VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
5695     VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
5696     VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
5697     VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
5698 } VkPresentModeKHR;
5699
5700 typedef enum VkSurfaceTransformFlagBitsKHR {
5701     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
5702     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
5703     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
5704     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
5705     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
5706     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
5707     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
5708     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
5709     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
5710     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5711 } VkSurfaceTransformFlagBitsKHR;
5712 typedef VkFlags VkSurfaceTransformFlagsKHR;
5713
5714 typedef enum VkCompositeAlphaFlagBitsKHR {
5715     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
5716     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
5717     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
5718     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
5719     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5720 } VkCompositeAlphaFlagBitsKHR;
5721 typedef VkFlags VkCompositeAlphaFlagsKHR;
5722 typedef struct VkSurfaceCapabilitiesKHR {
5723     uint32_t                         minImageCount;
5724     uint32_t                         maxImageCount;
5725     VkExtent2D                       currentExtent;
5726     VkExtent2D                       minImageExtent;
5727     VkExtent2D                       maxImageExtent;
5728     uint32_t                         maxImageArrayLayers;
5729     VkSurfaceTransformFlagsKHR       supportedTransforms;
5730     VkSurfaceTransformFlagBitsKHR    currentTransform;
5731     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
5732     VkImageUsageFlags                supportedUsageFlags;
5733 } VkSurfaceCapabilitiesKHR;
5734
5735 typedef struct VkSurfaceFormatKHR {
5736     VkFormat           format;
5737     VkColorSpaceKHR    colorSpace;
5738 } VkSurfaceFormatKHR;
5739
5740 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
5741 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
5742 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
5743 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
5744 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
5745
5746 #ifndef VK_NO_PROTOTYPES
5747 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
5748     VkInstance                                  instance,
5749     VkSurfaceKHR                                surface,
5750     const VkAllocationCallbacks*                pAllocator);
5751
5752 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
5753     VkPhysicalDevice                            physicalDevice,
5754     uint32_t                                    queueFamilyIndex,
5755     VkSurfaceKHR                                surface,
5756     VkBool32*                                   pSupported);
5757
5758 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
5759     VkPhysicalDevice                            physicalDevice,
5760     VkSurfaceKHR                                surface,
5761     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
5762
5763 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
5764     VkPhysicalDevice                            physicalDevice,
5765     VkSurfaceKHR                                surface,
5766     uint32_t*                                   pSurfaceFormatCount,
5767     VkSurfaceFormatKHR*                         pSurfaceFormats);
5768
5769 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
5770     VkPhysicalDevice                            physicalDevice,
5771     VkSurfaceKHR                                surface,
5772     uint32_t*                                   pPresentModeCount,
5773     VkPresentModeKHR*                           pPresentModes);
5774 #endif
5775
5776
5777 #define VK_KHR_swapchain 1
5778 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
5779 #define VK_KHR_SWAPCHAIN_SPEC_VERSION     70
5780 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
5781
5782 typedef enum VkSwapchainCreateFlagBitsKHR {
5783     VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
5784     VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
5785     VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
5786     VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5787 } VkSwapchainCreateFlagBitsKHR;
5788 typedef VkFlags VkSwapchainCreateFlagsKHR;
5789
5790 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
5791     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
5792     VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
5793     VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
5794     VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
5795     VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5796 } VkDeviceGroupPresentModeFlagBitsKHR;
5797 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
5798 typedef struct VkSwapchainCreateInfoKHR {
5799     VkStructureType                  sType;
5800     const void*                      pNext;
5801     VkSwapchainCreateFlagsKHR        flags;
5802     VkSurfaceKHR                     surface;
5803     uint32_t                         minImageCount;
5804     VkFormat                         imageFormat;
5805     VkColorSpaceKHR                  imageColorSpace;
5806     VkExtent2D                       imageExtent;
5807     uint32_t                         imageArrayLayers;
5808     VkImageUsageFlags                imageUsage;
5809     VkSharingMode                    imageSharingMode;
5810     uint32_t                         queueFamilyIndexCount;
5811     const uint32_t*                  pQueueFamilyIndices;
5812     VkSurfaceTransformFlagBitsKHR    preTransform;
5813     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
5814     VkPresentModeKHR                 presentMode;
5815     VkBool32                         clipped;
5816     VkSwapchainKHR                   oldSwapchain;
5817 } VkSwapchainCreateInfoKHR;
5818
5819 typedef struct VkPresentInfoKHR {
5820     VkStructureType          sType;
5821     const void*              pNext;
5822     uint32_t                 waitSemaphoreCount;
5823     const VkSemaphore*       pWaitSemaphores;
5824     uint32_t                 swapchainCount;
5825     const VkSwapchainKHR*    pSwapchains;
5826     const uint32_t*          pImageIndices;
5827     VkResult*                pResults;
5828 } VkPresentInfoKHR;
5829
5830 typedef struct VkImageSwapchainCreateInfoKHR {
5831     VkStructureType    sType;
5832     const void*        pNext;
5833     VkSwapchainKHR     swapchain;
5834 } VkImageSwapchainCreateInfoKHR;
5835
5836 typedef struct VkBindImageMemorySwapchainInfoKHR {
5837     VkStructureType    sType;
5838     const void*        pNext;
5839     VkSwapchainKHR     swapchain;
5840     uint32_t           imageIndex;
5841 } VkBindImageMemorySwapchainInfoKHR;
5842
5843 typedef struct VkAcquireNextImageInfoKHR {
5844     VkStructureType    sType;
5845     const void*        pNext;
5846     VkSwapchainKHR     swapchain;
5847     uint64_t           timeout;
5848     VkSemaphore        semaphore;
5849     VkFence            fence;
5850     uint32_t           deviceMask;
5851 } VkAcquireNextImageInfoKHR;
5852
5853 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
5854     VkStructureType                     sType;
5855     const void*                         pNext;
5856     uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE];
5857     VkDeviceGroupPresentModeFlagsKHR    modes;
5858 } VkDeviceGroupPresentCapabilitiesKHR;
5859
5860 typedef struct VkDeviceGroupPresentInfoKHR {
5861     VkStructureType                        sType;
5862     const void*                            pNext;
5863     uint32_t                               swapchainCount;
5864     const uint32_t*                        pDeviceMasks;
5865     VkDeviceGroupPresentModeFlagBitsKHR    mode;
5866 } VkDeviceGroupPresentInfoKHR;
5867
5868 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
5869     VkStructureType                     sType;
5870     const void*                         pNext;
5871     VkDeviceGroupPresentModeFlagsKHR    modes;
5872 } VkDeviceGroupSwapchainCreateInfoKHR;
5873
5874 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
5875 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
5876 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
5877 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
5878 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
5879 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
5880 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
5881 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
5882 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
5883
5884 #ifndef VK_NO_PROTOTYPES
5885 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
5886     VkDevice                                    device,
5887     const VkSwapchainCreateInfoKHR*             pCreateInfo,
5888     const VkAllocationCallbacks*                pAllocator,
5889     VkSwapchainKHR*                             pSwapchain);
5890
5891 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
5892     VkDevice                                    device,
5893     VkSwapchainKHR                              swapchain,
5894     const VkAllocationCallbacks*                pAllocator);
5895
5896 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
5897     VkDevice                                    device,
5898     VkSwapchainKHR                              swapchain,
5899     uint32_t*                                   pSwapchainImageCount,
5900     VkImage*                                    pSwapchainImages);
5901
5902 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
5903     VkDevice                                    device,
5904     VkSwapchainKHR                              swapchain,
5905     uint64_t                                    timeout,
5906     VkSemaphore                                 semaphore,
5907     VkFence                                     fence,
5908     uint32_t*                                   pImageIndex);
5909
5910 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
5911     VkQueue                                     queue,
5912     const VkPresentInfoKHR*                     pPresentInfo);
5913
5914 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
5915     VkDevice                                    device,
5916     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
5917
5918 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
5919     VkDevice                                    device,
5920     VkSurfaceKHR                                surface,
5921     VkDeviceGroupPresentModeFlagsKHR*           pModes);
5922
5923 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
5924     VkPhysicalDevice                            physicalDevice,
5925     VkSurfaceKHR                                surface,
5926     uint32_t*                                   pRectCount,
5927     VkRect2D*                                   pRects);
5928
5929 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
5930     VkDevice                                    device,
5931     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
5932     uint32_t*                                   pImageIndex);
5933 #endif
5934
5935
5936 #define VK_KHR_display 1
5937 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
5938 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
5939 #define VK_KHR_DISPLAY_SPEC_VERSION       23
5940 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
5941
5942 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
5943     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
5944     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
5945     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
5946     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
5947     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5948 } VkDisplayPlaneAlphaFlagBitsKHR;
5949 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
5950 typedef VkFlags VkDisplayModeCreateFlagsKHR;
5951 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
5952 typedef struct VkDisplayPropertiesKHR {
5953     VkDisplayKHR                  display;
5954     const char*                   displayName;
5955     VkExtent2D                    physicalDimensions;
5956     VkExtent2D                    physicalResolution;
5957     VkSurfaceTransformFlagsKHR    supportedTransforms;
5958     VkBool32                      planeReorderPossible;
5959     VkBool32                      persistentContent;
5960 } VkDisplayPropertiesKHR;
5961
5962 typedef struct VkDisplayModeParametersKHR {
5963     VkExtent2D    visibleRegion;
5964     uint32_t      refreshRate;
5965 } VkDisplayModeParametersKHR;
5966
5967 typedef struct VkDisplayModePropertiesKHR {
5968     VkDisplayModeKHR              displayMode;
5969     VkDisplayModeParametersKHR    parameters;
5970 } VkDisplayModePropertiesKHR;
5971
5972 typedef struct VkDisplayModeCreateInfoKHR {
5973     VkStructureType                sType;
5974     const void*                    pNext;
5975     VkDisplayModeCreateFlagsKHR    flags;
5976     VkDisplayModeParametersKHR     parameters;
5977 } VkDisplayModeCreateInfoKHR;
5978
5979 typedef struct VkDisplayPlaneCapabilitiesKHR {
5980     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
5981     VkOffset2D                     minSrcPosition;
5982     VkOffset2D                     maxSrcPosition;
5983     VkExtent2D                     minSrcExtent;
5984     VkExtent2D                     maxSrcExtent;
5985     VkOffset2D                     minDstPosition;
5986     VkOffset2D                     maxDstPosition;
5987     VkExtent2D                     minDstExtent;
5988     VkExtent2D                     maxDstExtent;
5989 } VkDisplayPlaneCapabilitiesKHR;
5990
5991 typedef struct VkDisplayPlanePropertiesKHR {
5992     VkDisplayKHR    currentDisplay;
5993     uint32_t        currentStackIndex;
5994 } VkDisplayPlanePropertiesKHR;
5995
5996 typedef struct VkDisplaySurfaceCreateInfoKHR {
5997     VkStructureType                   sType;
5998     const void*                       pNext;
5999     VkDisplaySurfaceCreateFlagsKHR    flags;
6000     VkDisplayModeKHR                  displayMode;
6001     uint32_t                          planeIndex;
6002     uint32_t                          planeStackIndex;
6003     VkSurfaceTransformFlagBitsKHR     transform;
6004     float                             globalAlpha;
6005     VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
6006     VkExtent2D                        imageExtent;
6007 } VkDisplaySurfaceCreateInfoKHR;
6008
6009 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
6010 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
6011 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
6012 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
6013 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
6014 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
6015 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
6016
6017 #ifndef VK_NO_PROTOTYPES
6018 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
6019     VkPhysicalDevice                            physicalDevice,
6020     uint32_t*                                   pPropertyCount,
6021     VkDisplayPropertiesKHR*                     pProperties);
6022
6023 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
6024     VkPhysicalDevice                            physicalDevice,
6025     uint32_t*                                   pPropertyCount,
6026     VkDisplayPlanePropertiesKHR*                pProperties);
6027
6028 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
6029     VkPhysicalDevice                            physicalDevice,
6030     uint32_t                                    planeIndex,
6031     uint32_t*                                   pDisplayCount,
6032     VkDisplayKHR*                               pDisplays);
6033
6034 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
6035     VkPhysicalDevice                            physicalDevice,
6036     VkDisplayKHR                                display,
6037     uint32_t*                                   pPropertyCount,
6038     VkDisplayModePropertiesKHR*                 pProperties);
6039
6040 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
6041     VkPhysicalDevice                            physicalDevice,
6042     VkDisplayKHR                                display,
6043     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
6044     const VkAllocationCallbacks*                pAllocator,
6045     VkDisplayModeKHR*                           pMode);
6046
6047 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
6048     VkPhysicalDevice                            physicalDevice,
6049     VkDisplayModeKHR                            mode,
6050     uint32_t                                    planeIndex,
6051     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
6052
6053 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
6054     VkInstance                                  instance,
6055     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
6056     const VkAllocationCallbacks*                pAllocator,
6057     VkSurfaceKHR*                               pSurface);
6058 #endif
6059
6060
6061 #define VK_KHR_display_swapchain 1
6062 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
6063 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
6064 typedef struct VkDisplayPresentInfoKHR {
6065     VkStructureType    sType;
6066     const void*        pNext;
6067     VkRect2D           srcRect;
6068     VkRect2D           dstRect;
6069     VkBool32           persistent;
6070 } VkDisplayPresentInfoKHR;
6071
6072 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
6073
6074 #ifndef VK_NO_PROTOTYPES
6075 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
6076     VkDevice                                    device,
6077     uint32_t                                    swapchainCount,
6078     const VkSwapchainCreateInfoKHR*             pCreateInfos,
6079     const VkAllocationCallbacks*                pAllocator,
6080     VkSwapchainKHR*                             pSwapchains);
6081 #endif
6082
6083
6084 #define VK_KHR_sampler_mirror_clamp_to_edge 1
6085 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
6086 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
6087
6088
6089 #define VK_KHR_multiview 1
6090 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
6091 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
6092 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
6093
6094 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
6095
6096 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
6097
6098
6099
6100 #define VK_KHR_get_physical_device_properties2 1
6101 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
6102 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
6103 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
6104
6105 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
6106
6107 typedef VkFormatProperties2 VkFormatProperties2KHR;
6108
6109 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
6110
6111 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
6112
6113 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
6114
6115 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
6116
6117 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
6118
6119 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
6120
6121 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6122 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6123 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6124 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6125 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6126 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6127 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6128
6129 #ifndef VK_NO_PROTOTYPES
6130 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
6131     VkPhysicalDevice                            physicalDevice,
6132     VkPhysicalDeviceFeatures2*                  pFeatures);
6133
6134 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
6135     VkPhysicalDevice                            physicalDevice,
6136     VkPhysicalDeviceProperties2*                pProperties);
6137
6138 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
6139     VkPhysicalDevice                            physicalDevice,
6140     VkFormat                                    format,
6141     VkFormatProperties2*                        pFormatProperties);
6142
6143 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
6144     VkPhysicalDevice                            physicalDevice,
6145     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
6146     VkImageFormatProperties2*                   pImageFormatProperties);
6147
6148 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
6149     VkPhysicalDevice                            physicalDevice,
6150     uint32_t*                                   pQueueFamilyPropertyCount,
6151     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
6152
6153 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
6154     VkPhysicalDevice                            physicalDevice,
6155     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
6156
6157 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
6158     VkPhysicalDevice                            physicalDevice,
6159     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6160     uint32_t*                                   pPropertyCount,
6161     VkSparseImageFormatProperties2*             pProperties);
6162 #endif
6163
6164
6165 #define VK_KHR_device_group 1
6166 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  4
6167 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
6168 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
6169
6170 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
6171
6172 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
6173
6174 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
6175
6176 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
6177
6178 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
6179
6180 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
6181
6182 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
6183
6184 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
6185
6186 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
6187
6188 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
6189
6190 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6191 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
6192 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
6193
6194 #ifndef VK_NO_PROTOTYPES
6195 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
6196     VkDevice                                    device,
6197     uint32_t                                    heapIndex,
6198     uint32_t                                    localDeviceIndex,
6199     uint32_t                                    remoteDeviceIndex,
6200     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
6201
6202 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
6203     VkCommandBuffer                             commandBuffer,
6204     uint32_t                                    deviceMask);
6205
6206 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
6207     VkCommandBuffer                             commandBuffer,
6208     uint32_t                                    baseGroupX,
6209     uint32_t                                    baseGroupY,
6210     uint32_t                                    baseGroupZ,
6211     uint32_t                                    groupCountX,
6212     uint32_t                                    groupCountY,
6213     uint32_t                                    groupCountZ);
6214 #endif
6215
6216
6217 #define VK_KHR_shader_draw_parameters 1
6218 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
6219 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
6220
6221
6222 #define VK_KHR_maintenance1 1
6223 #define VK_KHR_MAINTENANCE1_SPEC_VERSION  2
6224 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
6225 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
6226
6227 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6228
6229 #ifndef VK_NO_PROTOTYPES
6230 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
6231     VkDevice                                    device,
6232     VkCommandPool                               commandPool,
6233     VkCommandPoolTrimFlags                      flags);
6234 #endif
6235
6236
6237 #define VK_KHR_device_group_creation 1
6238 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
6239 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
6240 #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE
6241 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
6242
6243 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
6244
6245 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6246
6247 #ifndef VK_NO_PROTOTYPES
6248 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
6249     VkInstance                                  instance,
6250     uint32_t*                                   pPhysicalDeviceGroupCount,
6251     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
6252 #endif
6253
6254
6255 #define VK_KHR_external_memory_capabilities 1
6256 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
6257 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
6258 #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE
6259 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
6260
6261 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
6262
6263 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
6264
6265 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
6266
6267 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
6268
6269 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
6270
6271 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
6272
6273 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
6274
6275 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
6276
6277 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
6278
6279 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6280
6281 #ifndef VK_NO_PROTOTYPES
6282 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
6283     VkPhysicalDevice                            physicalDevice,
6284     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
6285     VkExternalBufferProperties*                 pExternalBufferProperties);
6286 #endif
6287
6288
6289 #define VK_KHR_external_memory 1
6290 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
6291 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
6292 #define VK_QUEUE_FAMILY_EXTERNAL_KHR      VK_QUEUE_FAMILY_EXTERNAL
6293 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
6294
6295 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
6296
6297 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
6298
6299
6300
6301 #define VK_KHR_external_memory_fd 1
6302 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
6303 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
6304 typedef struct VkImportMemoryFdInfoKHR {
6305     VkStructureType                       sType;
6306     const void*                           pNext;
6307     VkExternalMemoryHandleTypeFlagBits    handleType;
6308     int                                   fd;
6309 } VkImportMemoryFdInfoKHR;
6310
6311 typedef struct VkMemoryFdPropertiesKHR {
6312     VkStructureType    sType;
6313     void*              pNext;
6314     uint32_t           memoryTypeBits;
6315 } VkMemoryFdPropertiesKHR;
6316
6317 typedef struct VkMemoryGetFdInfoKHR {
6318     VkStructureType                       sType;
6319     const void*                           pNext;
6320     VkDeviceMemory                        memory;
6321     VkExternalMemoryHandleTypeFlagBits    handleType;
6322 } VkMemoryGetFdInfoKHR;
6323
6324 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
6325 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
6326
6327 #ifndef VK_NO_PROTOTYPES
6328 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
6329     VkDevice                                    device,
6330     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
6331     int*                                        pFd);
6332
6333 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
6334     VkDevice                                    device,
6335     VkExternalMemoryHandleTypeFlagBits          handleType,
6336     int                                         fd,
6337     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
6338 #endif
6339
6340
6341 #define VK_KHR_external_semaphore_capabilities 1
6342 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
6343 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
6344 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
6345
6346 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
6347
6348 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
6349
6350 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
6351
6352 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
6353
6354 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
6355
6356 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6357
6358 #ifndef VK_NO_PROTOTYPES
6359 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
6360     VkPhysicalDevice                            physicalDevice,
6361     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6362     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
6363 #endif
6364
6365
6366 #define VK_KHR_external_semaphore 1
6367 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
6368 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
6369 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
6370
6371 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
6372
6373 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
6374
6375
6376
6377 #define VK_KHR_external_semaphore_fd 1
6378 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
6379 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
6380 typedef struct VkImportSemaphoreFdInfoKHR {
6381     VkStructureType                          sType;
6382     const void*                              pNext;
6383     VkSemaphore                              semaphore;
6384     VkSemaphoreImportFlags                   flags;
6385     VkExternalSemaphoreHandleTypeFlagBits    handleType;
6386     int                                      fd;
6387 } VkImportSemaphoreFdInfoKHR;
6388
6389 typedef struct VkSemaphoreGetFdInfoKHR {
6390     VkStructureType                          sType;
6391     const void*                              pNext;
6392     VkSemaphore                              semaphore;
6393     VkExternalSemaphoreHandleTypeFlagBits    handleType;
6394 } VkSemaphoreGetFdInfoKHR;
6395
6396 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
6397 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
6398
6399 #ifndef VK_NO_PROTOTYPES
6400 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
6401     VkDevice                                    device,
6402     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
6403
6404 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
6405     VkDevice                                    device,
6406     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
6407     int*                                        pFd);
6408 #endif
6409
6410
6411 #define VK_KHR_push_descriptor 1
6412 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
6413 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
6414 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
6415     VkStructureType    sType;
6416     void*              pNext;
6417     uint32_t           maxPushDescriptors;
6418 } VkPhysicalDevicePushDescriptorPropertiesKHR;
6419
6420 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
6421 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
6422
6423 #ifndef VK_NO_PROTOTYPES
6424 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
6425     VkCommandBuffer                             commandBuffer,
6426     VkPipelineBindPoint                         pipelineBindPoint,
6427     VkPipelineLayout                            layout,
6428     uint32_t                                    set,
6429     uint32_t                                    descriptorWriteCount,
6430     const VkWriteDescriptorSet*                 pDescriptorWrites);
6431
6432 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
6433     VkCommandBuffer                             commandBuffer,
6434     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6435     VkPipelineLayout                            layout,
6436     uint32_t                                    set,
6437     const void*                                 pData);
6438 #endif
6439
6440
6441 #define VK_KHR_shader_float16_int8 1
6442 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
6443 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
6444 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
6445
6446 typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
6447
6448
6449
6450 #define VK_KHR_16bit_storage 1
6451 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
6452 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
6453 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
6454
6455
6456
6457 #define VK_KHR_incremental_present 1
6458 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
6459 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
6460 typedef struct VkRectLayerKHR {
6461     VkOffset2D    offset;
6462     VkExtent2D    extent;
6463     uint32_t      layer;
6464 } VkRectLayerKHR;
6465
6466 typedef struct VkPresentRegionKHR {
6467     uint32_t                 rectangleCount;
6468     const VkRectLayerKHR*    pRectangles;
6469 } VkPresentRegionKHR;
6470
6471 typedef struct VkPresentRegionsKHR {
6472     VkStructureType              sType;
6473     const void*                  pNext;
6474     uint32_t                     swapchainCount;
6475     const VkPresentRegionKHR*    pRegions;
6476 } VkPresentRegionsKHR;
6477
6478
6479
6480 #define VK_KHR_descriptor_update_template 1
6481 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
6482
6483 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
6484 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
6485 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
6486
6487 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
6488
6489 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
6490
6491 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
6492
6493 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6494 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6495 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6496
6497 #ifndef VK_NO_PROTOTYPES
6498 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
6499     VkDevice                                    device,
6500     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6501     const VkAllocationCallbacks*                pAllocator,
6502     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
6503
6504 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
6505     VkDevice                                    device,
6506     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6507     const VkAllocationCallbacks*                pAllocator);
6508
6509 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
6510     VkDevice                                    device,
6511     VkDescriptorSet                             descriptorSet,
6512     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
6513     const void*                                 pData);
6514 #endif
6515
6516
6517 #define VK_KHR_imageless_framebuffer 1
6518 #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
6519 #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
6520 typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
6521
6522 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
6523
6524 typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
6525
6526 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
6527
6528
6529
6530 #define VK_KHR_create_renderpass2 1
6531 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
6532 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
6533 typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
6534
6535 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
6536
6537 typedef VkAttachmentReference2 VkAttachmentReference2KHR;
6538
6539 typedef VkSubpassDescription2 VkSubpassDescription2KHR;
6540
6541 typedef VkSubpassDependency2 VkSubpassDependency2KHR;
6542
6543 typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
6544
6545 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
6546
6547 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6548 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfo*      pSubpassBeginInfo);
6549 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo*      pSubpassBeginInfo, const VkSubpassEndInfo*        pSubpassEndInfo);
6550 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo*        pSubpassEndInfo);
6551
6552 #ifndef VK_NO_PROTOTYPES
6553 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
6554     VkDevice                                    device,
6555     const VkRenderPassCreateInfo2*              pCreateInfo,
6556     const VkAllocationCallbacks*                pAllocator,
6557     VkRenderPass*                               pRenderPass);
6558
6559 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
6560     VkCommandBuffer                             commandBuffer,
6561     const VkRenderPassBeginInfo*                pRenderPassBegin,
6562     const VkSubpassBeginInfo*                   pSubpassBeginInfo);
6563
6564 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
6565     VkCommandBuffer                             commandBuffer,
6566     const VkSubpassBeginInfo*                   pSubpassBeginInfo,
6567     const VkSubpassEndInfo*                     pSubpassEndInfo);
6568
6569 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
6570     VkCommandBuffer                             commandBuffer,
6571     const VkSubpassEndInfo*                     pSubpassEndInfo);
6572 #endif
6573
6574
6575 #define VK_KHR_shared_presentable_image 1
6576 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
6577 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
6578 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
6579     VkStructureType      sType;
6580     void*                pNext;
6581     VkImageUsageFlags    sharedPresentSupportedUsageFlags;
6582 } VkSharedPresentSurfaceCapabilitiesKHR;
6583
6584 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
6585
6586 #ifndef VK_NO_PROTOTYPES
6587 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
6588     VkDevice                                    device,
6589     VkSwapchainKHR                              swapchain);
6590 #endif
6591
6592
6593 #define VK_KHR_external_fence_capabilities 1
6594 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
6595 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
6596 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
6597
6598 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
6599
6600 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
6601
6602 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
6603
6604 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
6605
6606 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
6607
6608 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6609
6610 #ifndef VK_NO_PROTOTYPES
6611 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
6612     VkPhysicalDevice                            physicalDevice,
6613     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
6614     VkExternalFenceProperties*                  pExternalFenceProperties);
6615 #endif
6616
6617
6618 #define VK_KHR_external_fence 1
6619 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
6620 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
6621 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
6622
6623 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
6624
6625 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
6626
6627
6628
6629 #define VK_KHR_external_fence_fd 1
6630 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
6631 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
6632 typedef struct VkImportFenceFdInfoKHR {
6633     VkStructureType                      sType;
6634     const void*                          pNext;
6635     VkFence                              fence;
6636     VkFenceImportFlags                   flags;
6637     VkExternalFenceHandleTypeFlagBits    handleType;
6638     int                                  fd;
6639 } VkImportFenceFdInfoKHR;
6640
6641 typedef struct VkFenceGetFdInfoKHR {
6642     VkStructureType                      sType;
6643     const void*                          pNext;
6644     VkFence                              fence;
6645     VkExternalFenceHandleTypeFlagBits    handleType;
6646 } VkFenceGetFdInfoKHR;
6647
6648 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
6649 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
6650
6651 #ifndef VK_NO_PROTOTYPES
6652 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
6653     VkDevice                                    device,
6654     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
6655
6656 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
6657     VkDevice                                    device,
6658     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
6659     int*                                        pFd);
6660 #endif
6661
6662 #define VK_KHR_performance_query 1
6663 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
6664 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
6665
6666 typedef enum VkPerformanceCounterUnitKHR {
6667     VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
6668     VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
6669     VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
6670     VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
6671     VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
6672     VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
6673     VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
6674     VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
6675     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
6676     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
6677     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
6678     VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6679     VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR,
6680     VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1),
6681     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
6682 } VkPerformanceCounterUnitKHR;
6683
6684 typedef enum VkPerformanceCounterScopeKHR {
6685     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0,
6686     VK_QUERY_SCOPE_RENDER_PASS_KHR = 1,
6687     VK_QUERY_SCOPE_COMMAND_KHR = 2,
6688     VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6689     VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_QUERY_SCOPE_COMMAND_KHR,
6690     VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_QUERY_SCOPE_COMMAND_KHR - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR + 1),
6691     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
6692 } VkPerformanceCounterScopeKHR;
6693
6694 typedef enum VkPerformanceCounterStorageKHR {
6695     VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
6696     VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
6697     VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
6698     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
6699     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
6700     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
6701     VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6702     VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR,
6703     VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1),
6704     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
6705 } VkPerformanceCounterStorageKHR;
6706
6707 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
6708     VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001,
6709     VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002,
6710     VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
6711 } VkPerformanceCounterDescriptionFlagBitsKHR;
6712 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
6713
6714 typedef enum VkAcquireProfilingLockFlagBitsKHR {
6715     VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
6716 } VkAcquireProfilingLockFlagBitsKHR;
6717 typedef VkFlags VkAcquireProfilingLockFlagsKHR;
6718 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
6719     VkStructureType    sType;
6720     void*              pNext;
6721     VkBool32           performanceCounterQueryPools;
6722     VkBool32           performanceCounterMultipleQueryPools;
6723 } VkPhysicalDevicePerformanceQueryFeaturesKHR;
6724
6725 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
6726     VkStructureType    sType;
6727     void*              pNext;
6728     VkBool32           allowCommandBufferQueryCopies;
6729 } VkPhysicalDevicePerformanceQueryPropertiesKHR;
6730
6731 typedef struct VkPerformanceCounterKHR {
6732     VkStructureType                   sType;
6733     const void*                       pNext;
6734     VkPerformanceCounterUnitKHR       unit;
6735     VkPerformanceCounterScopeKHR      scope;
6736     VkPerformanceCounterStorageKHR    storage;
6737     uint8_t                           uuid[VK_UUID_SIZE];
6738 } VkPerformanceCounterKHR;
6739
6740 typedef struct VkPerformanceCounterDescriptionKHR {
6741     VkStructureType                            sType;
6742     const void*                                pNext;
6743     VkPerformanceCounterDescriptionFlagsKHR    flags;
6744     char                                       name[VK_MAX_DESCRIPTION_SIZE];
6745     char                                       category[VK_MAX_DESCRIPTION_SIZE];
6746     char                                       description[VK_MAX_DESCRIPTION_SIZE];
6747 } VkPerformanceCounterDescriptionKHR;
6748
6749 typedef struct VkQueryPoolPerformanceCreateInfoKHR {
6750     VkStructureType    sType;
6751     const void*        pNext;
6752     uint32_t           queueFamilyIndex;
6753     uint32_t           counterIndexCount;
6754     const uint32_t*    pCounterIndices;
6755 } VkQueryPoolPerformanceCreateInfoKHR;
6756
6757 typedef union VkPerformanceCounterResultKHR {
6758     int32_t     int32;
6759     int64_t     int64;
6760     uint32_t    uint32;
6761     uint64_t    uint64;
6762     float       float32;
6763     double      float64;
6764 } VkPerformanceCounterResultKHR;
6765
6766 typedef struct VkAcquireProfilingLockInfoKHR {
6767     VkStructureType                   sType;
6768     const void*                       pNext;
6769     VkAcquireProfilingLockFlagsKHR    flags;
6770     uint64_t                          timeout;
6771 } VkAcquireProfilingLockInfoKHR;
6772
6773 typedef struct VkPerformanceQuerySubmitInfoKHR {
6774     VkStructureType    sType;
6775     const void*        pNext;
6776     uint32_t           counterPassIndex;
6777 } VkPerformanceQuerySubmitInfoKHR;
6778
6779 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
6780 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
6781 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
6782 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
6783
6784 #ifndef VK_NO_PROTOTYPES
6785 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
6786     VkPhysicalDevice                            physicalDevice,
6787     uint32_t                                    queueFamilyIndex,
6788     uint32_t*                                   pCounterCount,
6789     VkPerformanceCounterKHR*                    pCounters,
6790     VkPerformanceCounterDescriptionKHR*         pCounterDescriptions);
6791
6792 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
6793     VkPhysicalDevice                            physicalDevice,
6794     const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
6795     uint32_t*                                   pNumPasses);
6796
6797 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
6798     VkDevice                                    device,
6799     const VkAcquireProfilingLockInfoKHR*        pInfo);
6800
6801 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
6802     VkDevice                                    device);
6803 #endif
6804
6805
6806 #define VK_KHR_maintenance2 1
6807 #define VK_KHR_MAINTENANCE2_SPEC_VERSION  1
6808 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
6809 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
6810
6811 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
6812
6813 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
6814
6815 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
6816
6817 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
6818
6819 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
6820
6821 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
6822
6823
6824
6825 #define VK_KHR_get_surface_capabilities2 1
6826 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
6827 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
6828 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
6829     VkStructureType    sType;
6830     const void*        pNext;
6831     VkSurfaceKHR       surface;
6832 } VkPhysicalDeviceSurfaceInfo2KHR;
6833
6834 typedef struct VkSurfaceCapabilities2KHR {
6835     VkStructureType             sType;
6836     void*                       pNext;
6837     VkSurfaceCapabilitiesKHR    surfaceCapabilities;
6838 } VkSurfaceCapabilities2KHR;
6839
6840 typedef struct VkSurfaceFormat2KHR {
6841     VkStructureType       sType;
6842     void*                 pNext;
6843     VkSurfaceFormatKHR    surfaceFormat;
6844 } VkSurfaceFormat2KHR;
6845
6846 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
6847 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
6848
6849 #ifndef VK_NO_PROTOTYPES
6850 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
6851     VkPhysicalDevice                            physicalDevice,
6852     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
6853     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
6854
6855 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
6856     VkPhysicalDevice                            physicalDevice,
6857     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
6858     uint32_t*                                   pSurfaceFormatCount,
6859     VkSurfaceFormat2KHR*                        pSurfaceFormats);
6860 #endif
6861
6862
6863 #define VK_KHR_variable_pointers 1
6864 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
6865 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
6866 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
6867
6868 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
6869
6870
6871
6872 #define VK_KHR_get_display_properties2 1
6873 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
6874 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
6875 typedef struct VkDisplayProperties2KHR {
6876     VkStructureType           sType;
6877     void*                     pNext;
6878     VkDisplayPropertiesKHR    displayProperties;
6879 } VkDisplayProperties2KHR;
6880
6881 typedef struct VkDisplayPlaneProperties2KHR {
6882     VkStructureType                sType;
6883     void*                          pNext;
6884     VkDisplayPlanePropertiesKHR    displayPlaneProperties;
6885 } VkDisplayPlaneProperties2KHR;
6886
6887 typedef struct VkDisplayModeProperties2KHR {
6888     VkStructureType               sType;
6889     void*                         pNext;
6890     VkDisplayModePropertiesKHR    displayModeProperties;
6891 } VkDisplayModeProperties2KHR;
6892
6893 typedef struct VkDisplayPlaneInfo2KHR {
6894     VkStructureType     sType;
6895     const void*         pNext;
6896     VkDisplayModeKHR    mode;
6897     uint32_t            planeIndex;
6898 } VkDisplayPlaneInfo2KHR;
6899
6900 typedef struct VkDisplayPlaneCapabilities2KHR {
6901     VkStructureType                  sType;
6902     void*                            pNext;
6903     VkDisplayPlaneCapabilitiesKHR    capabilities;
6904 } VkDisplayPlaneCapabilities2KHR;
6905
6906 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
6907 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
6908 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
6909 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
6910
6911 #ifndef VK_NO_PROTOTYPES
6912 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
6913     VkPhysicalDevice                            physicalDevice,
6914     uint32_t*                                   pPropertyCount,
6915     VkDisplayProperties2KHR*                    pProperties);
6916
6917 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
6918     VkPhysicalDevice                            physicalDevice,
6919     uint32_t*                                   pPropertyCount,
6920     VkDisplayPlaneProperties2KHR*               pProperties);
6921
6922 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
6923     VkPhysicalDevice                            physicalDevice,
6924     VkDisplayKHR                                display,
6925     uint32_t*                                   pPropertyCount,
6926     VkDisplayModeProperties2KHR*                pProperties);
6927
6928 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
6929     VkPhysicalDevice                            physicalDevice,
6930     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
6931     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
6932 #endif
6933
6934
6935 #define VK_KHR_dedicated_allocation 1
6936 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
6937 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
6938 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
6939
6940 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
6941
6942
6943
6944 #define VK_KHR_storage_buffer_storage_class 1
6945 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
6946 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
6947
6948
6949 #define VK_KHR_relaxed_block_layout 1
6950 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
6951 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
6952
6953
6954 #define VK_KHR_get_memory_requirements2 1
6955 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
6956 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
6957 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
6958
6959 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
6960
6961 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
6962
6963 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
6964
6965 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6966 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6967 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6968
6969 #ifndef VK_NO_PROTOTYPES
6970 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
6971     VkDevice                                    device,
6972     const VkImageMemoryRequirementsInfo2*       pInfo,
6973     VkMemoryRequirements2*                      pMemoryRequirements);
6974
6975 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
6976     VkDevice                                    device,
6977     const VkBufferMemoryRequirementsInfo2*      pInfo,
6978     VkMemoryRequirements2*                      pMemoryRequirements);
6979
6980 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
6981     VkDevice                                    device,
6982     const VkImageSparseMemoryRequirementsInfo2* pInfo,
6983     uint32_t*                                   pSparseMemoryRequirementCount,
6984     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
6985 #endif
6986
6987
6988 #define VK_KHR_image_format_list 1
6989 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
6990 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
6991 typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
6992
6993
6994
6995 #define VK_KHR_sampler_ycbcr_conversion 1
6996 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
6997
6998 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
6999 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
7000 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
7001
7002 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
7003
7004 typedef VkChromaLocation VkChromaLocationKHR;
7005
7006 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
7007
7008 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
7009
7010 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
7011
7012 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
7013
7014 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
7015
7016 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
7017
7018 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
7019 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
7020
7021 #ifndef VK_NO_PROTOTYPES
7022 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
7023     VkDevice                                    device,
7024     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
7025     const VkAllocationCallbacks*                pAllocator,
7026     VkSamplerYcbcrConversion*                   pYcbcrConversion);
7027
7028 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
7029     VkDevice                                    device,
7030     VkSamplerYcbcrConversion                    ycbcrConversion,
7031     const VkAllocationCallbacks*                pAllocator);
7032 #endif
7033
7034
7035 #define VK_KHR_bind_memory2 1
7036 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
7037 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
7038 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
7039
7040 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
7041
7042 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
7043 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
7044
7045 #ifndef VK_NO_PROTOTYPES
7046 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
7047     VkDevice                                    device,
7048     uint32_t                                    bindInfoCount,
7049     const VkBindBufferMemoryInfo*               pBindInfos);
7050
7051 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
7052     VkDevice                                    device,
7053     uint32_t                                    bindInfoCount,
7054     const VkBindImageMemoryInfo*                pBindInfos);
7055 #endif
7056
7057
7058 #define VK_KHR_maintenance3 1
7059 #define VK_KHR_MAINTENANCE3_SPEC_VERSION  1
7060 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
7061 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
7062
7063 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
7064
7065 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
7066
7067 #ifndef VK_NO_PROTOTYPES
7068 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
7069     VkDevice                                    device,
7070     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
7071     VkDescriptorSetLayoutSupport*               pSupport);
7072 #endif
7073
7074
7075 #define VK_KHR_draw_indirect_count 1
7076 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
7077 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
7078 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7079 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7080
7081 #ifndef VK_NO_PROTOTYPES
7082 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
7083     VkCommandBuffer                             commandBuffer,
7084     VkBuffer                                    buffer,
7085     VkDeviceSize                                offset,
7086     VkBuffer                                    countBuffer,
7087     VkDeviceSize                                countBufferOffset,
7088     uint32_t                                    maxDrawCount,
7089     uint32_t                                    stride);
7090
7091 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
7092     VkCommandBuffer                             commandBuffer,
7093     VkBuffer                                    buffer,
7094     VkDeviceSize                                offset,
7095     VkBuffer                                    countBuffer,
7096     VkDeviceSize                                countBufferOffset,
7097     uint32_t                                    maxDrawCount,
7098     uint32_t                                    stride);
7099 #endif
7100
7101
7102 #define VK_KHR_shader_subgroup_extended_types 1
7103 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
7104 #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
7105 typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
7106
7107
7108
7109 #define VK_KHR_8bit_storage 1
7110 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1
7111 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
7112 typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
7113
7114
7115
7116 #define VK_KHR_shader_atomic_int64 1
7117 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
7118 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
7119 typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
7120
7121
7122
7123 #define VK_KHR_shader_clock 1
7124 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION  1
7125 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
7126 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
7127     VkStructureType    sType;
7128     void*              pNext;
7129     VkBool32           shaderSubgroupClock;
7130     VkBool32           shaderDeviceClock;
7131 } VkPhysicalDeviceShaderClockFeaturesKHR;
7132
7133
7134
7135 #define VK_KHR_driver_properties 1
7136 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
7137 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
7138 #define VK_MAX_DRIVER_NAME_SIZE_KHR       VK_MAX_DRIVER_NAME_SIZE
7139 #define VK_MAX_DRIVER_INFO_SIZE_KHR       VK_MAX_DRIVER_INFO_SIZE
7140 typedef VkDriverId VkDriverIdKHR;
7141
7142 typedef VkConformanceVersion VkConformanceVersionKHR;
7143
7144 typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
7145
7146
7147
7148 #define VK_KHR_shader_float_controls 1
7149 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
7150 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
7151 typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
7152
7153 typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
7154
7155
7156
7157 #define VK_KHR_depth_stencil_resolve 1
7158 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
7159 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
7160 typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
7161
7162 typedef VkResolveModeFlags VkResolveModeFlagsKHR;
7163
7164 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
7165
7166 typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
7167
7168
7169
7170 #define VK_KHR_swapchain_mutable_format 1
7171 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
7172 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
7173
7174
7175 #define VK_KHR_timeline_semaphore 1
7176 #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
7177 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
7178 typedef VkSemaphoreType VkSemaphoreTypeKHR;
7179
7180 typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
7181
7182 typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
7183
7184 typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
7185
7186 typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
7187
7188 typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
7189
7190 typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
7191
7192 typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
7193
7194 typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
7195
7196 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
7197 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
7198 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
7199
7200 #ifndef VK_NO_PROTOTYPES
7201 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
7202     VkDevice                                    device,
7203     VkSemaphore                                 semaphore,
7204     uint64_t*                                   pValue);
7205
7206 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
7207     VkDevice                                    device,
7208     const VkSemaphoreWaitInfo*                  pWaitInfo,
7209     uint64_t                                    timeout);
7210
7211 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
7212     VkDevice                                    device,
7213     const VkSemaphoreSignalInfo*                pSignalInfo);
7214 #endif
7215
7216
7217 #define VK_KHR_vulkan_memory_model 1
7218 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
7219 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
7220 typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
7221
7222
7223 #define VK_KHR_spirv_1_4 1
7224 #define VK_KHR_SPIRV_1_4_SPEC_VERSION     1
7225 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME   "VK_KHR_spirv_1_4"
7226
7227
7228 #define VK_KHR_surface_protected_capabilities 1
7229 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
7230 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
7231 typedef struct VkSurfaceProtectedCapabilitiesKHR {
7232     VkStructureType    sType;
7233     const void*        pNext;
7234     VkBool32           supportsProtected;
7235 } VkSurfaceProtectedCapabilitiesKHR;
7236
7237
7238
7239 #define VK_KHR_separate_depth_stencil_layouts 1
7240 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
7241 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
7242 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
7243
7244 typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
7245
7246 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
7247
7248
7249
7250 #define VK_KHR_uniform_buffer_standard_layout 1
7251 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
7252 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
7253 typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
7254
7255
7256
7257 #define VK_KHR_buffer_device_address 1
7258 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
7259 #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
7260 typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
7261
7262 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
7263
7264 typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
7265
7266 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
7267
7268 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
7269
7270 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7271 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7272 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7273
7274 #ifndef VK_NO_PROTOTYPES
7275 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
7276     VkDevice                                    device,
7277     const VkBufferDeviceAddressInfo*            pInfo);
7278
7279 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
7280     VkDevice                                    device,
7281     const VkBufferDeviceAddressInfo*            pInfo);
7282
7283 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
7284     VkDevice                                    device,
7285     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7286 #endif
7287
7288
7289 #define VK_KHR_pipeline_executable_properties 1
7290 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
7291 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
7292
7293 typedef enum VkPipelineExecutableStatisticFormatKHR {
7294     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
7295     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
7296     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
7297     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
7298     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7299     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR,
7300     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1),
7301     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
7302 } VkPipelineExecutableStatisticFormatKHR;
7303 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
7304     VkStructureType    sType;
7305     void*              pNext;
7306     VkBool32           pipelineExecutableInfo;
7307 } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
7308
7309 typedef struct VkPipelineInfoKHR {
7310     VkStructureType    sType;
7311     const void*        pNext;
7312     VkPipeline         pipeline;
7313 } VkPipelineInfoKHR;
7314
7315 typedef struct VkPipelineExecutablePropertiesKHR {
7316     VkStructureType       sType;
7317     void*                 pNext;
7318     VkShaderStageFlags    stages;
7319     char                  name[VK_MAX_DESCRIPTION_SIZE];
7320     char                  description[VK_MAX_DESCRIPTION_SIZE];
7321     uint32_t              subgroupSize;
7322 } VkPipelineExecutablePropertiesKHR;
7323
7324 typedef struct VkPipelineExecutableInfoKHR {
7325     VkStructureType    sType;
7326     const void*        pNext;
7327     VkPipeline         pipeline;
7328     uint32_t           executableIndex;
7329 } VkPipelineExecutableInfoKHR;
7330
7331 typedef union VkPipelineExecutableStatisticValueKHR {
7332     VkBool32    b32;
7333     int64_t     i64;
7334     uint64_t    u64;
7335     double      f64;
7336 } VkPipelineExecutableStatisticValueKHR;
7337
7338 typedef struct VkPipelineExecutableStatisticKHR {
7339     VkStructureType                           sType;
7340     void*                                     pNext;
7341     char                                      name[VK_MAX_DESCRIPTION_SIZE];
7342     char                                      description[VK_MAX_DESCRIPTION_SIZE];
7343     VkPipelineExecutableStatisticFormatKHR    format;
7344     VkPipelineExecutableStatisticValueKHR     value;
7345 } VkPipelineExecutableStatisticKHR;
7346
7347 typedef struct VkPipelineExecutableInternalRepresentationKHR {
7348     VkStructureType    sType;
7349     void*              pNext;
7350     char               name[VK_MAX_DESCRIPTION_SIZE];
7351     char               description[VK_MAX_DESCRIPTION_SIZE];
7352     VkBool32           isText;
7353     size_t             dataSize;
7354     void*              pData;
7355 } VkPipelineExecutableInternalRepresentationKHR;
7356
7357 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice                        device, const VkPipelineInfoKHR*        pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
7358 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
7359 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice                        device, const VkPipelineExecutableInfoKHR*  pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
7360
7361 #ifndef VK_NO_PROTOTYPES
7362 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
7363     VkDevice                                    device,
7364     const VkPipelineInfoKHR*                    pPipelineInfo,
7365     uint32_t*                                   pExecutableCount,
7366     VkPipelineExecutablePropertiesKHR*          pProperties);
7367
7368 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
7369     VkDevice                                    device,
7370     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
7371     uint32_t*                                   pStatisticCount,
7372     VkPipelineExecutableStatisticKHR*           pStatistics);
7373
7374 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
7375     VkDevice                                    device,
7376     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
7377     uint32_t*                                   pInternalRepresentationCount,
7378     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
7379 #endif
7380
7381 #define VK_EXT_debug_report 1
7382 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
7383 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9
7384 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
7385
7386 typedef enum VkDebugReportObjectTypeEXT {
7387     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
7388     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
7389     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
7390     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
7391     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
7392     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
7393     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
7394     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
7395     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
7396     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
7397     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
7398     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
7399     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
7400     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
7401     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
7402     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
7403     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
7404     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
7405     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
7406     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
7407     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
7408     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
7409     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
7410     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
7411     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
7412     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
7413     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
7414     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
7415     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
7416     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
7417     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
7418     VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
7419     VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
7420     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
7421     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
7422     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
7423     VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
7424     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
7425     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
7426     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
7427     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
7428     VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
7429     VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
7430     VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
7431     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
7432 } VkDebugReportObjectTypeEXT;
7433
7434 typedef enum VkDebugReportFlagBitsEXT {
7435     VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
7436     VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
7437     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
7438     VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
7439     VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
7440     VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7441 } VkDebugReportFlagBitsEXT;
7442 typedef VkFlags VkDebugReportFlagsEXT;
7443 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
7444     VkDebugReportFlagsEXT                       flags,
7445     VkDebugReportObjectTypeEXT                  objectType,
7446     uint64_t                                    object,
7447     size_t                                      location,
7448     int32_t                                     messageCode,
7449     const char*                                 pLayerPrefix,
7450     const char*                                 pMessage,
7451     void*                                       pUserData);
7452
7453 typedef struct VkDebugReportCallbackCreateInfoEXT {
7454     VkStructureType                 sType;
7455     const void*                     pNext;
7456     VkDebugReportFlagsEXT           flags;
7457     PFN_vkDebugReportCallbackEXT    pfnCallback;
7458     void*                           pUserData;
7459 } VkDebugReportCallbackCreateInfoEXT;
7460
7461 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
7462 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
7463 typedef 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);
7464
7465 #ifndef VK_NO_PROTOTYPES
7466 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
7467     VkInstance                                  instance,
7468     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
7469     const VkAllocationCallbacks*                pAllocator,
7470     VkDebugReportCallbackEXT*                   pCallback);
7471
7472 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
7473     VkInstance                                  instance,
7474     VkDebugReportCallbackEXT                    callback,
7475     const VkAllocationCallbacks*                pAllocator);
7476
7477 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
7478     VkInstance                                  instance,
7479     VkDebugReportFlagsEXT                       flags,
7480     VkDebugReportObjectTypeEXT                  objectType,
7481     uint64_t                                    object,
7482     size_t                                      location,
7483     int32_t                                     messageCode,
7484     const char*                                 pLayerPrefix,
7485     const char*                                 pMessage);
7486 #endif
7487
7488
7489 #define VK_NV_glsl_shader 1
7490 #define VK_NV_GLSL_SHADER_SPEC_VERSION    1
7491 #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
7492
7493
7494 #define VK_EXT_depth_range_unrestricted 1
7495 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
7496 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
7497
7498
7499 #define VK_IMG_filter_cubic 1
7500 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
7501 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
7502
7503
7504 #define VK_AMD_rasterization_order 1
7505 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
7506 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
7507
7508 typedef enum VkRasterizationOrderAMD {
7509     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
7510     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
7511     VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
7512     VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
7513     VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
7514     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
7515 } VkRasterizationOrderAMD;
7516 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
7517     VkStructureType            sType;
7518     const void*                pNext;
7519     VkRasterizationOrderAMD    rasterizationOrder;
7520 } VkPipelineRasterizationStateRasterizationOrderAMD;
7521
7522
7523
7524 #define VK_AMD_shader_trinary_minmax 1
7525 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
7526 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
7527
7528
7529 #define VK_AMD_shader_explicit_vertex_parameter 1
7530 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
7531 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
7532
7533
7534 #define VK_EXT_debug_marker 1
7535 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4
7536 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
7537 typedef struct VkDebugMarkerObjectNameInfoEXT {
7538     VkStructureType               sType;
7539     const void*                   pNext;
7540     VkDebugReportObjectTypeEXT    objectType;
7541     uint64_t                      object;
7542     const char*                   pObjectName;
7543 } VkDebugMarkerObjectNameInfoEXT;
7544
7545 typedef struct VkDebugMarkerObjectTagInfoEXT {
7546     VkStructureType               sType;
7547     const void*                   pNext;
7548     VkDebugReportObjectTypeEXT    objectType;
7549     uint64_t                      object;
7550     uint64_t                      tagName;
7551     size_t                        tagSize;
7552     const void*                   pTag;
7553 } VkDebugMarkerObjectTagInfoEXT;
7554
7555 typedef struct VkDebugMarkerMarkerInfoEXT {
7556     VkStructureType    sType;
7557     const void*        pNext;
7558     const char*        pMarkerName;
7559     float              color[4];
7560 } VkDebugMarkerMarkerInfoEXT;
7561
7562 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
7563 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
7564 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
7565 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
7566 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
7567
7568 #ifndef VK_NO_PROTOTYPES
7569 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
7570     VkDevice                                    device,
7571     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
7572
7573 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
7574     VkDevice                                    device,
7575     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
7576
7577 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
7578     VkCommandBuffer                             commandBuffer,
7579     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
7580
7581 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
7582     VkCommandBuffer                             commandBuffer);
7583
7584 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
7585     VkCommandBuffer                             commandBuffer,
7586     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
7587 #endif
7588
7589
7590 #define VK_AMD_gcn_shader 1
7591 #define VK_AMD_GCN_SHADER_SPEC_VERSION    1
7592 #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
7593
7594
7595 #define VK_NV_dedicated_allocation 1
7596 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
7597 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
7598 typedef struct VkDedicatedAllocationImageCreateInfoNV {
7599     VkStructureType    sType;
7600     const void*        pNext;
7601     VkBool32           dedicatedAllocation;
7602 } VkDedicatedAllocationImageCreateInfoNV;
7603
7604 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
7605     VkStructureType    sType;
7606     const void*        pNext;
7607     VkBool32           dedicatedAllocation;
7608 } VkDedicatedAllocationBufferCreateInfoNV;
7609
7610 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
7611     VkStructureType    sType;
7612     const void*        pNext;
7613     VkImage            image;
7614     VkBuffer           buffer;
7615 } VkDedicatedAllocationMemoryAllocateInfoNV;
7616
7617
7618
7619 #define VK_EXT_transform_feedback 1
7620 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
7621 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
7622 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
7623 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
7624     VkStructureType    sType;
7625     void*              pNext;
7626     VkBool32           transformFeedback;
7627     VkBool32           geometryStreams;
7628 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
7629
7630 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
7631     VkStructureType    sType;
7632     void*              pNext;
7633     uint32_t           maxTransformFeedbackStreams;
7634     uint32_t           maxTransformFeedbackBuffers;
7635     VkDeviceSize       maxTransformFeedbackBufferSize;
7636     uint32_t           maxTransformFeedbackStreamDataSize;
7637     uint32_t           maxTransformFeedbackBufferDataSize;
7638     uint32_t           maxTransformFeedbackBufferDataStride;
7639     VkBool32           transformFeedbackQueries;
7640     VkBool32           transformFeedbackStreamsLinesTriangles;
7641     VkBool32           transformFeedbackRasterizationStreamSelect;
7642     VkBool32           transformFeedbackDraw;
7643 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
7644
7645 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
7646     VkStructureType                                     sType;
7647     const void*                                         pNext;
7648     VkPipelineRasterizationStateStreamCreateFlagsEXT    flags;
7649     uint32_t                                            rasterizationStream;
7650 } VkPipelineRasterizationStateStreamCreateInfoEXT;
7651
7652 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
7653 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
7654 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
7655 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
7656 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
7657 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
7658
7659 #ifndef VK_NO_PROTOTYPES
7660 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
7661     VkCommandBuffer                             commandBuffer,
7662     uint32_t                                    firstBinding,
7663     uint32_t                                    bindingCount,
7664     const VkBuffer*                             pBuffers,
7665     const VkDeviceSize*                         pOffsets,
7666     const VkDeviceSize*                         pSizes);
7667
7668 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
7669     VkCommandBuffer                             commandBuffer,
7670     uint32_t                                    firstCounterBuffer,
7671     uint32_t                                    counterBufferCount,
7672     const VkBuffer*                             pCounterBuffers,
7673     const VkDeviceSize*                         pCounterBufferOffsets);
7674
7675 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
7676     VkCommandBuffer                             commandBuffer,
7677     uint32_t                                    firstCounterBuffer,
7678     uint32_t                                    counterBufferCount,
7679     const VkBuffer*                             pCounterBuffers,
7680     const VkDeviceSize*                         pCounterBufferOffsets);
7681
7682 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
7683     VkCommandBuffer                             commandBuffer,
7684     VkQueryPool                                 queryPool,
7685     uint32_t                                    query,
7686     VkQueryControlFlags                         flags,
7687     uint32_t                                    index);
7688
7689 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
7690     VkCommandBuffer                             commandBuffer,
7691     VkQueryPool                                 queryPool,
7692     uint32_t                                    query,
7693     uint32_t                                    index);
7694
7695 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
7696     VkCommandBuffer                             commandBuffer,
7697     uint32_t                                    instanceCount,
7698     uint32_t                                    firstInstance,
7699     VkBuffer                                    counterBuffer,
7700     VkDeviceSize                                counterBufferOffset,
7701     uint32_t                                    counterOffset,
7702     uint32_t                                    vertexStride);
7703 #endif
7704
7705
7706 #define VK_NVX_image_view_handle 1
7707 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
7708 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
7709 typedef struct VkImageViewHandleInfoNVX {
7710     VkStructureType     sType;
7711     const void*         pNext;
7712     VkImageView         imageView;
7713     VkDescriptorType    descriptorType;
7714     VkSampler           sampler;
7715 } VkImageViewHandleInfoNVX;
7716
7717 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
7718
7719 #ifndef VK_NO_PROTOTYPES
7720 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
7721     VkDevice                                    device,
7722     const VkImageViewHandleInfoNVX*             pInfo);
7723 #endif
7724
7725
7726 #define VK_AMD_draw_indirect_count 1
7727 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
7728 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
7729 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7730 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7731
7732 #ifndef VK_NO_PROTOTYPES
7733 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
7734     VkCommandBuffer                             commandBuffer,
7735     VkBuffer                                    buffer,
7736     VkDeviceSize                                offset,
7737     VkBuffer                                    countBuffer,
7738     VkDeviceSize                                countBufferOffset,
7739     uint32_t                                    maxDrawCount,
7740     uint32_t                                    stride);
7741
7742 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
7743     VkCommandBuffer                             commandBuffer,
7744     VkBuffer                                    buffer,
7745     VkDeviceSize                                offset,
7746     VkBuffer                                    countBuffer,
7747     VkDeviceSize                                countBufferOffset,
7748     uint32_t                                    maxDrawCount,
7749     uint32_t                                    stride);
7750 #endif
7751
7752
7753 #define VK_AMD_negative_viewport_height 1
7754 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
7755 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
7756
7757
7758 #define VK_AMD_gpu_shader_half_float 1
7759 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
7760 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
7761
7762
7763 #define VK_AMD_shader_ballot 1
7764 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
7765 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
7766
7767
7768 #define VK_AMD_texture_gather_bias_lod 1
7769 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
7770 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
7771 typedef struct VkTextureLODGatherFormatPropertiesAMD {
7772     VkStructureType    sType;
7773     void*              pNext;
7774     VkBool32           supportsTextureGatherLODBiasAMD;
7775 } VkTextureLODGatherFormatPropertiesAMD;
7776
7777
7778
7779 #define VK_AMD_shader_info 1
7780 #define VK_AMD_SHADER_INFO_SPEC_VERSION   1
7781 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
7782
7783 typedef enum VkShaderInfoTypeAMD {
7784     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
7785     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
7786     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
7787     VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
7788     VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
7789     VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
7790     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
7791 } VkShaderInfoTypeAMD;
7792 typedef struct VkShaderResourceUsageAMD {
7793     uint32_t    numUsedVgprs;
7794     uint32_t    numUsedSgprs;
7795     uint32_t    ldsSizePerLocalWorkGroup;
7796     size_t      ldsUsageSizeInBytes;
7797     size_t      scratchMemUsageInBytes;
7798 } VkShaderResourceUsageAMD;
7799
7800 typedef struct VkShaderStatisticsInfoAMD {
7801     VkShaderStageFlags          shaderStageMask;
7802     VkShaderResourceUsageAMD    resourceUsage;
7803     uint32_t                    numPhysicalVgprs;
7804     uint32_t                    numPhysicalSgprs;
7805     uint32_t                    numAvailableVgprs;
7806     uint32_t                    numAvailableSgprs;
7807     uint32_t                    computeWorkGroupSize[3];
7808 } VkShaderStatisticsInfoAMD;
7809
7810 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
7811
7812 #ifndef VK_NO_PROTOTYPES
7813 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
7814     VkDevice                                    device,
7815     VkPipeline                                  pipeline,
7816     VkShaderStageFlagBits                       shaderStage,
7817     VkShaderInfoTypeAMD                         infoType,
7818     size_t*                                     pInfoSize,
7819     void*                                       pInfo);
7820 #endif
7821
7822
7823 #define VK_AMD_shader_image_load_store_lod 1
7824 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
7825 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
7826
7827
7828 #define VK_NV_corner_sampled_image 1
7829 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
7830 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
7831 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
7832     VkStructureType    sType;
7833     void*              pNext;
7834     VkBool32           cornerSampledImage;
7835 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
7836
7837
7838
7839 #define VK_IMG_format_pvrtc 1
7840 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
7841 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
7842
7843
7844 #define VK_NV_external_memory_capabilities 1
7845 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
7846 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
7847
7848 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
7849     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
7850     VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
7851     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
7852     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
7853     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
7854 } VkExternalMemoryHandleTypeFlagBitsNV;
7855 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
7856
7857 typedef enum VkExternalMemoryFeatureFlagBitsNV {
7858     VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
7859     VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
7860     VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
7861     VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
7862 } VkExternalMemoryFeatureFlagBitsNV;
7863 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
7864 typedef struct VkExternalImageFormatPropertiesNV {
7865     VkImageFormatProperties              imageFormatProperties;
7866     VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
7867     VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
7868     VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
7869 } VkExternalImageFormatPropertiesNV;
7870
7871 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
7872
7873 #ifndef VK_NO_PROTOTYPES
7874 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
7875     VkPhysicalDevice                            physicalDevice,
7876     VkFormat                                    format,
7877     VkImageType                                 type,
7878     VkImageTiling                               tiling,
7879     VkImageUsageFlags                           usage,
7880     VkImageCreateFlags                          flags,
7881     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
7882     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
7883 #endif
7884
7885
7886 #define VK_NV_external_memory 1
7887 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
7888 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
7889 typedef struct VkExternalMemoryImageCreateInfoNV {
7890     VkStructureType                      sType;
7891     const void*                          pNext;
7892     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
7893 } VkExternalMemoryImageCreateInfoNV;
7894
7895 typedef struct VkExportMemoryAllocateInfoNV {
7896     VkStructureType                      sType;
7897     const void*                          pNext;
7898     VkExternalMemoryHandleTypeFlagsNV    handleTypes;
7899 } VkExportMemoryAllocateInfoNV;
7900
7901
7902
7903 #define VK_EXT_validation_flags 1
7904 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
7905 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
7906
7907 typedef enum VkValidationCheckEXT {
7908     VK_VALIDATION_CHECK_ALL_EXT = 0,
7909     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
7910     VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
7911     VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
7912     VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
7913     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
7914 } VkValidationCheckEXT;
7915 typedef struct VkValidationFlagsEXT {
7916     VkStructureType                sType;
7917     const void*                    pNext;
7918     uint32_t                       disabledValidationCheckCount;
7919     const VkValidationCheckEXT*    pDisabledValidationChecks;
7920 } VkValidationFlagsEXT;
7921
7922
7923
7924 #define VK_EXT_shader_subgroup_ballot 1
7925 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
7926 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
7927
7928
7929 #define VK_EXT_shader_subgroup_vote 1
7930 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
7931 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
7932
7933
7934 #define VK_EXT_texture_compression_astc_hdr 1
7935 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
7936 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
7937 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
7938     VkStructureType    sType;
7939     const void*        pNext;
7940     VkBool32           textureCompressionASTC_HDR;
7941 } VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
7942
7943
7944
7945 #define VK_EXT_astc_decode_mode 1
7946 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
7947 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
7948 typedef struct VkImageViewASTCDecodeModeEXT {
7949     VkStructureType    sType;
7950     const void*        pNext;
7951     VkFormat           decodeMode;
7952 } VkImageViewASTCDecodeModeEXT;
7953
7954 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
7955     VkStructureType    sType;
7956     void*              pNext;
7957     VkBool32           decodeModeSharedExponent;
7958 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
7959
7960
7961
7962 #define VK_EXT_conditional_rendering 1
7963 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
7964 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
7965
7966 typedef enum VkConditionalRenderingFlagBitsEXT {
7967     VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
7968     VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7969 } VkConditionalRenderingFlagBitsEXT;
7970 typedef VkFlags VkConditionalRenderingFlagsEXT;
7971 typedef struct VkConditionalRenderingBeginInfoEXT {
7972     VkStructureType                   sType;
7973     const void*                       pNext;
7974     VkBuffer                          buffer;
7975     VkDeviceSize                      offset;
7976     VkConditionalRenderingFlagsEXT    flags;
7977 } VkConditionalRenderingBeginInfoEXT;
7978
7979 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
7980     VkStructureType    sType;
7981     void*              pNext;
7982     VkBool32           conditionalRendering;
7983     VkBool32           inheritedConditionalRendering;
7984 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
7985
7986 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
7987     VkStructureType    sType;
7988     const void*        pNext;
7989     VkBool32           conditionalRenderingEnable;
7990 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
7991
7992 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
7993 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
7994
7995 #ifndef VK_NO_PROTOTYPES
7996 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
7997     VkCommandBuffer                             commandBuffer,
7998     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
7999
8000 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
8001     VkCommandBuffer                             commandBuffer);
8002 #endif
8003
8004
8005 #define VK_NVX_device_generated_commands 1
8006 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
8007 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
8008 #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
8009 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
8010
8011 typedef enum VkIndirectCommandsTokenTypeNVX {
8012     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
8013     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
8014     VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
8015     VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
8016     VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
8017     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
8018     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
8019     VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
8020     VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
8021     VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
8022     VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
8023     VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
8024 } VkIndirectCommandsTokenTypeNVX;
8025
8026 typedef enum VkObjectEntryTypeNVX {
8027     VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
8028     VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
8029     VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
8030     VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
8031     VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
8032     VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
8033     VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
8034     VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
8035     VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
8036 } VkObjectEntryTypeNVX;
8037
8038 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
8039     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
8040     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
8041     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
8042     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
8043     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
8044 } VkIndirectCommandsLayoutUsageFlagBitsNVX;
8045 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
8046
8047 typedef enum VkObjectEntryUsageFlagBitsNVX {
8048     VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
8049     VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
8050     VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
8051 } VkObjectEntryUsageFlagBitsNVX;
8052 typedef VkFlags VkObjectEntryUsageFlagsNVX;
8053 typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
8054     VkStructureType    sType;
8055     const void*        pNext;
8056     VkBool32           computeBindingPointSupport;
8057 } VkDeviceGeneratedCommandsFeaturesNVX;
8058
8059 typedef struct VkDeviceGeneratedCommandsLimitsNVX {
8060     VkStructureType    sType;
8061     const void*        pNext;
8062     uint32_t           maxIndirectCommandsLayoutTokenCount;
8063     uint32_t           maxObjectEntryCounts;
8064     uint32_t           minSequenceCountBufferOffsetAlignment;
8065     uint32_t           minSequenceIndexBufferOffsetAlignment;
8066     uint32_t           minCommandsTokenBufferOffsetAlignment;
8067 } VkDeviceGeneratedCommandsLimitsNVX;
8068
8069 typedef struct VkIndirectCommandsTokenNVX {
8070     VkIndirectCommandsTokenTypeNVX    tokenType;
8071     VkBuffer                          buffer;
8072     VkDeviceSize                      offset;
8073 } VkIndirectCommandsTokenNVX;
8074
8075 typedef struct VkIndirectCommandsLayoutTokenNVX {
8076     VkIndirectCommandsTokenTypeNVX    tokenType;
8077     uint32_t                          bindingUnit;
8078     uint32_t                          dynamicCount;
8079     uint32_t                          divisor;
8080 } VkIndirectCommandsLayoutTokenNVX;
8081
8082 typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
8083     VkStructureType                            sType;
8084     const void*                                pNext;
8085     VkPipelineBindPoint                        pipelineBindPoint;
8086     VkIndirectCommandsLayoutUsageFlagsNVX      flags;
8087     uint32_t                                   tokenCount;
8088     const VkIndirectCommandsLayoutTokenNVX*    pTokens;
8089 } VkIndirectCommandsLayoutCreateInfoNVX;
8090
8091 typedef struct VkCmdProcessCommandsInfoNVX {
8092     VkStructureType                      sType;
8093     const void*                          pNext;
8094     VkObjectTableNVX                     objectTable;
8095     VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
8096     uint32_t                             indirectCommandsTokenCount;
8097     const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
8098     uint32_t                             maxSequencesCount;
8099     VkCommandBuffer                      targetCommandBuffer;
8100     VkBuffer                             sequencesCountBuffer;
8101     VkDeviceSize                         sequencesCountOffset;
8102     VkBuffer                             sequencesIndexBuffer;
8103     VkDeviceSize                         sequencesIndexOffset;
8104 } VkCmdProcessCommandsInfoNVX;
8105
8106 typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
8107     VkStructureType                sType;
8108     const void*                    pNext;
8109     VkObjectTableNVX               objectTable;
8110     VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
8111     uint32_t                       maxSequencesCount;
8112 } VkCmdReserveSpaceForCommandsInfoNVX;
8113
8114 typedef struct VkObjectTableCreateInfoNVX {
8115     VkStructureType                      sType;
8116     const void*                          pNext;
8117     uint32_t                             objectCount;
8118     const VkObjectEntryTypeNVX*          pObjectEntryTypes;
8119     const uint32_t*                      pObjectEntryCounts;
8120     const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
8121     uint32_t                             maxUniformBuffersPerDescriptor;
8122     uint32_t                             maxStorageBuffersPerDescriptor;
8123     uint32_t                             maxStorageImagesPerDescriptor;
8124     uint32_t                             maxSampledImagesPerDescriptor;
8125     uint32_t                             maxPipelineLayouts;
8126 } VkObjectTableCreateInfoNVX;
8127
8128 typedef struct VkObjectTableEntryNVX {
8129     VkObjectEntryTypeNVX          type;
8130     VkObjectEntryUsageFlagsNVX    flags;
8131 } VkObjectTableEntryNVX;
8132
8133 typedef struct VkObjectTablePipelineEntryNVX {
8134     VkObjectEntryTypeNVX          type;
8135     VkObjectEntryUsageFlagsNVX    flags;
8136     VkPipeline                    pipeline;
8137 } VkObjectTablePipelineEntryNVX;
8138
8139 typedef struct VkObjectTableDescriptorSetEntryNVX {
8140     VkObjectEntryTypeNVX          type;
8141     VkObjectEntryUsageFlagsNVX    flags;
8142     VkPipelineLayout              pipelineLayout;
8143     VkDescriptorSet               descriptorSet;
8144 } VkObjectTableDescriptorSetEntryNVX;
8145
8146 typedef struct VkObjectTableVertexBufferEntryNVX {
8147     VkObjectEntryTypeNVX          type;
8148     VkObjectEntryUsageFlagsNVX    flags;
8149     VkBuffer                      buffer;
8150 } VkObjectTableVertexBufferEntryNVX;
8151
8152 typedef struct VkObjectTableIndexBufferEntryNVX {
8153     VkObjectEntryTypeNVX          type;
8154     VkObjectEntryUsageFlagsNVX    flags;
8155     VkBuffer                      buffer;
8156     VkIndexType                   indexType;
8157 } VkObjectTableIndexBufferEntryNVX;
8158
8159 typedef struct VkObjectTablePushConstantEntryNVX {
8160     VkObjectEntryTypeNVX          type;
8161     VkObjectEntryUsageFlagsNVX    flags;
8162     VkPipelineLayout              pipelineLayout;
8163     VkShaderStageFlags            stageFlags;
8164 } VkObjectTablePushConstantEntryNVX;
8165
8166 typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
8167 typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
8168 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
8169 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
8170 typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
8171 typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
8172 typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
8173 typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
8174 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
8175
8176 #ifndef VK_NO_PROTOTYPES
8177 VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
8178     VkCommandBuffer                             commandBuffer,
8179     const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
8180
8181 VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
8182     VkCommandBuffer                             commandBuffer,
8183     const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
8184
8185 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
8186     VkDevice                                    device,
8187     const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
8188     const VkAllocationCallbacks*                pAllocator,
8189     VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
8190
8191 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
8192     VkDevice                                    device,
8193     VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
8194     const VkAllocationCallbacks*                pAllocator);
8195
8196 VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
8197     VkDevice                                    device,
8198     const VkObjectTableCreateInfoNVX*           pCreateInfo,
8199     const VkAllocationCallbacks*                pAllocator,
8200     VkObjectTableNVX*                           pObjectTable);
8201
8202 VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
8203     VkDevice                                    device,
8204     VkObjectTableNVX                            objectTable,
8205     const VkAllocationCallbacks*                pAllocator);
8206
8207 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
8208     VkDevice                                    device,
8209     VkObjectTableNVX                            objectTable,
8210     uint32_t                                    objectCount,
8211     const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
8212     const uint32_t*                             pObjectIndices);
8213
8214 VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
8215     VkDevice                                    device,
8216     VkObjectTableNVX                            objectTable,
8217     uint32_t                                    objectCount,
8218     const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
8219     const uint32_t*                             pObjectIndices);
8220
8221 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
8222     VkPhysicalDevice                            physicalDevice,
8223     VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
8224     VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
8225 #endif
8226
8227
8228 #define VK_NV_clip_space_w_scaling 1
8229 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
8230 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
8231 typedef struct VkViewportWScalingNV {
8232     float    xcoeff;
8233     float    ycoeff;
8234 } VkViewportWScalingNV;
8235
8236 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
8237     VkStructureType                sType;
8238     const void*                    pNext;
8239     VkBool32                       viewportWScalingEnable;
8240     uint32_t                       viewportCount;
8241     const VkViewportWScalingNV*    pViewportWScalings;
8242 } VkPipelineViewportWScalingStateCreateInfoNV;
8243
8244 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
8245
8246 #ifndef VK_NO_PROTOTYPES
8247 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
8248     VkCommandBuffer                             commandBuffer,
8249     uint32_t                                    firstViewport,
8250     uint32_t                                    viewportCount,
8251     const VkViewportWScalingNV*                 pViewportWScalings);
8252 #endif
8253
8254
8255 #define VK_EXT_direct_mode_display 1
8256 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
8257 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
8258 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
8259
8260 #ifndef VK_NO_PROTOTYPES
8261 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
8262     VkPhysicalDevice                            physicalDevice,
8263     VkDisplayKHR                                display);
8264 #endif
8265
8266
8267 #define VK_EXT_display_surface_counter 1
8268 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
8269 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
8270
8271 typedef enum VkSurfaceCounterFlagBitsEXT {
8272     VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
8273     VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8274 } VkSurfaceCounterFlagBitsEXT;
8275 typedef VkFlags VkSurfaceCounterFlagsEXT;
8276 typedef struct VkSurfaceCapabilities2EXT {
8277     VkStructureType                  sType;
8278     void*                            pNext;
8279     uint32_t                         minImageCount;
8280     uint32_t                         maxImageCount;
8281     VkExtent2D                       currentExtent;
8282     VkExtent2D                       minImageExtent;
8283     VkExtent2D                       maxImageExtent;
8284     uint32_t                         maxImageArrayLayers;
8285     VkSurfaceTransformFlagsKHR       supportedTransforms;
8286     VkSurfaceTransformFlagBitsKHR    currentTransform;
8287     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
8288     VkImageUsageFlags                supportedUsageFlags;
8289     VkSurfaceCounterFlagsEXT         supportedSurfaceCounters;
8290 } VkSurfaceCapabilities2EXT;
8291
8292 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
8293
8294 #ifndef VK_NO_PROTOTYPES
8295 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
8296     VkPhysicalDevice                            physicalDevice,
8297     VkSurfaceKHR                                surface,
8298     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
8299 #endif
8300
8301
8302 #define VK_EXT_display_control 1
8303 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
8304 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
8305
8306 typedef enum VkDisplayPowerStateEXT {
8307     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
8308     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
8309     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
8310     VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
8311     VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
8312     VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
8313     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
8314 } VkDisplayPowerStateEXT;
8315
8316 typedef enum VkDeviceEventTypeEXT {
8317     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
8318     VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
8319     VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
8320     VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
8321     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
8322 } VkDeviceEventTypeEXT;
8323
8324 typedef enum VkDisplayEventTypeEXT {
8325     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
8326     VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
8327     VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
8328     VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
8329     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
8330 } VkDisplayEventTypeEXT;
8331 typedef struct VkDisplayPowerInfoEXT {
8332     VkStructureType           sType;
8333     const void*               pNext;
8334     VkDisplayPowerStateEXT    powerState;
8335 } VkDisplayPowerInfoEXT;
8336
8337 typedef struct VkDeviceEventInfoEXT {
8338     VkStructureType         sType;
8339     const void*             pNext;
8340     VkDeviceEventTypeEXT    deviceEvent;
8341 } VkDeviceEventInfoEXT;
8342
8343 typedef struct VkDisplayEventInfoEXT {
8344     VkStructureType          sType;
8345     const void*              pNext;
8346     VkDisplayEventTypeEXT    displayEvent;
8347 } VkDisplayEventInfoEXT;
8348
8349 typedef struct VkSwapchainCounterCreateInfoEXT {
8350     VkStructureType             sType;
8351     const void*                 pNext;
8352     VkSurfaceCounterFlagsEXT    surfaceCounters;
8353 } VkSwapchainCounterCreateInfoEXT;
8354
8355 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
8356 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
8357 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
8358 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
8359
8360 #ifndef VK_NO_PROTOTYPES
8361 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
8362     VkDevice                                    device,
8363     VkDisplayKHR                                display,
8364     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
8365
8366 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
8367     VkDevice                                    device,
8368     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
8369     const VkAllocationCallbacks*                pAllocator,
8370     VkFence*                                    pFence);
8371
8372 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
8373     VkDevice                                    device,
8374     VkDisplayKHR                                display,
8375     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
8376     const VkAllocationCallbacks*                pAllocator,
8377     VkFence*                                    pFence);
8378
8379 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
8380     VkDevice                                    device,
8381     VkSwapchainKHR                              swapchain,
8382     VkSurfaceCounterFlagBitsEXT                 counter,
8383     uint64_t*                                   pCounterValue);
8384 #endif
8385
8386
8387 #define VK_GOOGLE_display_timing 1
8388 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
8389 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
8390 typedef struct VkRefreshCycleDurationGOOGLE {
8391     uint64_t    refreshDuration;
8392 } VkRefreshCycleDurationGOOGLE;
8393
8394 typedef struct VkPastPresentationTimingGOOGLE {
8395     uint32_t    presentID;
8396     uint64_t    desiredPresentTime;
8397     uint64_t    actualPresentTime;
8398     uint64_t    earliestPresentTime;
8399     uint64_t    presentMargin;
8400 } VkPastPresentationTimingGOOGLE;
8401
8402 typedef struct VkPresentTimeGOOGLE {
8403     uint32_t    presentID;
8404     uint64_t    desiredPresentTime;
8405 } VkPresentTimeGOOGLE;
8406
8407 typedef struct VkPresentTimesInfoGOOGLE {
8408     VkStructureType               sType;
8409     const void*                   pNext;
8410     uint32_t                      swapchainCount;
8411     const VkPresentTimeGOOGLE*    pTimes;
8412 } VkPresentTimesInfoGOOGLE;
8413
8414 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
8415 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
8416
8417 #ifndef VK_NO_PROTOTYPES
8418 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
8419     VkDevice                                    device,
8420     VkSwapchainKHR                              swapchain,
8421     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
8422
8423 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
8424     VkDevice                                    device,
8425     VkSwapchainKHR                              swapchain,
8426     uint32_t*                                   pPresentationTimingCount,
8427     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
8428 #endif
8429
8430
8431 #define VK_NV_sample_mask_override_coverage 1
8432 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
8433 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
8434
8435
8436 #define VK_NV_geometry_shader_passthrough 1
8437 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
8438 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
8439
8440
8441 #define VK_NV_viewport_array2 1
8442 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
8443 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
8444
8445
8446 #define VK_NVX_multiview_per_view_attributes 1
8447 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
8448 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
8449 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
8450     VkStructureType    sType;
8451     void*              pNext;
8452     VkBool32           perViewPositionAllComponents;
8453 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
8454
8455
8456
8457 #define VK_NV_viewport_swizzle 1
8458 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
8459 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
8460
8461 typedef enum VkViewportCoordinateSwizzleNV {
8462     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
8463     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
8464     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
8465     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
8466     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
8467     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
8468     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
8469     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
8470     VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
8471     VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
8472     VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
8473     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
8474 } VkViewportCoordinateSwizzleNV;
8475 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
8476 typedef struct VkViewportSwizzleNV {
8477     VkViewportCoordinateSwizzleNV    x;
8478     VkViewportCoordinateSwizzleNV    y;
8479     VkViewportCoordinateSwizzleNV    z;
8480     VkViewportCoordinateSwizzleNV    w;
8481 } VkViewportSwizzleNV;
8482
8483 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
8484     VkStructureType                                sType;
8485     const void*                                    pNext;
8486     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
8487     uint32_t                                       viewportCount;
8488     const VkViewportSwizzleNV*                     pViewportSwizzles;
8489 } VkPipelineViewportSwizzleStateCreateInfoNV;
8490
8491
8492
8493 #define VK_EXT_discard_rectangles 1
8494 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
8495 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
8496
8497 typedef enum VkDiscardRectangleModeEXT {
8498     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
8499     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
8500     VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
8501     VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
8502     VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
8503     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
8504 } VkDiscardRectangleModeEXT;
8505 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
8506 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
8507     VkStructureType    sType;
8508     void*              pNext;
8509     uint32_t           maxDiscardRectangles;
8510 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
8511
8512 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
8513     VkStructureType                                  sType;
8514     const void*                                      pNext;
8515     VkPipelineDiscardRectangleStateCreateFlagsEXT    flags;
8516     VkDiscardRectangleModeEXT                        discardRectangleMode;
8517     uint32_t                                         discardRectangleCount;
8518     const VkRect2D*                                  pDiscardRectangles;
8519 } VkPipelineDiscardRectangleStateCreateInfoEXT;
8520
8521 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
8522
8523 #ifndef VK_NO_PROTOTYPES
8524 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
8525     VkCommandBuffer                             commandBuffer,
8526     uint32_t                                    firstDiscardRectangle,
8527     uint32_t                                    discardRectangleCount,
8528     const VkRect2D*                             pDiscardRectangles);
8529 #endif
8530
8531
8532 #define VK_EXT_conservative_rasterization 1
8533 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
8534 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
8535
8536 typedef enum VkConservativeRasterizationModeEXT {
8537     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
8538     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
8539     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
8540     VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
8541     VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
8542     VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
8543     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
8544 } VkConservativeRasterizationModeEXT;
8545 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
8546 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
8547     VkStructureType    sType;
8548     void*              pNext;
8549     float              primitiveOverestimationSize;
8550     float              maxExtraPrimitiveOverestimationSize;
8551     float              extraPrimitiveOverestimationSizeGranularity;
8552     VkBool32           primitiveUnderestimation;
8553     VkBool32           conservativePointAndLineRasterization;
8554     VkBool32           degenerateTrianglesRasterized;
8555     VkBool32           degenerateLinesRasterized;
8556     VkBool32           fullyCoveredFragmentShaderInputVariable;
8557     VkBool32           conservativeRasterizationPostDepthCoverage;
8558 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
8559
8560 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
8561     VkStructureType                                           sType;
8562     const void*                                               pNext;
8563     VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags;
8564     VkConservativeRasterizationModeEXT                        conservativeRasterizationMode;
8565     float                                                     extraPrimitiveOverestimationSize;
8566 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
8567
8568
8569
8570 #define VK_EXT_depth_clip_enable 1
8571 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
8572 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
8573 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
8574 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
8575     VkStructureType    sType;
8576     void*              pNext;
8577     VkBool32           depthClipEnable;
8578 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
8579
8580 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
8581     VkStructureType                                        sType;
8582     const void*                                            pNext;
8583     VkPipelineRasterizationDepthClipStateCreateFlagsEXT    flags;
8584     VkBool32                                               depthClipEnable;
8585 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
8586
8587
8588
8589 #define VK_EXT_swapchain_colorspace 1
8590 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
8591 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
8592
8593
8594 #define VK_EXT_hdr_metadata 1
8595 #define VK_EXT_HDR_METADATA_SPEC_VERSION  2
8596 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
8597 typedef struct VkXYColorEXT {
8598     float    x;
8599     float    y;
8600 } VkXYColorEXT;
8601
8602 typedef struct VkHdrMetadataEXT {
8603     VkStructureType    sType;
8604     const void*        pNext;
8605     VkXYColorEXT       displayPrimaryRed;
8606     VkXYColorEXT       displayPrimaryGreen;
8607     VkXYColorEXT       displayPrimaryBlue;
8608     VkXYColorEXT       whitePoint;
8609     float              maxLuminance;
8610     float              minLuminance;
8611     float              maxContentLightLevel;
8612     float              maxFrameAverageLightLevel;
8613 } VkHdrMetadataEXT;
8614
8615 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
8616
8617 #ifndef VK_NO_PROTOTYPES
8618 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
8619     VkDevice                                    device,
8620     uint32_t                                    swapchainCount,
8621     const VkSwapchainKHR*                       pSwapchains,
8622     const VkHdrMetadataEXT*                     pMetadata);
8623 #endif
8624
8625
8626 #define VK_EXT_external_memory_dma_buf 1
8627 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
8628 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
8629
8630
8631 #define VK_EXT_queue_family_foreign 1
8632 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
8633 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
8634 #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~0U-2)
8635
8636
8637 #define VK_EXT_debug_utils 1
8638 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
8639 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   1
8640 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
8641 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
8642 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
8643
8644 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
8645     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
8646     VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
8647     VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
8648     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
8649     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8650 } VkDebugUtilsMessageSeverityFlagBitsEXT;
8651 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
8652
8653 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
8654     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
8655     VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
8656     VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
8657     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8658 } VkDebugUtilsMessageTypeFlagBitsEXT;
8659 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
8660 typedef struct VkDebugUtilsObjectNameInfoEXT {
8661     VkStructureType    sType;
8662     const void*        pNext;
8663     VkObjectType       objectType;
8664     uint64_t           objectHandle;
8665     const char*        pObjectName;
8666 } VkDebugUtilsObjectNameInfoEXT;
8667
8668 typedef struct VkDebugUtilsObjectTagInfoEXT {
8669     VkStructureType    sType;
8670     const void*        pNext;
8671     VkObjectType       objectType;
8672     uint64_t           objectHandle;
8673     uint64_t           tagName;
8674     size_t             tagSize;
8675     const void*        pTag;
8676 } VkDebugUtilsObjectTagInfoEXT;
8677
8678 typedef struct VkDebugUtilsLabelEXT {
8679     VkStructureType    sType;
8680     const void*        pNext;
8681     const char*        pLabelName;
8682     float              color[4];
8683 } VkDebugUtilsLabelEXT;
8684
8685 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
8686     VkStructureType                              sType;
8687     const void*                                  pNext;
8688     VkDebugUtilsMessengerCallbackDataFlagsEXT    flags;
8689     const char*                                  pMessageIdName;
8690     int32_t                                      messageIdNumber;
8691     const char*                                  pMessage;
8692     uint32_t                                     queueLabelCount;
8693     const VkDebugUtilsLabelEXT*                  pQueueLabels;
8694     uint32_t                                     cmdBufLabelCount;
8695     const VkDebugUtilsLabelEXT*                  pCmdBufLabels;
8696     uint32_t                                     objectCount;
8697     const VkDebugUtilsObjectNameInfoEXT*         pObjects;
8698 } VkDebugUtilsMessengerCallbackDataEXT;
8699
8700 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
8701     VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
8702     VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
8703     const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
8704     void*                                            pUserData);
8705
8706 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
8707     VkStructureType                         sType;
8708     const void*                             pNext;
8709     VkDebugUtilsMessengerCreateFlagsEXT     flags;
8710     VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity;
8711     VkDebugUtilsMessageTypeFlagsEXT         messageType;
8712     PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
8713     void*                                   pUserData;
8714 } VkDebugUtilsMessengerCreateInfoEXT;
8715
8716 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
8717 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
8718 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
8719 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
8720 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
8721 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
8722 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
8723 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
8724 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
8725 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
8726 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
8727
8728 #ifndef VK_NO_PROTOTYPES
8729 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
8730     VkDevice                                    device,
8731     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
8732
8733 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
8734     VkDevice                                    device,
8735     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
8736
8737 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
8738     VkQueue                                     queue,
8739     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8740
8741 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
8742     VkQueue                                     queue);
8743
8744 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
8745     VkQueue                                     queue,
8746     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8747
8748 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
8749     VkCommandBuffer                             commandBuffer,
8750     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8751
8752 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
8753     VkCommandBuffer                             commandBuffer);
8754
8755 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
8756     VkCommandBuffer                             commandBuffer,
8757     const VkDebugUtilsLabelEXT*                 pLabelInfo);
8758
8759 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
8760     VkInstance                                  instance,
8761     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
8762     const VkAllocationCallbacks*                pAllocator,
8763     VkDebugUtilsMessengerEXT*                   pMessenger);
8764
8765 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
8766     VkInstance                                  instance,
8767     VkDebugUtilsMessengerEXT                    messenger,
8768     const VkAllocationCallbacks*                pAllocator);
8769
8770 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
8771     VkInstance                                  instance,
8772     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
8773     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
8774     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
8775 #endif
8776
8777
8778 #define VK_EXT_sampler_filter_minmax 1
8779 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
8780 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
8781 typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
8782
8783 typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
8784
8785 typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
8786
8787
8788
8789 #define VK_AMD_gpu_shader_int16 1
8790 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
8791 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
8792
8793
8794 #define VK_AMD_mixed_attachment_samples 1
8795 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
8796 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
8797
8798
8799 #define VK_AMD_shader_fragment_mask 1
8800 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
8801 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
8802
8803
8804 #define VK_EXT_inline_uniform_block 1
8805 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
8806 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
8807 typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
8808     VkStructureType    sType;
8809     void*              pNext;
8810     VkBool32           inlineUniformBlock;
8811     VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind;
8812 } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
8813
8814 typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
8815     VkStructureType    sType;
8816     void*              pNext;
8817     uint32_t           maxInlineUniformBlockSize;
8818     uint32_t           maxPerStageDescriptorInlineUniformBlocks;
8819     uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
8820     uint32_t           maxDescriptorSetInlineUniformBlocks;
8821     uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
8822 } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
8823
8824 typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
8825     VkStructureType    sType;
8826     const void*        pNext;
8827     uint32_t           dataSize;
8828     const void*        pData;
8829 } VkWriteDescriptorSetInlineUniformBlockEXT;
8830
8831 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
8832     VkStructureType    sType;
8833     const void*        pNext;
8834     uint32_t           maxInlineUniformBlockBindings;
8835 } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
8836
8837
8838
8839 #define VK_EXT_shader_stencil_export 1
8840 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
8841 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
8842
8843
8844 #define VK_EXT_sample_locations 1
8845 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
8846 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
8847 typedef struct VkSampleLocationEXT {
8848     float    x;
8849     float    y;
8850 } VkSampleLocationEXT;
8851
8852 typedef struct VkSampleLocationsInfoEXT {
8853     VkStructureType               sType;
8854     const void*                   pNext;
8855     VkSampleCountFlagBits         sampleLocationsPerPixel;
8856     VkExtent2D                    sampleLocationGridSize;
8857     uint32_t                      sampleLocationsCount;
8858     const VkSampleLocationEXT*    pSampleLocations;
8859 } VkSampleLocationsInfoEXT;
8860
8861 typedef struct VkAttachmentSampleLocationsEXT {
8862     uint32_t                    attachmentIndex;
8863     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8864 } VkAttachmentSampleLocationsEXT;
8865
8866 typedef struct VkSubpassSampleLocationsEXT {
8867     uint32_t                    subpassIndex;
8868     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8869 } VkSubpassSampleLocationsEXT;
8870
8871 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
8872     VkStructureType                          sType;
8873     const void*                              pNext;
8874     uint32_t                                 attachmentInitialSampleLocationsCount;
8875     const VkAttachmentSampleLocationsEXT*    pAttachmentInitialSampleLocations;
8876     uint32_t                                 postSubpassSampleLocationsCount;
8877     const VkSubpassSampleLocationsEXT*       pPostSubpassSampleLocations;
8878 } VkRenderPassSampleLocationsBeginInfoEXT;
8879
8880 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
8881     VkStructureType             sType;
8882     const void*                 pNext;
8883     VkBool32                    sampleLocationsEnable;
8884     VkSampleLocationsInfoEXT    sampleLocationsInfo;
8885 } VkPipelineSampleLocationsStateCreateInfoEXT;
8886
8887 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
8888     VkStructureType       sType;
8889     void*                 pNext;
8890     VkSampleCountFlags    sampleLocationSampleCounts;
8891     VkExtent2D            maxSampleLocationGridSize;
8892     float                 sampleLocationCoordinateRange[2];
8893     uint32_t              sampleLocationSubPixelBits;
8894     VkBool32              variableSampleLocations;
8895 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
8896
8897 typedef struct VkMultisamplePropertiesEXT {
8898     VkStructureType    sType;
8899     void*              pNext;
8900     VkExtent2D         maxSampleLocationGridSize;
8901 } VkMultisamplePropertiesEXT;
8902
8903 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
8904 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
8905
8906 #ifndef VK_NO_PROTOTYPES
8907 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
8908     VkCommandBuffer                             commandBuffer,
8909     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
8910
8911 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
8912     VkPhysicalDevice                            physicalDevice,
8913     VkSampleCountFlagBits                       samples,
8914     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
8915 #endif
8916
8917
8918 #define VK_EXT_blend_operation_advanced 1
8919 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
8920 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
8921
8922 typedef enum VkBlendOverlapEXT {
8923     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
8924     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
8925     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
8926     VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
8927     VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
8928     VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
8929     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
8930 } VkBlendOverlapEXT;
8931 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
8932     VkStructureType    sType;
8933     void*              pNext;
8934     VkBool32           advancedBlendCoherentOperations;
8935 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
8936
8937 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
8938     VkStructureType    sType;
8939     void*              pNext;
8940     uint32_t           advancedBlendMaxColorAttachments;
8941     VkBool32           advancedBlendIndependentBlend;
8942     VkBool32           advancedBlendNonPremultipliedSrcColor;
8943     VkBool32           advancedBlendNonPremultipliedDstColor;
8944     VkBool32           advancedBlendCorrelatedOverlap;
8945     VkBool32           advancedBlendAllOperations;
8946 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
8947
8948 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
8949     VkStructureType      sType;
8950     const void*          pNext;
8951     VkBool32             srcPremultiplied;
8952     VkBool32             dstPremultiplied;
8953     VkBlendOverlapEXT    blendOverlap;
8954 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
8955
8956
8957
8958 #define VK_NV_fragment_coverage_to_color 1
8959 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
8960 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
8961 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
8962 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
8963     VkStructureType                                sType;
8964     const void*                                    pNext;
8965     VkPipelineCoverageToColorStateCreateFlagsNV    flags;
8966     VkBool32                                       coverageToColorEnable;
8967     uint32_t                                       coverageToColorLocation;
8968 } VkPipelineCoverageToColorStateCreateInfoNV;
8969
8970
8971
8972 #define VK_NV_framebuffer_mixed_samples 1
8973 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
8974 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
8975
8976 typedef enum VkCoverageModulationModeNV {
8977     VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
8978     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
8979     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
8980     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
8981     VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
8982     VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
8983     VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
8984     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
8985 } VkCoverageModulationModeNV;
8986 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
8987 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
8988     VkStructureType                                   sType;
8989     const void*                                       pNext;
8990     VkPipelineCoverageModulationStateCreateFlagsNV    flags;
8991     VkCoverageModulationModeNV                        coverageModulationMode;
8992     VkBool32                                          coverageModulationTableEnable;
8993     uint32_t                                          coverageModulationTableCount;
8994     const float*                                      pCoverageModulationTable;
8995 } VkPipelineCoverageModulationStateCreateInfoNV;
8996
8997
8998
8999 #define VK_NV_fill_rectangle 1
9000 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
9001 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
9002
9003 #define VK_NV_shader_sm_builtins 1
9004 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
9005 #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
9006 typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
9007     VkStructureType    sType;
9008     void*              pNext;
9009     uint32_t           shaderSMCount;
9010     uint32_t           shaderWarpsPerSM;
9011 } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
9012
9013 typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
9014     VkStructureType    sType;
9015     void*              pNext;
9016     VkBool32           shaderSMBuiltins;
9017 } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
9018
9019 #define VK_EXT_post_depth_coverage 1
9020 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
9021 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
9022
9023
9024 #define VK_EXT_image_drm_format_modifier 1
9025 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
9026 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
9027 typedef struct VkDrmFormatModifierPropertiesEXT {
9028     uint64_t                drmFormatModifier;
9029     uint32_t                drmFormatModifierPlaneCount;
9030     VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
9031 } VkDrmFormatModifierPropertiesEXT;
9032
9033 typedef struct VkDrmFormatModifierPropertiesListEXT {
9034     VkStructureType                      sType;
9035     void*                                pNext;
9036     uint32_t                             drmFormatModifierCount;
9037     VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties;
9038 } VkDrmFormatModifierPropertiesListEXT;
9039
9040 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
9041     VkStructureType    sType;
9042     const void*        pNext;
9043     uint64_t           drmFormatModifier;
9044     VkSharingMode      sharingMode;
9045     uint32_t           queueFamilyIndexCount;
9046     const uint32_t*    pQueueFamilyIndices;
9047 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
9048
9049 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
9050     VkStructureType    sType;
9051     const void*        pNext;
9052     uint32_t           drmFormatModifierCount;
9053     const uint64_t*    pDrmFormatModifiers;
9054 } VkImageDrmFormatModifierListCreateInfoEXT;
9055
9056 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
9057     VkStructureType               sType;
9058     const void*                   pNext;
9059     uint64_t                      drmFormatModifier;
9060     uint32_t                      drmFormatModifierPlaneCount;
9061     const VkSubresourceLayout*    pPlaneLayouts;
9062 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
9063
9064 typedef struct VkImageDrmFormatModifierPropertiesEXT {
9065     VkStructureType    sType;
9066     void*              pNext;
9067     uint64_t           drmFormatModifier;
9068 } VkImageDrmFormatModifierPropertiesEXT;
9069
9070 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
9071
9072 #ifndef VK_NO_PROTOTYPES
9073 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
9074     VkDevice                                    device,
9075     VkImage                                     image,
9076     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
9077 #endif
9078
9079
9080 #define VK_EXT_validation_cache 1
9081 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
9082 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
9083 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
9084
9085 typedef enum VkValidationCacheHeaderVersionEXT {
9086     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
9087     VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
9088     VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
9089     VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
9090     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
9091 } VkValidationCacheHeaderVersionEXT;
9092 typedef VkFlags VkValidationCacheCreateFlagsEXT;
9093 typedef struct VkValidationCacheCreateInfoEXT {
9094     VkStructureType                    sType;
9095     const void*                        pNext;
9096     VkValidationCacheCreateFlagsEXT    flags;
9097     size_t                             initialDataSize;
9098     const void*                        pInitialData;
9099 } VkValidationCacheCreateInfoEXT;
9100
9101 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
9102     VkStructureType         sType;
9103     const void*             pNext;
9104     VkValidationCacheEXT    validationCache;
9105 } VkShaderModuleValidationCacheCreateInfoEXT;
9106
9107 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
9108 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
9109 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
9110 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
9111
9112 #ifndef VK_NO_PROTOTYPES
9113 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
9114     VkDevice                                    device,
9115     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
9116     const VkAllocationCallbacks*                pAllocator,
9117     VkValidationCacheEXT*                       pValidationCache);
9118
9119 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
9120     VkDevice                                    device,
9121     VkValidationCacheEXT                        validationCache,
9122     const VkAllocationCallbacks*                pAllocator);
9123
9124 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
9125     VkDevice                                    device,
9126     VkValidationCacheEXT                        dstCache,
9127     uint32_t                                    srcCacheCount,
9128     const VkValidationCacheEXT*                 pSrcCaches);
9129
9130 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
9131     VkDevice                                    device,
9132     VkValidationCacheEXT                        validationCache,
9133     size_t*                                     pDataSize,
9134     void*                                       pData);
9135 #endif
9136
9137
9138 #define VK_EXT_descriptor_indexing 1
9139 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
9140 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
9141 typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
9142
9143 typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
9144
9145 typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
9146
9147 typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
9148
9149 typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
9150
9151 typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
9152
9153 typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
9154
9155
9156
9157 #define VK_EXT_shader_viewport_index_layer 1
9158 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
9159 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
9160
9161
9162 #define VK_NV_shading_rate_image 1
9163 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
9164 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
9165
9166 typedef enum VkShadingRatePaletteEntryNV {
9167     VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
9168     VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
9169     VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
9170     VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
9171     VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
9172     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
9173     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
9174     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
9175     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
9176     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
9177     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
9178     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
9179     VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
9180     VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
9181     VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
9182     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
9183 } VkShadingRatePaletteEntryNV;
9184
9185 typedef enum VkCoarseSampleOrderTypeNV {
9186     VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
9187     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
9188     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
9189     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
9190     VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
9191     VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
9192     VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
9193     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9194 } VkCoarseSampleOrderTypeNV;
9195 typedef struct VkShadingRatePaletteNV {
9196     uint32_t                              shadingRatePaletteEntryCount;
9197     const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries;
9198 } VkShadingRatePaletteNV;
9199
9200 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
9201     VkStructureType                  sType;
9202     const void*                      pNext;
9203     VkBool32                         shadingRateImageEnable;
9204     uint32_t                         viewportCount;
9205     const VkShadingRatePaletteNV*    pShadingRatePalettes;
9206 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
9207
9208 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
9209     VkStructureType    sType;
9210     void*              pNext;
9211     VkBool32           shadingRateImage;
9212     VkBool32           shadingRateCoarseSampleOrder;
9213 } VkPhysicalDeviceShadingRateImageFeaturesNV;
9214
9215 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
9216     VkStructureType    sType;
9217     void*              pNext;
9218     VkExtent2D         shadingRateTexelSize;
9219     uint32_t           shadingRatePaletteSize;
9220     uint32_t           shadingRateMaxCoarseSamples;
9221 } VkPhysicalDeviceShadingRateImagePropertiesNV;
9222
9223 typedef struct VkCoarseSampleLocationNV {
9224     uint32_t    pixelX;
9225     uint32_t    pixelY;
9226     uint32_t    sample;
9227 } VkCoarseSampleLocationNV;
9228
9229 typedef struct VkCoarseSampleOrderCustomNV {
9230     VkShadingRatePaletteEntryNV        shadingRate;
9231     uint32_t                           sampleCount;
9232     uint32_t                           sampleLocationCount;
9233     const VkCoarseSampleLocationNV*    pSampleLocations;
9234 } VkCoarseSampleOrderCustomNV;
9235
9236 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
9237     VkStructureType                       sType;
9238     const void*                           pNext;
9239     VkCoarseSampleOrderTypeNV             sampleOrderType;
9240     uint32_t                              customSampleOrderCount;
9241     const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders;
9242 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
9243
9244 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
9245 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
9246 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
9247
9248 #ifndef VK_NO_PROTOTYPES
9249 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
9250     VkCommandBuffer                             commandBuffer,
9251     VkImageView                                 imageView,
9252     VkImageLayout                               imageLayout);
9253
9254 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
9255     VkCommandBuffer                             commandBuffer,
9256     uint32_t                                    firstViewport,
9257     uint32_t                                    viewportCount,
9258     const VkShadingRatePaletteNV*               pShadingRatePalettes);
9259
9260 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
9261     VkCommandBuffer                             commandBuffer,
9262     VkCoarseSampleOrderTypeNV                   sampleOrderType,
9263     uint32_t                                    customSampleOrderCount,
9264     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
9265 #endif
9266
9267
9268 #define VK_NV_ray_tracing 1
9269 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
9270 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
9271 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
9272 #define VK_SHADER_UNUSED_NV               (~0U)
9273
9274 typedef enum VkAccelerationStructureTypeNV {
9275     VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
9276     VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
9277     VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
9278     VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
9279     VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1),
9280     VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9281 } VkAccelerationStructureTypeNV;
9282
9283 typedef enum VkRayTracingShaderGroupTypeNV {
9284     VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
9285     VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
9286     VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
9287     VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
9288     VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
9289     VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1),
9290     VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9291 } VkRayTracingShaderGroupTypeNV;
9292
9293 typedef enum VkGeometryTypeNV {
9294     VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
9295     VK_GEOMETRY_TYPE_AABBS_NV = 1,
9296     VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV,
9297     VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV,
9298     VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1),
9299     VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9300 } VkGeometryTypeNV;
9301
9302 typedef enum VkCopyAccelerationStructureModeNV {
9303     VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
9304     VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
9305     VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
9306     VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
9307     VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1),
9308     VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF
9309 } VkCopyAccelerationStructureModeNV;
9310
9311 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
9312     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
9313     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
9314     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
9315     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
9316     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
9317     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1),
9318     VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9319 } VkAccelerationStructureMemoryRequirementsTypeNV;
9320
9321 typedef enum VkGeometryFlagBitsNV {
9322     VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
9323     VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
9324     VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9325 } VkGeometryFlagBitsNV;
9326 typedef VkFlags VkGeometryFlagsNV;
9327
9328 typedef enum VkGeometryInstanceFlagBitsNV {
9329     VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
9330     VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
9331     VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
9332     VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
9333     VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9334 } VkGeometryInstanceFlagBitsNV;
9335 typedef VkFlags VkGeometryInstanceFlagsNV;
9336
9337 typedef enum VkBuildAccelerationStructureFlagBitsNV {
9338     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
9339     VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
9340     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
9341     VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
9342     VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
9343     VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
9344 } VkBuildAccelerationStructureFlagBitsNV;
9345 typedef VkFlags VkBuildAccelerationStructureFlagsNV;
9346 typedef struct VkRayTracingShaderGroupCreateInfoNV {
9347     VkStructureType                  sType;
9348     const void*                      pNext;
9349     VkRayTracingShaderGroupTypeNV    type;
9350     uint32_t                         generalShader;
9351     uint32_t                         closestHitShader;
9352     uint32_t                         anyHitShader;
9353     uint32_t                         intersectionShader;
9354 } VkRayTracingShaderGroupCreateInfoNV;
9355
9356 typedef struct VkRayTracingPipelineCreateInfoNV {
9357     VkStructureType                               sType;
9358     const void*                                   pNext;
9359     VkPipelineCreateFlags                         flags;
9360     uint32_t                                      stageCount;
9361     const VkPipelineShaderStageCreateInfo*        pStages;
9362     uint32_t                                      groupCount;
9363     const VkRayTracingShaderGroupCreateInfoNV*    pGroups;
9364     uint32_t                                      maxRecursionDepth;
9365     VkPipelineLayout                              layout;
9366     VkPipeline                                    basePipelineHandle;
9367     int32_t                                       basePipelineIndex;
9368 } VkRayTracingPipelineCreateInfoNV;
9369
9370 typedef struct VkGeometryTrianglesNV {
9371     VkStructureType    sType;
9372     const void*        pNext;
9373     VkBuffer           vertexData;
9374     VkDeviceSize       vertexOffset;
9375     uint32_t           vertexCount;
9376     VkDeviceSize       vertexStride;
9377     VkFormat           vertexFormat;
9378     VkBuffer           indexData;
9379     VkDeviceSize       indexOffset;
9380     uint32_t           indexCount;
9381     VkIndexType        indexType;
9382     VkBuffer           transformData;
9383     VkDeviceSize       transformOffset;
9384 } VkGeometryTrianglesNV;
9385
9386 typedef struct VkGeometryAABBNV {
9387     VkStructureType    sType;
9388     const void*        pNext;
9389     VkBuffer           aabbData;
9390     uint32_t           numAABBs;
9391     uint32_t           stride;
9392     VkDeviceSize       offset;
9393 } VkGeometryAABBNV;
9394
9395 typedef struct VkGeometryDataNV {
9396     VkGeometryTrianglesNV    triangles;
9397     VkGeometryAABBNV         aabbs;
9398 } VkGeometryDataNV;
9399
9400 typedef struct VkGeometryNV {
9401     VkStructureType      sType;
9402     const void*          pNext;
9403     VkGeometryTypeNV     geometryType;
9404     VkGeometryDataNV     geometry;
9405     VkGeometryFlagsNV    flags;
9406 } VkGeometryNV;
9407
9408 typedef struct VkAccelerationStructureInfoNV {
9409     VkStructureType                        sType;
9410     const void*                            pNext;
9411     VkAccelerationStructureTypeNV          type;
9412     VkBuildAccelerationStructureFlagsNV    flags;
9413     uint32_t                               instanceCount;
9414     uint32_t                               geometryCount;
9415     const VkGeometryNV*                    pGeometries;
9416 } VkAccelerationStructureInfoNV;
9417
9418 typedef struct VkAccelerationStructureCreateInfoNV {
9419     VkStructureType                  sType;
9420     const void*                      pNext;
9421     VkDeviceSize                     compactedSize;
9422     VkAccelerationStructureInfoNV    info;
9423 } VkAccelerationStructureCreateInfoNV;
9424
9425 typedef struct VkBindAccelerationStructureMemoryInfoNV {
9426     VkStructureType              sType;
9427     const void*                  pNext;
9428     VkAccelerationStructureNV    accelerationStructure;
9429     VkDeviceMemory               memory;
9430     VkDeviceSize                 memoryOffset;
9431     uint32_t                     deviceIndexCount;
9432     const uint32_t*              pDeviceIndices;
9433 } VkBindAccelerationStructureMemoryInfoNV;
9434
9435 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
9436     VkStructureType                     sType;
9437     const void*                         pNext;
9438     uint32_t                            accelerationStructureCount;
9439     const VkAccelerationStructureNV*    pAccelerationStructures;
9440 } VkWriteDescriptorSetAccelerationStructureNV;
9441
9442 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
9443     VkStructureType                                    sType;
9444     const void*                                        pNext;
9445     VkAccelerationStructureMemoryRequirementsTypeNV    type;
9446     VkAccelerationStructureNV                          accelerationStructure;
9447 } VkAccelerationStructureMemoryRequirementsInfoNV;
9448
9449 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
9450     VkStructureType    sType;
9451     void*              pNext;
9452     uint32_t           shaderGroupHandleSize;
9453     uint32_t           maxRecursionDepth;
9454     uint32_t           maxShaderGroupStride;
9455     uint32_t           shaderGroupBaseAlignment;
9456     uint64_t           maxGeometryCount;
9457     uint64_t           maxInstanceCount;
9458     uint64_t           maxTriangleCount;
9459     uint32_t           maxDescriptorSetAccelerationStructures;
9460 } VkPhysicalDeviceRayTracingPropertiesNV;
9461
9462 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
9463 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
9464 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
9465 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
9466 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
9467 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
9468 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
9469 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
9470 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
9471 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
9472 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
9473 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
9474
9475 #ifndef VK_NO_PROTOTYPES
9476 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
9477     VkDevice                                    device,
9478     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
9479     const VkAllocationCallbacks*                pAllocator,
9480     VkAccelerationStructureNV*                  pAccelerationStructure);
9481
9482 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
9483     VkDevice                                    device,
9484     VkAccelerationStructureNV                   accelerationStructure,
9485     const VkAllocationCallbacks*                pAllocator);
9486
9487 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
9488     VkDevice                                    device,
9489     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
9490     VkMemoryRequirements2KHR*                   pMemoryRequirements);
9491
9492 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
9493     VkDevice                                    device,
9494     uint32_t                                    bindInfoCount,
9495     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
9496
9497 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
9498     VkCommandBuffer                             commandBuffer,
9499     const VkAccelerationStructureInfoNV*        pInfo,
9500     VkBuffer                                    instanceData,
9501     VkDeviceSize                                instanceOffset,
9502     VkBool32                                    update,
9503     VkAccelerationStructureNV                   dst,
9504     VkAccelerationStructureNV                   src,
9505     VkBuffer                                    scratch,
9506     VkDeviceSize                                scratchOffset);
9507
9508 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
9509     VkCommandBuffer                             commandBuffer,
9510     VkAccelerationStructureNV                   dst,
9511     VkAccelerationStructureNV                   src,
9512     VkCopyAccelerationStructureModeNV           mode);
9513
9514 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
9515     VkCommandBuffer                             commandBuffer,
9516     VkBuffer                                    raygenShaderBindingTableBuffer,
9517     VkDeviceSize                                raygenShaderBindingOffset,
9518     VkBuffer                                    missShaderBindingTableBuffer,
9519     VkDeviceSize                                missShaderBindingOffset,
9520     VkDeviceSize                                missShaderBindingStride,
9521     VkBuffer                                    hitShaderBindingTableBuffer,
9522     VkDeviceSize                                hitShaderBindingOffset,
9523     VkDeviceSize                                hitShaderBindingStride,
9524     VkBuffer                                    callableShaderBindingTableBuffer,
9525     VkDeviceSize                                callableShaderBindingOffset,
9526     VkDeviceSize                                callableShaderBindingStride,
9527     uint32_t                                    width,
9528     uint32_t                                    height,
9529     uint32_t                                    depth);
9530
9531 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
9532     VkDevice                                    device,
9533     VkPipelineCache                             pipelineCache,
9534     uint32_t                                    createInfoCount,
9535     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
9536     const VkAllocationCallbacks*                pAllocator,
9537     VkPipeline*                                 pPipelines);
9538
9539 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
9540     VkDevice                                    device,
9541     VkPipeline                                  pipeline,
9542     uint32_t                                    firstGroup,
9543     uint32_t                                    groupCount,
9544     size_t                                      dataSize,
9545     void*                                       pData);
9546
9547 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
9548     VkDevice                                    device,
9549     VkAccelerationStructureNV                   accelerationStructure,
9550     size_t                                      dataSize,
9551     void*                                       pData);
9552
9553 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
9554     VkCommandBuffer                             commandBuffer,
9555     uint32_t                                    accelerationStructureCount,
9556     const VkAccelerationStructureNV*            pAccelerationStructures,
9557     VkQueryType                                 queryType,
9558     VkQueryPool                                 queryPool,
9559     uint32_t                                    firstQuery);
9560
9561 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
9562     VkDevice                                    device,
9563     VkPipeline                                  pipeline,
9564     uint32_t                                    shader);
9565 #endif
9566
9567
9568 #define VK_NV_representative_fragment_test 1
9569 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
9570 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
9571 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
9572     VkStructureType    sType;
9573     void*              pNext;
9574     VkBool32           representativeFragmentTest;
9575 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
9576
9577 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
9578     VkStructureType    sType;
9579     const void*        pNext;
9580     VkBool32           representativeFragmentTestEnable;
9581 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
9582
9583
9584
9585 #define VK_EXT_filter_cubic 1
9586 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION  2
9587 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
9588 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
9589     VkStructureType    sType;
9590     void*              pNext;
9591     VkImageViewType    imageViewType;
9592 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
9593
9594 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
9595     VkStructureType    sType;
9596     void*              pNext;
9597     VkBool32           filterCubic;
9598     VkBool32           filterCubicMinmax;
9599 } VkFilterCubicImageViewImageFormatPropertiesEXT;
9600
9601
9602
9603 #define VK_EXT_global_priority 1
9604 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
9605 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
9606
9607 typedef enum VkQueueGlobalPriorityEXT {
9608     VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
9609     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
9610     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
9611     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
9612     VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
9613     VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
9614     VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
9615     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
9616 } VkQueueGlobalPriorityEXT;
9617 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
9618     VkStructureType             sType;
9619     const void*                 pNext;
9620     VkQueueGlobalPriorityEXT    globalPriority;
9621 } VkDeviceQueueGlobalPriorityCreateInfoEXT;
9622
9623
9624
9625 #define VK_EXT_external_memory_host 1
9626 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
9627 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
9628 typedef struct VkImportMemoryHostPointerInfoEXT {
9629     VkStructureType                       sType;
9630     const void*                           pNext;
9631     VkExternalMemoryHandleTypeFlagBits    handleType;
9632     void*                                 pHostPointer;
9633 } VkImportMemoryHostPointerInfoEXT;
9634
9635 typedef struct VkMemoryHostPointerPropertiesEXT {
9636     VkStructureType    sType;
9637     void*              pNext;
9638     uint32_t           memoryTypeBits;
9639 } VkMemoryHostPointerPropertiesEXT;
9640
9641 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
9642     VkStructureType    sType;
9643     void*              pNext;
9644     VkDeviceSize       minImportedHostPointerAlignment;
9645 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
9646
9647 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
9648
9649 #ifndef VK_NO_PROTOTYPES
9650 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
9651     VkDevice                                    device,
9652     VkExternalMemoryHandleTypeFlagBits          handleType,
9653     const void*                                 pHostPointer,
9654     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
9655 #endif
9656
9657
9658 #define VK_AMD_buffer_marker 1
9659 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
9660 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
9661 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
9662
9663 #ifndef VK_NO_PROTOTYPES
9664 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
9665     VkCommandBuffer                             commandBuffer,
9666     VkPipelineStageFlagBits                     pipelineStage,
9667     VkBuffer                                    dstBuffer,
9668     VkDeviceSize                                dstOffset,
9669     uint32_t                                    marker);
9670 #endif
9671
9672
9673 #define VK_AMD_pipeline_compiler_control 1
9674 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
9675 #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
9676
9677 typedef enum VkPipelineCompilerControlFlagBitsAMD {
9678     VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
9679 } VkPipelineCompilerControlFlagBitsAMD;
9680 typedef VkFlags VkPipelineCompilerControlFlagsAMD;
9681 typedef struct VkPipelineCompilerControlCreateInfoAMD {
9682     VkStructureType                      sType;
9683     const void*                          pNext;
9684     VkPipelineCompilerControlFlagsAMD    compilerControlFlags;
9685 } VkPipelineCompilerControlCreateInfoAMD;
9686
9687
9688
9689 #define VK_EXT_calibrated_timestamps 1
9690 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
9691 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
9692
9693 typedef enum VkTimeDomainEXT {
9694     VK_TIME_DOMAIN_DEVICE_EXT = 0,
9695     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
9696     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
9697     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
9698     VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,
9699     VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
9700     VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),
9701     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
9702 } VkTimeDomainEXT;
9703 typedef struct VkCalibratedTimestampInfoEXT {
9704     VkStructureType    sType;
9705     const void*        pNext;
9706     VkTimeDomainEXT    timeDomain;
9707 } VkCalibratedTimestampInfoEXT;
9708
9709 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
9710 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
9711
9712 #ifndef VK_NO_PROTOTYPES
9713 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
9714     VkPhysicalDevice                            physicalDevice,
9715     uint32_t*                                   pTimeDomainCount,
9716     VkTimeDomainEXT*                            pTimeDomains);
9717
9718 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
9719     VkDevice                                    device,
9720     uint32_t                                    timestampCount,
9721     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
9722     uint64_t*                                   pTimestamps,
9723     uint64_t*                                   pMaxDeviation);
9724 #endif
9725
9726
9727 #define VK_AMD_shader_core_properties 1
9728 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
9729 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
9730 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
9731     VkStructureType    sType;
9732     void*              pNext;
9733     uint32_t           shaderEngineCount;
9734     uint32_t           shaderArraysPerEngineCount;
9735     uint32_t           computeUnitsPerShaderArray;
9736     uint32_t           simdPerComputeUnit;
9737     uint32_t           wavefrontsPerSimd;
9738     uint32_t           wavefrontSize;
9739     uint32_t           sgprsPerSimd;
9740     uint32_t           minSgprAllocation;
9741     uint32_t           maxSgprAllocation;
9742     uint32_t           sgprAllocationGranularity;
9743     uint32_t           vgprsPerSimd;
9744     uint32_t           minVgprAllocation;
9745     uint32_t           maxVgprAllocation;
9746     uint32_t           vgprAllocationGranularity;
9747 } VkPhysicalDeviceShaderCorePropertiesAMD;
9748
9749
9750
9751 #define VK_AMD_memory_overallocation_behavior 1
9752 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
9753 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
9754
9755 typedef enum VkMemoryOverallocationBehaviorAMD {
9756     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
9757     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
9758     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
9759     VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
9760     VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
9761     VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1),
9762     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
9763 } VkMemoryOverallocationBehaviorAMD;
9764 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
9765     VkStructureType                      sType;
9766     const void*                          pNext;
9767     VkMemoryOverallocationBehaviorAMD    overallocationBehavior;
9768 } VkDeviceMemoryOverallocationCreateInfoAMD;
9769
9770
9771
9772 #define VK_EXT_vertex_attribute_divisor 1
9773 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
9774 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
9775 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
9776     VkStructureType    sType;
9777     void*              pNext;
9778     uint32_t           maxVertexAttribDivisor;
9779 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
9780
9781 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
9782     uint32_t    binding;
9783     uint32_t    divisor;
9784 } VkVertexInputBindingDivisorDescriptionEXT;
9785
9786 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
9787     VkStructureType                                     sType;
9788     const void*                                         pNext;
9789     uint32_t                                            vertexBindingDivisorCount;
9790     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
9791 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
9792
9793 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
9794     VkStructureType    sType;
9795     void*              pNext;
9796     VkBool32           vertexAttributeInstanceRateDivisor;
9797     VkBool32           vertexAttributeInstanceRateZeroDivisor;
9798 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
9799
9800
9801
9802 #define VK_EXT_pipeline_creation_feedback 1
9803 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
9804 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
9805
9806 typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
9807     VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001,
9808     VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002,
9809     VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004,
9810     VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
9811 } VkPipelineCreationFeedbackFlagBitsEXT;
9812 typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;
9813 typedef struct VkPipelineCreationFeedbackEXT {
9814     VkPipelineCreationFeedbackFlagsEXT    flags;
9815     uint64_t                              duration;
9816 } VkPipelineCreationFeedbackEXT;
9817
9818 typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
9819     VkStructureType                   sType;
9820     const void*                       pNext;
9821     VkPipelineCreationFeedbackEXT*    pPipelineCreationFeedback;
9822     uint32_t                          pipelineStageCreationFeedbackCount;
9823     VkPipelineCreationFeedbackEXT*    pPipelineStageCreationFeedbacks;
9824 } VkPipelineCreationFeedbackCreateInfoEXT;
9825
9826
9827
9828 #define VK_NV_shader_subgroup_partitioned 1
9829 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
9830 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
9831
9832
9833 #define VK_NV_compute_shader_derivatives 1
9834 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
9835 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
9836 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
9837     VkStructureType    sType;
9838     void*              pNext;
9839     VkBool32           computeDerivativeGroupQuads;
9840     VkBool32           computeDerivativeGroupLinear;
9841 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
9842
9843
9844
9845 #define VK_NV_mesh_shader 1
9846 #define VK_NV_MESH_SHADER_SPEC_VERSION    1
9847 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
9848 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
9849     VkStructureType    sType;
9850     void*              pNext;
9851     VkBool32           taskShader;
9852     VkBool32           meshShader;
9853 } VkPhysicalDeviceMeshShaderFeaturesNV;
9854
9855 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
9856     VkStructureType    sType;
9857     void*              pNext;
9858     uint32_t           maxDrawMeshTasksCount;
9859     uint32_t           maxTaskWorkGroupInvocations;
9860     uint32_t           maxTaskWorkGroupSize[3];
9861     uint32_t           maxTaskTotalMemorySize;
9862     uint32_t           maxTaskOutputCount;
9863     uint32_t           maxMeshWorkGroupInvocations;
9864     uint32_t           maxMeshWorkGroupSize[3];
9865     uint32_t           maxMeshTotalMemorySize;
9866     uint32_t           maxMeshOutputVertices;
9867     uint32_t           maxMeshOutputPrimitives;
9868     uint32_t           maxMeshMultiviewViewCount;
9869     uint32_t           meshOutputPerVertexGranularity;
9870     uint32_t           meshOutputPerPrimitiveGranularity;
9871 } VkPhysicalDeviceMeshShaderPropertiesNV;
9872
9873 typedef struct VkDrawMeshTasksIndirectCommandNV {
9874     uint32_t    taskCount;
9875     uint32_t    firstTask;
9876 } VkDrawMeshTasksIndirectCommandNV;
9877
9878 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
9879 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
9880 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9881
9882 #ifndef VK_NO_PROTOTYPES
9883 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
9884     VkCommandBuffer                             commandBuffer,
9885     uint32_t                                    taskCount,
9886     uint32_t                                    firstTask);
9887
9888 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
9889     VkCommandBuffer                             commandBuffer,
9890     VkBuffer                                    buffer,
9891     VkDeviceSize                                offset,
9892     uint32_t                                    drawCount,
9893     uint32_t                                    stride);
9894
9895 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
9896     VkCommandBuffer                             commandBuffer,
9897     VkBuffer                                    buffer,
9898     VkDeviceSize                                offset,
9899     VkBuffer                                    countBuffer,
9900     VkDeviceSize                                countBufferOffset,
9901     uint32_t                                    maxDrawCount,
9902     uint32_t                                    stride);
9903 #endif
9904
9905
9906 #define VK_NV_fragment_shader_barycentric 1
9907 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
9908 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
9909 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
9910     VkStructureType    sType;
9911     void*              pNext;
9912     VkBool32           fragmentShaderBarycentric;
9913 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
9914
9915
9916
9917 #define VK_NV_shader_image_footprint 1
9918 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
9919 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
9920 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
9921     VkStructureType    sType;
9922     void*              pNext;
9923     VkBool32           imageFootprint;
9924 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
9925
9926
9927
9928 #define VK_NV_scissor_exclusive 1
9929 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
9930 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
9931 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
9932     VkStructureType    sType;
9933     const void*        pNext;
9934     uint32_t           exclusiveScissorCount;
9935     const VkRect2D*    pExclusiveScissors;
9936 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
9937
9938 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
9939     VkStructureType    sType;
9940     void*              pNext;
9941     VkBool32           exclusiveScissor;
9942 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
9943
9944 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
9945
9946 #ifndef VK_NO_PROTOTYPES
9947 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
9948     VkCommandBuffer                             commandBuffer,
9949     uint32_t                                    firstExclusiveScissor,
9950     uint32_t                                    exclusiveScissorCount,
9951     const VkRect2D*                             pExclusiveScissors);
9952 #endif
9953
9954
9955 #define VK_NV_device_diagnostic_checkpoints 1
9956 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
9957 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
9958 typedef struct VkQueueFamilyCheckpointPropertiesNV {
9959     VkStructureType         sType;
9960     void*                   pNext;
9961     VkPipelineStageFlags    checkpointExecutionStageMask;
9962 } VkQueueFamilyCheckpointPropertiesNV;
9963
9964 typedef struct VkCheckpointDataNV {
9965     VkStructureType            sType;
9966     void*                      pNext;
9967     VkPipelineStageFlagBits    stage;
9968     void*                      pCheckpointMarker;
9969 } VkCheckpointDataNV;
9970
9971 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
9972 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
9973
9974 #ifndef VK_NO_PROTOTYPES
9975 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
9976     VkCommandBuffer                             commandBuffer,
9977     const void*                                 pCheckpointMarker);
9978
9979 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
9980     VkQueue                                     queue,
9981     uint32_t*                                   pCheckpointDataCount,
9982     VkCheckpointDataNV*                         pCheckpointData);
9983 #endif
9984
9985
9986 #define VK_INTEL_shader_integer_functions2 1
9987 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
9988 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
9989 typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
9990     VkStructureType    sType;
9991     void*              pNext;
9992     VkBool32           shaderIntegerFunctions2;
9993 } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
9994
9995
9996
9997 #define VK_INTEL_performance_query 1
9998 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
9999 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1
10000 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
10001
10002 typedef enum VkPerformanceConfigurationTypeINTEL {
10003     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
10004     VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
10005     VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
10006     VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1),
10007     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10008 } VkPerformanceConfigurationTypeINTEL;
10009
10010 typedef enum VkQueryPoolSamplingModeINTEL {
10011     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
10012     VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
10013     VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
10014     VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1),
10015     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
10016 } VkQueryPoolSamplingModeINTEL;
10017
10018 typedef enum VkPerformanceOverrideTypeINTEL {
10019     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
10020     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
10021     VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
10022     VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL,
10023     VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1),
10024     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10025 } VkPerformanceOverrideTypeINTEL;
10026
10027 typedef enum VkPerformanceParameterTypeINTEL {
10028     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
10029     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
10030     VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
10031     VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL,
10032     VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1),
10033     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10034 } VkPerformanceParameterTypeINTEL;
10035
10036 typedef enum VkPerformanceValueTypeINTEL {
10037     VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
10038     VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
10039     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
10040     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
10041     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
10042     VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
10043     VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL,
10044     VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1),
10045     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
10046 } VkPerformanceValueTypeINTEL;
10047 typedef union VkPerformanceValueDataINTEL {
10048     uint32_t       value32;
10049     uint64_t       value64;
10050     float          valueFloat;
10051     VkBool32       valueBool;
10052     const char*    valueString;
10053 } VkPerformanceValueDataINTEL;
10054
10055 typedef struct VkPerformanceValueINTEL {
10056     VkPerformanceValueTypeINTEL    type;
10057     VkPerformanceValueDataINTEL    data;
10058 } VkPerformanceValueINTEL;
10059
10060 typedef struct VkInitializePerformanceApiInfoINTEL {
10061     VkStructureType    sType;
10062     const void*        pNext;
10063     void*              pUserData;
10064 } VkInitializePerformanceApiInfoINTEL;
10065
10066 typedef struct VkQueryPoolCreateInfoINTEL {
10067     VkStructureType                 sType;
10068     const void*                     pNext;
10069     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
10070 } VkQueryPoolCreateInfoINTEL;
10071
10072 typedef struct VkPerformanceMarkerInfoINTEL {
10073     VkStructureType    sType;
10074     const void*        pNext;
10075     uint64_t           marker;
10076 } VkPerformanceMarkerInfoINTEL;
10077
10078 typedef struct VkPerformanceStreamMarkerInfoINTEL {
10079     VkStructureType    sType;
10080     const void*        pNext;
10081     uint32_t           marker;
10082 } VkPerformanceStreamMarkerInfoINTEL;
10083
10084 typedef struct VkPerformanceOverrideInfoINTEL {
10085     VkStructureType                   sType;
10086     const void*                       pNext;
10087     VkPerformanceOverrideTypeINTEL    type;
10088     VkBool32                          enable;
10089     uint64_t                          parameter;
10090 } VkPerformanceOverrideInfoINTEL;
10091
10092 typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
10093     VkStructureType                        sType;
10094     const void*                            pNext;
10095     VkPerformanceConfigurationTypeINTEL    type;
10096 } VkPerformanceConfigurationAcquireInfoINTEL;
10097
10098 typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
10099 typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
10100 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
10101 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
10102 typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
10103 typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
10104 typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
10105 typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
10106 typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
10107
10108 #ifndef VK_NO_PROTOTYPES
10109 VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
10110     VkDevice                                    device,
10111     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
10112
10113 VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
10114     VkDevice                                    device);
10115
10116 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
10117     VkCommandBuffer                             commandBuffer,
10118     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
10119
10120 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
10121     VkCommandBuffer                             commandBuffer,
10122     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
10123
10124 VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
10125     VkCommandBuffer                             commandBuffer,
10126     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
10127
10128 VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
10129     VkDevice                                    device,
10130     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
10131     VkPerformanceConfigurationINTEL*            pConfiguration);
10132
10133 VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
10134     VkDevice                                    device,
10135     VkPerformanceConfigurationINTEL             configuration);
10136
10137 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
10138     VkQueue                                     queue,
10139     VkPerformanceConfigurationINTEL             configuration);
10140
10141 VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
10142     VkDevice                                    device,
10143     VkPerformanceParameterTypeINTEL             parameter,
10144     VkPerformanceValueINTEL*                    pValue);
10145 #endif
10146
10147
10148 #define VK_EXT_pci_bus_info 1
10149 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  2
10150 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
10151 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
10152     VkStructureType    sType;
10153     void*              pNext;
10154     uint32_t           pciDomain;
10155     uint32_t           pciBus;
10156     uint32_t           pciDevice;
10157     uint32_t           pciFunction;
10158 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
10159
10160
10161
10162 #define VK_AMD_display_native_hdr 1
10163 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
10164 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
10165 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
10166     VkStructureType    sType;
10167     void*              pNext;
10168     VkBool32           localDimmingSupport;
10169 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
10170
10171 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
10172     VkStructureType    sType;
10173     const void*        pNext;
10174     VkBool32           localDimmingEnable;
10175 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
10176
10177 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
10178
10179 #ifndef VK_NO_PROTOTYPES
10180 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
10181     VkDevice                                    device,
10182     VkSwapchainKHR                              swapChain,
10183     VkBool32                                    localDimmingEnable);
10184 #endif
10185
10186
10187 #define VK_EXT_fragment_density_map 1
10188 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
10189 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
10190 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
10191     VkStructureType    sType;
10192     void*              pNext;
10193     VkBool32           fragmentDensityMap;
10194     VkBool32           fragmentDensityMapDynamic;
10195     VkBool32           fragmentDensityMapNonSubsampledImages;
10196 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
10197
10198 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
10199     VkStructureType    sType;
10200     void*              pNext;
10201     VkExtent2D         minFragmentDensityTexelSize;
10202     VkExtent2D         maxFragmentDensityTexelSize;
10203     VkBool32           fragmentDensityInvocations;
10204 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
10205
10206 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
10207     VkStructureType          sType;
10208     const void*              pNext;
10209     VkAttachmentReference    fragmentDensityMapAttachment;
10210 } VkRenderPassFragmentDensityMapCreateInfoEXT;
10211
10212
10213
10214 #define VK_EXT_scalar_block_layout 1
10215 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
10216 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
10217 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
10218
10219
10220
10221 #define VK_GOOGLE_hlsl_functionality1 1
10222 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
10223 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
10224
10225
10226 #define VK_GOOGLE_decorate_string 1
10227 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
10228 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
10229
10230
10231 #define VK_EXT_subgroup_size_control 1
10232 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
10233 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
10234 typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
10235     VkStructureType    sType;
10236     void*              pNext;
10237     VkBool32           subgroupSizeControl;
10238     VkBool32           computeFullSubgroups;
10239 } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
10240
10241 typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT {
10242     VkStructureType       sType;
10243     void*                 pNext;
10244     uint32_t              minSubgroupSize;
10245     uint32_t              maxSubgroupSize;
10246     uint32_t              maxComputeWorkgroupSubgroups;
10247     VkShaderStageFlags    requiredSubgroupSizeStages;
10248 } VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
10249
10250 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
10251     VkStructureType    sType;
10252     void*              pNext;
10253     uint32_t           requiredSubgroupSize;
10254 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
10255
10256
10257
10258 #define VK_AMD_shader_core_properties2 1
10259 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
10260 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
10261
10262 typedef enum VkShaderCorePropertiesFlagBitsAMD {
10263     VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
10264 } VkShaderCorePropertiesFlagBitsAMD;
10265 typedef VkFlags VkShaderCorePropertiesFlagsAMD;
10266 typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
10267     VkStructureType                   sType;
10268     void*                             pNext;
10269     VkShaderCorePropertiesFlagsAMD    shaderCoreFeatures;
10270     uint32_t                          activeComputeUnitCount;
10271 } VkPhysicalDeviceShaderCoreProperties2AMD;
10272
10273
10274
10275 #define VK_AMD_device_coherent_memory 1
10276 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
10277 #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
10278 typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
10279     VkStructureType    sType;
10280     void*              pNext;
10281     VkBool32           deviceCoherentMemory;
10282 } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
10283
10284
10285
10286 #define VK_EXT_memory_budget 1
10287 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
10288 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
10289 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
10290     VkStructureType    sType;
10291     void*              pNext;
10292     VkDeviceSize       heapBudget[VK_MAX_MEMORY_HEAPS];
10293     VkDeviceSize       heapUsage[VK_MAX_MEMORY_HEAPS];
10294 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
10295
10296
10297
10298 #define VK_EXT_memory_priority 1
10299 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
10300 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
10301 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
10302     VkStructureType    sType;
10303     void*              pNext;
10304     VkBool32           memoryPriority;
10305 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
10306
10307 typedef struct VkMemoryPriorityAllocateInfoEXT {
10308     VkStructureType    sType;
10309     const void*        pNext;
10310     float              priority;
10311 } VkMemoryPriorityAllocateInfoEXT;
10312
10313
10314
10315 #define VK_NV_dedicated_allocation_image_aliasing 1
10316 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
10317 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
10318 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
10319     VkStructureType    sType;
10320     void*              pNext;
10321     VkBool32           dedicatedAllocationImageAliasing;
10322 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
10323
10324
10325
10326 #define VK_EXT_buffer_device_address 1
10327 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
10328 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
10329 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
10330     VkStructureType    sType;
10331     void*              pNext;
10332     VkBool32           bufferDeviceAddress;
10333     VkBool32           bufferDeviceAddressCaptureReplay;
10334     VkBool32           bufferDeviceAddressMultiDevice;
10335 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
10336
10337 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
10338
10339 typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
10340
10341 typedef struct VkBufferDeviceAddressCreateInfoEXT {
10342     VkStructureType    sType;
10343     const void*        pNext;
10344     VkDeviceAddress    deviceAddress;
10345 } VkBufferDeviceAddressCreateInfoEXT;
10346
10347 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10348
10349 #ifndef VK_NO_PROTOTYPES
10350 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
10351     VkDevice                                    device,
10352     const VkBufferDeviceAddressInfo*            pInfo);
10353 #endif
10354
10355
10356 #define VK_EXT_separate_stencil_usage 1
10357 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
10358 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
10359 typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
10360
10361
10362
10363 #define VK_EXT_validation_features 1
10364 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2
10365 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
10366
10367 typedef enum VkValidationFeatureEnableEXT {
10368     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
10369     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
10370     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
10371     VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
10372     VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
10373     VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1),
10374     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
10375 } VkValidationFeatureEnableEXT;
10376
10377 typedef enum VkValidationFeatureDisableEXT {
10378     VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
10379     VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
10380     VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
10381     VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
10382     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
10383     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
10384     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
10385     VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
10386     VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
10387     VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1),
10388     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
10389 } VkValidationFeatureDisableEXT;
10390 typedef struct VkValidationFeaturesEXT {
10391     VkStructureType                         sType;
10392     const void*                             pNext;
10393     uint32_t                                enabledValidationFeatureCount;
10394     const VkValidationFeatureEnableEXT*     pEnabledValidationFeatures;
10395     uint32_t                                disabledValidationFeatureCount;
10396     const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
10397 } VkValidationFeaturesEXT;
10398
10399
10400
10401 #define VK_NV_cooperative_matrix 1
10402 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
10403 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
10404
10405 typedef enum VkComponentTypeNV {
10406     VK_COMPONENT_TYPE_FLOAT16_NV = 0,
10407     VK_COMPONENT_TYPE_FLOAT32_NV = 1,
10408     VK_COMPONENT_TYPE_FLOAT64_NV = 2,
10409     VK_COMPONENT_TYPE_SINT8_NV = 3,
10410     VK_COMPONENT_TYPE_SINT16_NV = 4,
10411     VK_COMPONENT_TYPE_SINT32_NV = 5,
10412     VK_COMPONENT_TYPE_SINT64_NV = 6,
10413     VK_COMPONENT_TYPE_UINT8_NV = 7,
10414     VK_COMPONENT_TYPE_UINT16_NV = 8,
10415     VK_COMPONENT_TYPE_UINT32_NV = 9,
10416     VK_COMPONENT_TYPE_UINT64_NV = 10,
10417     VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
10418     VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
10419     VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
10420     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
10421 } VkComponentTypeNV;
10422
10423 typedef enum VkScopeNV {
10424     VK_SCOPE_DEVICE_NV = 1,
10425     VK_SCOPE_WORKGROUP_NV = 2,
10426     VK_SCOPE_SUBGROUP_NV = 3,
10427     VK_SCOPE_QUEUE_FAMILY_NV = 5,
10428     VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
10429     VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
10430     VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
10431     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
10432 } VkScopeNV;
10433 typedef struct VkCooperativeMatrixPropertiesNV {
10434     VkStructureType      sType;
10435     void*                pNext;
10436     uint32_t             MSize;
10437     uint32_t             NSize;
10438     uint32_t             KSize;
10439     VkComponentTypeNV    AType;
10440     VkComponentTypeNV    BType;
10441     VkComponentTypeNV    CType;
10442     VkComponentTypeNV    DType;
10443     VkScopeNV            scope;
10444 } VkCooperativeMatrixPropertiesNV;
10445
10446 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
10447     VkStructureType    sType;
10448     void*              pNext;
10449     VkBool32           cooperativeMatrix;
10450     VkBool32           cooperativeMatrixRobustBufferAccess;
10451 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
10452
10453 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
10454     VkStructureType       sType;
10455     void*                 pNext;
10456     VkShaderStageFlags    cooperativeMatrixSupportedStages;
10457 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
10458
10459 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
10460
10461 #ifndef VK_NO_PROTOTYPES
10462 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
10463     VkPhysicalDevice                            physicalDevice,
10464     uint32_t*                                   pPropertyCount,
10465     VkCooperativeMatrixPropertiesNV*            pProperties);
10466 #endif
10467
10468
10469 #define VK_NV_coverage_reduction_mode 1
10470 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
10471 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
10472
10473 typedef enum VkCoverageReductionModeNV {
10474     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
10475     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
10476     VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
10477     VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
10478     VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1),
10479     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
10480 } VkCoverageReductionModeNV;
10481 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
10482 typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
10483     VkStructureType    sType;
10484     void*              pNext;
10485     VkBool32           coverageReductionMode;
10486 } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
10487
10488 typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
10489     VkStructureType                                  sType;
10490     const void*                                      pNext;
10491     VkPipelineCoverageReductionStateCreateFlagsNV    flags;
10492     VkCoverageReductionModeNV                        coverageReductionMode;
10493 } VkPipelineCoverageReductionStateCreateInfoNV;
10494
10495 typedef struct VkFramebufferMixedSamplesCombinationNV {
10496     VkStructureType              sType;
10497     void*                        pNext;
10498     VkCoverageReductionModeNV    coverageReductionMode;
10499     VkSampleCountFlagBits        rasterizationSamples;
10500     VkSampleCountFlags           depthStencilSamples;
10501     VkSampleCountFlags           colorSamples;
10502 } VkFramebufferMixedSamplesCombinationNV;
10503
10504 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
10505
10506 #ifndef VK_NO_PROTOTYPES
10507 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
10508     VkPhysicalDevice                            physicalDevice,
10509     uint32_t*                                   pCombinationCount,
10510     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
10511 #endif
10512
10513
10514 #define VK_EXT_fragment_shader_interlock 1
10515 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
10516 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
10517 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
10518     VkStructureType    sType;
10519     void*              pNext;
10520     VkBool32           fragmentShaderSampleInterlock;
10521     VkBool32           fragmentShaderPixelInterlock;
10522     VkBool32           fragmentShaderShadingRateInterlock;
10523 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
10524
10525
10526
10527 #define VK_EXT_ycbcr_image_arrays 1
10528 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
10529 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
10530 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
10531     VkStructureType    sType;
10532     void*              pNext;
10533     VkBool32           ycbcrImageArrays;
10534 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
10535
10536
10537
10538 #define VK_EXT_headless_surface 1
10539 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
10540 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
10541 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
10542 typedef struct VkHeadlessSurfaceCreateInfoEXT {
10543     VkStructureType                    sType;
10544     const void*                        pNext;
10545     VkHeadlessSurfaceCreateFlagsEXT    flags;
10546 } VkHeadlessSurfaceCreateInfoEXT;
10547
10548 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
10549
10550 #ifndef VK_NO_PROTOTYPES
10551 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
10552     VkInstance                                  instance,
10553     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
10554     const VkAllocationCallbacks*                pAllocator,
10555     VkSurfaceKHR*                               pSurface);
10556 #endif
10557
10558
10559 #define VK_EXT_line_rasterization 1
10560 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
10561 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
10562
10563 typedef enum VkLineRasterizationModeEXT {
10564     VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
10565     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
10566     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
10567     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
10568     VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
10569     VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT,
10570     VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1),
10571     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
10572 } VkLineRasterizationModeEXT;
10573 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
10574     VkStructureType    sType;
10575     void*              pNext;
10576     VkBool32           rectangularLines;
10577     VkBool32           bresenhamLines;
10578     VkBool32           smoothLines;
10579     VkBool32           stippledRectangularLines;
10580     VkBool32           stippledBresenhamLines;
10581     VkBool32           stippledSmoothLines;
10582 } VkPhysicalDeviceLineRasterizationFeaturesEXT;
10583
10584 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
10585     VkStructureType    sType;
10586     void*              pNext;
10587     uint32_t           lineSubPixelPrecisionBits;
10588 } VkPhysicalDeviceLineRasterizationPropertiesEXT;
10589
10590 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
10591     VkStructureType               sType;
10592     const void*                   pNext;
10593     VkLineRasterizationModeEXT    lineRasterizationMode;
10594     VkBool32                      stippledLineEnable;
10595     uint32_t                      lineStippleFactor;
10596     uint16_t                      lineStipplePattern;
10597 } VkPipelineRasterizationLineStateCreateInfoEXT;
10598
10599 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
10600
10601 #ifndef VK_NO_PROTOTYPES
10602 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
10603     VkCommandBuffer                             commandBuffer,
10604     uint32_t                                    lineStippleFactor,
10605     uint16_t                                    lineStipplePattern);
10606 #endif
10607
10608
10609 #define VK_EXT_host_query_reset 1
10610 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
10611 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
10612 typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
10613
10614 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
10615
10616 #ifndef VK_NO_PROTOTYPES
10617 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
10618     VkDevice                                    device,
10619     VkQueryPool                                 queryPool,
10620     uint32_t                                    firstQuery,
10621     uint32_t                                    queryCount);
10622 #endif
10623
10624
10625 #define VK_EXT_index_type_uint8 1
10626 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
10627 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
10628 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
10629     VkStructureType    sType;
10630     void*              pNext;
10631     VkBool32           indexTypeUint8;
10632 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
10633
10634
10635
10636 #define VK_EXT_shader_demote_to_helper_invocation 1
10637 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
10638 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
10639 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
10640     VkStructureType    sType;
10641     void*              pNext;
10642     VkBool32           shaderDemoteToHelperInvocation;
10643 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
10644
10645
10646
10647 #define VK_EXT_texel_buffer_alignment 1
10648 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
10649 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
10650 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
10651     VkStructureType    sType;
10652     void*              pNext;
10653     VkBool32           texelBufferAlignment;
10654 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
10655
10656 typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT {
10657     VkStructureType    sType;
10658     void*              pNext;
10659     VkDeviceSize       storageTexelBufferOffsetAlignmentBytes;
10660     VkBool32           storageTexelBufferOffsetSingleTexelAlignment;
10661     VkDeviceSize       uniformTexelBufferOffsetAlignmentBytes;
10662     VkBool32           uniformTexelBufferOffsetSingleTexelAlignment;
10663 } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
10664
10665
10666
10667 #define VK_GOOGLE_user_type 1
10668 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
10669 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
10670
10671 #ifdef __cplusplus
10672 }
10673 #endif
10674
10675 #endif