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